The present invention relates to packet-switched data communication systems, and particularly to such systems operating according to the IEEE 802.1 transmission standard.
Data communication systems of this general character provide for communication between various parts of a network by means of physical devices that in general comprise a multiplicity of ports and direct received packets from one or more to one or more ports either indiscriminately, in the case of a hub, or selectively, in the case of a switch. The term “switch” is used herein to embrace more specifically named devices, such as bridges, routers or devices that combine both bridging and routing functions.
In a variety of circumstances it is desirable to be able to couple a plurality of devices, such as a multiplicity of hubs or switches, together so that from the point of view of the external network, the plurality of coupled or “stacked” devices acts as a single logical entity. Such a facility is useful to enable a network to be increased in traffic carrying capacity.
To facilitate the operation of the units of a stack as a single logical entity, it is desirable for a packet progressing through the stack to carry selected information which enables a device within a stack to recognise the data packet as coming from another unit in the stack, or, analogously, from another chip in a device which is composed of a multiplicity of chips connected by links or buses to form a single switch or other network device.
Although it is known generally for devices to identify their nature and status to other devices by means of for example, a “handshake routine”, such routines or other processes which necessarily involve the generation of additional data packets on a link are in general undesirable, particularly at very high data rates. It is accordingly preferable to be able to convey selected or inter-device data within an existing data packet. Theoretically it is possible to append data onto the beginning or end of an existing packet's data field. Such an expedient is not desirable because data packets in general and Ethernet data packets in particular have a prescribed maximum length, so that if extra data is added to a packet which is close to or equal to the maximum length, the packet will become “illegal”. In existing multi-chip devices such a packet would appear to be in error and may be discarded or truncated by the destination device. In both cases, data will be lost.
Using the preamble to a data packet to convey additional information may be feasible in some circumstances but in general it would require redesign of existing devices.
The present invention avoids the difficulties of techniques that include adding data before or after existing data fields.
The present invention relies on the existence, in current Ethernet standards, of a requirement for a header that preceeds a tag that is used to denote a number identifying a virtual local area network. As is well known, a network may be artificially partitoned into “virtual” local area networks (VLANs) (which may overlap) so as for example to limit the propagation of “broadcast” packets to a respective VLAN. The present invention is based on the use of the VLAN tag header to convey the selected or proprietary information.
It is possible, by means of a process known as auto-negotiation, to confirm that devices connected by a data link are compatible. If the devices are represented by different chips in a multi-chip device, such auto-negotiation would normally be unnecessary. The purpose of establishing compatibility in the present context would be to ensure that the data link between the devices which are to form a common logical entity must be such that every packet intended for transmission by way of the link has a VLAN tag header. If this be so, then the information in that header is redundant and it is also known that certain bytes have a particular content. The present invention therefore envisages the use of the relevant bit positions in the packet to transmit selected information at least while the packet is traversing the link, without any loss of essential packet information or exceeding of the maximum length of the packet.
In circumstances such as these, wherein the units of a stack are operated as a single logical entity, it is desirable for a packet progressing through the stack to carry selected information which enables a device within a stack to recognise the data packet as coming from another unit in a stack. Analogously, a device may be formed of a multiplicity of chips connected by links or buses to form a single switch or other network device. In that context also it may be desirable for a packet received by one chip to carry information which enables another chip in the combined device to recognise the data packet as coming from a chip in the assembly.
It is generally known in the operation of network systems to perform the process of auto-negotiation, as particularly described for example in IEEE Standard 802.3, 1998 Edition (published by the Institute of Electrical and Electronic Engineers, Inc, New York). The process of auto-negotiation is used for a variety of purposes, such as for example establishing the data rate between a port on one device and a port on another but the process generally involves the setting a multiplicity of configuration registers which can be used to identify a port in a characteristic way. All that is required for this purpose is the setting of a relevant bit in a control or configuration register so that the customary examination of the header of a packet as it enters a system or stack can include recourse to that particular bit in the register. In what follows, the setting of such a bit is deemed to constitute the answer ‘yes’ or ‘no’ to the notional question ‘is the port proprietary?’. The answer to a question merely indicates whether a particular egress port will forward the packet to another device within the stack or system within which the VLAN tag header is redundant (e.g. by way of port 8 of device 1) or will forward the packet outside such a stack or system (e.g. by way of port 9 of device 1).
The main purpose of the invention is to modify a packet, on the assumption that the egress port is proprietary, with selected information.
If a packet 30 is tagged as shown in
If, for example, a packet which already contained 1518 bytes had a VLAN tag added to it, so that its size increased to 1522 bytes, that represents the maximum size for any Ethernet packet. There is no way to add any additional information to such a packet without causing the packet to become oversized and therefore automatically discarded by an Ethernet MAC.
The present invention not only provides for special tagging but also the compression of data so that the danger of causing a packet to become oversized is avoided.
It may be appreciated that if a packet enters a system, e.g. at port 6 in
When the receiving end of the link receives the packet it will examine the bit 42 and see that it could use the tag 43 to determine priorities or for some other purpose. When the packet is transmitted out of a port not connected to another unit in the system the tag header 42 and tag 43 can readily be removed in favour of the standard VLAN tag identifier “8100” and then the packet will be in the same format as it was when it initially entered the system.
The scheme thus allows control information to be passed between the units of the stack, or in general, different units within a physical system, with no increase in bandwidth for tagged packets.
If the packet is already tagged, then the most significant 16 bits of the VLAN tag will be replaced (stage 53). Bit 31 (shown at 42) will be set to unity to indicate that the packet came in with a VLAN tag and so that the last 16 bits (44) represent a valid tag. Bits 30 to 16 of the user defined bits are used to pass proprietary information across the link. Bits 15 to 0 remain unchanged and as before contain the VLAN identification, CFI and priority bits for the packet that was received.
The remodification of the packet as it leaves the system requires only the replacement of the user defined bits 30 to 16 as well as bit 31 with the standard VLAN header tag “8100”.
Number | Date | Country | Kind |
---|---|---|---|
9824594 | Nov 1998 | GB | national |
Number | Name | Date | Kind |
---|---|---|---|
4780889 | Ley et al. | Oct 1988 | A |
5550860 | Georgiou et al. | Aug 1996 | A |
5642386 | Rocco, Jr. | Jun 1997 | A |
5751723 | Vanden Heuvel et al. | May 1998 | A |
5757297 | Ferraiolo et al. | May 1998 | A |
5920566 | Hendel et al. | Jul 1999 | A |
5950115 | Momtaz et al. | Sep 1999 | A |
5959990 | Frantz et al. | Sep 1999 | A |
5970103 | Townshend | Oct 1999 | A |
6014380 | Hendel et al. | Jan 2000 | A |
6115394 | Balachandran et al. | Sep 2000 | A |
6128666 | Muller et al. | Oct 2000 | A |
6151322 | Viswanath et al. | Nov 2000 | A |
6151324 | Belser et al. | Nov 2000 | A |
6181699 | Crinion et al. | Jan 2001 | B1 |
6449279 | Belser et al. | Sep 2002 | B1 |
6460088 | Merchant | Oct 2002 | B1 |
6597695 | Desai et al. | Jul 2003 | B1 |
Number | Date | Country |
---|---|---|
0 153 107 | Aug 1985 | EP |
0 365 337 | Apr 1990 | EP |
0 424 741 | May 1991 | EP |
0 465 201 | Jan 1992 | EP |
0 508 886 | Oct 1992 | EP |
0 841 782 | May 1998 | EP |
2 283 645 | May 1995 | GB |
2 336 075 | Oct 1999 | GB |
2 337 674 | Nov 1999 | GB |
2 343 816 | May 2000 | GB |
2 344 030 | May 2000 | GB |
WO 9634474 | Oct 1996 | WO |