Pre-learning of values with later activation in a network device
A network device for processing data on a data network includes a port interface, in communication with a plurality of ports, configured to receive a data packet from a data network and to send a processed data packet to the data network and a memory access unit, in communication with the port interface and a memory having at least one table. The memory access unit is configured to read at least one value, associated with the data packet, from the at least one table, when a head of the data packet is received by the port interface and store another value in the at least one table, after the at least one value is read, when a tail of a prior data packet is received by the port interface.
1 . A network device for processing data on a data network, the network device comprising:
a port interface, in communication with a plurality of ports, configured to receive a data packet from a data network and to send a processed data packet to the data network; and
a memory access unit, in communication with the port interface and a memory having at least one table;
wherein the memory access unit is configured to read at least one value, associated with the data packet, from the at least one table, when a head of the data packet is received by the port interface and store another value in the at least one table, after the at least one value is read, when a tail of a prior data packet is received by the port interface.
2 . The network device according to claim 1 , wherein each entry in the at least one table is divided into a head related portion and a tail related portion.
3 . The network device according to claim 1 , wherein the memory access unit is configured to store a tail value of the data packet subsequently with a head value of a later-received data packet.
4 . The network device according to claim 1 , wherein the at least one table comprises a layer two address table and the memory access unit is configured to store and retrieve values to and from the layer two address table as a part of a layer two address learning process.
5 . The network device according to claim 4 , wherein the memory access unit is configured to read a source address, a destination address and a hash entry address from the layer two address table, when a head of the data packet is received by the port interface.
6 . The network device according to claim 5 , wherein the memory access unit is configured to perform the layer two address learning process in three memory access operations.
7 . The network device according to claim 1 , wherein the at least one table comprises a multicast address table and the memory access unit is configured to store and retrieve values to and from the multicast address table as a part of a process of determining egress ports for a multicast packet.
8 . A method for processing data in a network device, the method comprising the steps of:
receiving a data packet at one port of a plurality of ports;
reading at least one value associated with the data packet from at least one table in a memory, when a head of the data packet is received by the one port;
storing another value in the at least one table, after the at least one value is read, when a tail of a prior data packet is received by the port interface.
9 . The network device according to claim 8 , wherein the step of storing another value comprises storing a head value in a head related portion and a tail value in a tail related portion of an entry of the at least one table.
10 . The network device according to claim 8 , wherein the head value is obtained from the data packet and the tail value is obtained from the prior data packet.
11 . The network device according to claim 8 , further comprising storing a tail value of the data packet subsequently with a head value of a later-received data packet.
12 . The network device according to claim 8 , wherein the step of reading at least one value comprises reading the at least one value from a layer two address table as a part of a layer two address learning process.
13 . The network device according to claim 12 , wherein the step of reading the at least one value from a layer two address table comprises reading a source address, a destination address and a hash entry address from the layer two address table.
14 . The network device according to claim 12 , wherein the reading and storing steps are performed in three memory access operations.
15 . A network device for processing data, the network device comprising:
port means for receiving a data packet at one port of a plurality of ports;
reading means for reading at least one value associated with the data packet from at least one table in a memory, when a head of the data packet is received by the one port;
storing means for storing another value in the at least one table, after the at least one value is read, when a tail of a prior data packet is received by the port interface.
16 . The network device according to claim 15 , wherein the storing means comprises means for storing a head value in a head related portion and a tail value in a tail related portion of an entry of the at least one table.
17 . The network device according to claim 15 , wherein the storing means is configured to store a tail value of the data packet subsequently with a head value of a later-received data packet.
18 . The network device according to claim 15 , wherein the reading means comprises means for reading the at least one value from a layer two address table as a part of a layer two address learning process.
19 . The network device according to claim 18 , wherein the means for reading comprises means for reading a source address, a destination address and a hash entry address from the layer two address table.
20 . The network device according to claim 18 , wherein the reading and storing means are configured to perform in three memory access operations.