Variable Frame Headers
AssigneeGraphcore Limited
InventorsBjorn Dag JOHNSEN, Brian Edward MANULA
Life of this patent
Estimating the term…
Abstract
In order to provide for the extension of either the MAC address or the VLAN identifier as required, a sliding cursor functionality between the MAC address and the VLAN identifier is provided. The MAC address may be extended by borrowing bits conventionally used for representing part of the VLAN identifier. Similarly, VLAN identifier may be extended by borrowing bits conventionally used for representing part of the MAC address.
Claims28
A data processing apparatus configured to transmit frames over a network, wherein the data processing apparatus comprises processing circuitry configured to:
- perform protocol processing to construct a first set of frames for sending over a first virtual local area network, wherein each of the first set of frames comprises:
- a destination media access control address for a respective frame;
- and
- a first virtual local area network identifier identifying the first virtual local area network;
- transmit the first set of frames over the network;
- after constructing the first set of frames, perform protocol processing to construct a second set of frames for sending over a second virtual local area network, wherein each of the second set of frames comprises:
- a destination media access control address for the respective frame;
- and
- a second virtual local area network identifier identifying the second virtual local area network;
- and
- transmit the second set of frames over the network,
- wherein bits at one or more bits positions in each of the first set of frames form part of the destination media access control address for the respective frame and have different values for at least some of the first set of frames,
- wherein further bits at the one or more bits positions in each of the second set of frames form part of the second virtual local area network identifier and are fixed to have same values for all of the second set of frames sent over the second virtual local area network.
A data processing system comprising:
- a plurality of network interface devices, each of which is configured to communicate over a physical network infrastructure with at least one other of the network interface devices,
- wherein a first subset of the network interface devices are configured to communicate over the physical network infrastructure by a first virtual local area network, the first virtual local area network being identified by a first virtual local area network identifier, wherein a first plurality of frames sent over the first virtual local area network comprises headers having bits in bits positions that indicate part of media access control addresses and that differ frame-to-frame;
- ,wherein a second subset of the network interface devices are configured to communicate over the physical network infrastructure by a second virtual local area network, the second virtual local area network being identified by a second virtual local area network identifier, and
- wherein a second plurality of frames sent over the second virtual local area network comprise headers having further bits in the bits positions to indicate part of the second virtual local area network identifier, wherein the further bits in the bits positions have same values frame-to-frame for all frames sent over the second virtual local area network.
A network interface device comprising:
- a first register configured to store a first virtual local area network identifier identifying a first virtual local area network over which the network interface device is configured to communicate;
- a second register configured to store a first media access control address of the network interface device;
- an interface for receiving a first frame;
- and
- processing circuitry configured to:
- check the first virtual local area network identifier against a first plurality of bits of a header of the first frame to determine whether the first frame should be accepted;
- and
- check the first media access control address against a second plurality of bits of the header of the first frame to determine whether the first frame should be accepted,
- wherein a total length of the first virtual local area network identifier and the first media access control address is equal to sixty bits,
- wherein at least one of the first plurality of bits and the second plurality of bits belong to multiple discontiguous parts of the header of the first frame.
A network switch comprising:
- a plurality of ports, wherein at least some of the ports are configured to send and receive traffic belonging to different virtual local area networks;
- storage comprising, for a first port of the plurality of ports, a plurality of combinations of virtual local area network identifier and destination media access control address that are permitted for transmission over the first port, wherein for each of the combinations, a total number of bits of a permitted virtual local area network identifier and a permitted destination media access control address is the same, and wherein for some of the combinations, a length of the permitted virtual local area network identifiers varies combination-to-combination;
- and
- processing circuitry configured to, in response to receipt of a first frame for delivery over the first port:
- determine whether any of the permitted virtual local area network identifiers are present in a header of the first frame;
- and
- in response to determining that a first of the permitted virtual local area network identifiers is present in the header of the first frame, examine whether a further plurality of bits in the first frame matches any permitted destination media access control address for the first of the permitted virtual local network identifiers, wherein a length of the further plurality of bits depends upon a length of the first of the permitted virtual local area network identifiers identified in the first frame.
A method for transmitting frames over a network, the method comprising:
- performing protocol processing to construct a first set of frames for sending over a first virtual local area network, wherein each of the first set of frames comprises:
- a destination media access control address for the respective frame;
- and
- a first virtual local area network identifier identifying the first virtual local area network;
- and
- transmitting the first set of frames over the network;
- after constructing the first set of frames, performing protocol processing to construct a second set of frames for sending over a second virtual local area network, wherein each header for the second set of frames comprises:
- a destination media access control address for the respective frame;
- and
- a second virtual local area network identifier identifying the second virtual local area network;
- and
- transmitting the second set of frames over the network;
- wherein bits at the one or more bits positions in each of the first set of frames form part of the destination media access control address for the respective frame and have different values for at least some of the first set of frames,
- wherein further bits at the one or more bits positions in each of the second set of frames form part of the second virtual local area network identifier and are fixed to have same values for all of the second set of frames sent over the second virtual local area network.
A computer program comprising computer readable instructions, which when executed by at least one processor causes a method for supporting transmission of frames over a network to be performed, the method comprising:
- performing protocol processing to construct at least part of each of a first set of frames for sending over a first virtual local area network, wherein for each of the first set of frames, the at least part of a respective frame comprises:
- a destination media access control address for the respective frame;
- and
- a first virtual local area network identifier identifying the first virtual local area network;
- and
- for each of the first set of frames, sending the at least part of the respective frame to a network interface device for transmission over the network;
- and performing protocol processing to construct at least part of each of a second set of frames for sending over a second virtual local area network, wherein for each of the second set of frames, the at least part of the respective frame comprises:
- a destination media access control address for the respective frame;
- and
- a second virtual local area network identifier identifying the second virtual local area network;
- and
- for each of the second set of frames, sending the at least part of the respective frame to the network interface device for transmission over the network, wherein bits at one or more bits positions in each of the first frames form part of the destination media access control address for the respective frame and have different values for at least some of the first set of frames,
- wherein further bits at the one or more bits positions in each of the second set of frames form part of the second virtual local area network identifier and are fixed to have same values for all of the second set of frames sent over the second virtual local area network.
A method of communicating, via a plurality of network interface devices over a physical network infrastructure, wherein the physical network infrastructure is configured to support a plurality of virtual local area networks, the method comprising:
- communicating, via a first subset of the network interface devices, over a first of the virtual local area networks, the first of the virtual local area networks being identified by a first virtual local area network identifier,
- wherein a first plurality of frames sent over the first virtual local area network comprise headers having bits in bits positions that indicate part of media access control addresses and that differ frame-to-frame;
- and
- communicating, via a second subset of the network interface devices, over a second of the virtual local area networks, the second of the virtual local area networks being identified by a second virtual local area network identifier,
- wherein a second plurality of frames sent over the second virtual local area network comprises headers having further bits in the bits positions to indicate part of the second virtual local area network identifier, wherein the further bits in the bits positions have same values frame-to-frame for all frames sent over the second virtual local area network.
A method for handling data, the method comprising:
- storing in a first register, a first virtual local area network identifier identifying a first virtual local area network over which a network interface device is configured to communicate;
- storing in a second register, a first media access control address of the network interface device;
- receiving a first frame;
- and
- checking the first virtual local area network identifier against a first plurality of bits of a header of a first frame to determine whether the first frame should be accepted;
- and
- checking the first media access control address against a second plurality of bits of the header of the first frame to determine whether the first frame should be accepted,
- wherein a total length of the first virtual local area network identifier and the first media access control address is equal to sixty bits,
- wherein at least one of the first plurality of bits and the second plurality of bits belong to multiple discontiguous header fields of the first frame.
A computer program comprising computer readable instructions, which when executed by at least one processor cause a method to be carried out, the method comprising:
- storing in a first register, a first virtual local area network identifier identifying a first virtual local area network over which a network interface device is configured to communicate;
- storing in a second register, a first media access control address of the network interface device;
- receiving a first frame;
- and
- checking the first virtual local area network identifier against a first plurality of bits of a header of a first frame to determine whether the first frame should be accepted;
- and
- checking the first media access control address against a second plurality of bits of the header of the first frame to determine whether the first frame should be accepted,
- wherein a total length of the first virtual local area network identifier and the first media access control address is equal to sixty bits,
- wherein one of the first plurality of bits and the second plurality of bits belong to multiple discontiguous header fields of the first frame.
A method implemented in a switch comprising a plurality of ports, the method comprising:
- storing, for a first port of the plurality of ports, a plurality of combinations of virtual local area network identifier and destination media access control address that are permitted for transmission over the first port, wherein for each of the combinations, a total number of bits of a permitted virtual local area network identifier and permitted destination media access control address is the same, and wherein for some of the combinations, a length of the permitted virtual local area network identifiers varies combination-to-combination;
- and
- sending and receiving traffic belonging to different virtual local area networks over at least some of the ports;
- in response to receipt of a first frame of the traffic for delivery over the first port:
- determining whether any of the permitted virtual local area network identifiers are present in a header of the first frame;
- and
- in response to determining that a first of the permitted virtual local area network identifiers is present in the header of the first frame, examining whether a further plurality of bits in the first frame match a any permitted destination media access control address for the first of the permitted virtual local network identifiers, wherein a length of the further plurality of bits depends upon a length of the first of the permitted virtual local area network identifiers identified in the first frame.
A computer program comprising computer readable instructions, which when executed by at least one processor, cause a method implemented in a switch comprising a plurality of ports to be performed, the method comprising:
- sending and receiving traffic belonging to different virtual local area networks over the plurality of ports;
- storing, for a first port of the plurality of ports, a plurality of combinations of virtual local area network identifier and destination media access control address that are permitted for transmission over the first port, wherein for each of the combinations, a total number of bits of a permitted virtual local area network identifier and a permitted destination media access control address is the same, wherein for some of the combinations, a length of the permitted virtual local area network identifiers varies combination-to-combination;
- and
- in response to receipt of a first frame for delivery over the first port:
- determining whether any of the permitted virtual local area network identifiers for the first port are present in a header of the first frame;
- and
- in response to determining that a first of the permitted virtual local area network identifiers is present in the header of the first frame, examining whether a further plurality of bits in the first frame match any permitted destination media access control address for the first of the permitted virtual local network identifiers, wherein a length of the further plurality of bits depends upon a length of the first of the permitted virtual local area network identifiers identified in the first frame.
Dependencies are inferred from the claim text.