WO2004047384A1 - Processing data packets within a data switch - Google Patents

Processing data packets within a data switch Download PDF

Info

Publication number
WO2004047384A1
WO2004047384A1 PCT/SG2002/000269 SG0200269W WO2004047384A1 WO 2004047384 A1 WO2004047384 A1 WO 2004047384A1 SG 0200269 W SG0200269 W SG 0200269W WO 2004047384 A1 WO2004047384 A1 WO 2004047384A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
addresses
data
switch
reserved
Prior art date
Application number
PCT/SG2002/000269
Other languages
French (fr)
Inventor
Yean Kee Yong
Alvin Lim Swee Hock
Original Assignee
Infineon Technologies Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies Ag filed Critical Infineon Technologies Ag
Priority to PCT/SG2002/000269 priority Critical patent/WO2004047384A1/en
Priority to AU2002368361A priority patent/AU2002368361A1/en
Priority to DE10297815T priority patent/DE10297815B4/en
Priority to TW092129805A priority patent/TWI241806B/en
Publication of WO2004047384A1 publication Critical patent/WO2004047384A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Definitions

  • the present invention relates to a data switch such as an ethernet switch which switches data packets containing an address.
  • a data switch having a plurality of ports for receiving and transmitting data packets.
  • Two or more ports of the switch are connected to respective devices (possibly via intermediate devices and/or networks), and these devices each have an address known as a MAC address.
  • Each of the data packets includes the MAC address of the device it is intended to go to, and it is the job of the switch to ensure that the packet is transmitted through the port leading to the corresponding device.
  • the switch is designed to generate automatically an address table associating MAC addresses with its various ports, so that, when a data packet is received, the data switch can extract the address, and use it and the address table to identify the associated port. The data packet is then transmitted through that port.
  • the address table is stored in read/write memory, so that it can be modified as required.
  • IEEE standard 802.1 defines certain "reserved" addresses which are not to be used as the MAC addresses of any devices.
  • a packet with one of these addresses is not supposed to be transmitted by the switch. Instead, the address determines a function which the switch should perform on the data packet. For example, it may be a data packet containing control signals for modifying the operating parameters of the switch.
  • the address tells the switch to transmit the packet through a predefined port (i.e. irrespective of the data stored in the MAC address table for that port).
  • the switch receives a data packet it firstly checks whether the address is one of these predefined addresses. If it is, then it is unnecessary to compare the address to the address table. That is, instead of comparing the address in the data packet to the address table, the switch performs the function defined by the address, e.g. to extract any relevant information in the data packet (e.g. the control signals mentioned above) and then discard the data packet.
  • the present invention is based on the inventors' realisation that, as the standards governing data switches change over time, the reserved addresses allocation space may also change. For this reason, certain addresses in the reserved list may be used by certain vendors for specific functions. However, if the reserved address list has been hard coded into the switch with a action which is different from the new function of the address, the switch would not be able to transmit such data packets correctly.
  • the present invention proposes in general terms that, even for data packets including a destination address which is in the reserved table, the destination address is compared with a read/write table which defines actions associated with addresses. If such a match is found, the switch implements the actions specified by the read/write table, even if the address is in a reserved address list stored inside the switch.
  • the invention makes it possible for a data switch to correctly transmit data packets even if they contain addresses which were on the reserved list at the time that the data switch was constructed. Note that this capability is achieved at a cost: unlike the prior art switch described, the data switch of the invention typically has to perform a comparison of the addresses in all received packets with a read/write table. In the case that the list of revised addresses is never changed, then many of these comparisons will be pointless: no match will ever be found between the address table and a address on the reserved list.
  • the present invention makes it possible to have two methods for handling packets including the reserved addresses: as a default mode, e.g. to drop the packet, or according to data stored in the address table.
  • this modification in the function of the switch can be performed by a modification of the read/write table, e.g. performed by applying external control signals to the switch. Note, however, that the user does not have to take any action in the case that the user decides not to process addresses on the reserved list. If packets do not have an address which appears in the read/write table, they will automatically be dropped.
  • the invention makes it possible to change the processing associated with addresses on the reserved list. For example, it is possible to modify the read/write table to specify that a predetermined port is associated with one of the addresses on the reserved list. In this case, instead of discarding a packet having this reserved address (the default mode), the switch will always forward it to the predefined port.
  • the read/write table can be programmed with these reserved addresses, and with a set of actions associated with each entry.
  • the actions defined in the read/write table supersede the actions defined in the default mode.
  • the read/write table is the address table used by the switch to control the switching fabric of the device.
  • the switch preferably upon receiving a data packet, the switch performs a lookup in the address table, as well as a comparison of the address with the list of reserved addresses. In the case that a match is found in the address table, then the packet is forwarded based on the actions defined in the address table, irrespective of whether the address is part of the reserved address list.
  • the read/write table is a second table, separate from the address table used by the control unit of the switching fabric.
  • its destination address may first be compared with the list of reserved addresses. If there is no match, the packet is processed in the usual way based on the address table in the switch. If there is a match, however, the destination address is compared to the second table. If there is a match, the packet is dealt with as defined by the second table. If there is no match, the packet is dealt with according to the reserved address list.
  • the second table may, for example, be associated with a monitoring port of the switch.
  • the data packet may be transmitted to the monitoring port.
  • the data packet is dealt with as specified by the second table. For example, it may be forwarded to a port of the switch defined by the second table. Otherwise, the data packet may be discarded.
  • Fig. 1 is a flow diagram of a first method according to the present invention.
  • Fig. 2 is a flow diagram of a second method according to the invention.
  • a method which is an embodiment of the invention includes a step 1 of receiving a data packet.
  • the address in the data packet is extracted in step 2.
  • the address is compared with an address table stored in read/write memory, and the address is compared with a reserved list stored in write-only memory.
  • step 4 it is determined whether step 3 identified a match between the address and the address table. In this case the function defined by the address table is performed (step 5).
  • step 6 it is determined whether step 3 identified a match between the address and the reserved list. In this case the function defined by the reserved list is performed (step 7).
  • step 8 the address is treated as not recognised.
  • the packet is treated as in the prior art systems when a packet with an unrecognised address was received.
  • the packet may be broadcast through all ports (or all ports apart from the one through which it was received).
  • the method steps of an alternative, and presently less preferred, method according to the invention are shown in Fig. 2.
  • the method of Fig. 2 includes a step 11 of receiving a data packet.
  • the address in the data packet is extracted in step 12.
  • the address is compared with a reserved list stored in write-only memory.
  • step 13 no match between the address and the reserved list, the address is compared to an address table (as in prior art methods), and the data packet is transmitted to one of the ports according to data extracted from the address table using the address.
  • step 13 if in step 13 a match is found between the address and the reserved list, the data packet is sent to a predefined "monitoring port" of the switch. There the address is compared with a second read/write table in step 14.
  • step 15 If is determined in step 14 that there is a match between the address and the second table, a function is performed which is defined by the second read/write table and associated with that address (step 15).
  • the second read/write table may specify that data packets carrying that address are forwarded to a respective other one of the ports.
  • the first of the two embodiments is preferred since it means that a second read/write memory is not required. Furthermore, the time taken by data packets to pass through the switch is typically lower for the first embodiment than the second.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A data switch such as an Ethernet switch compares the address contained in a received packet with addresses in MAC address table, to identify whether the table associates a port with the address. If such a match is found, the switch transmits the data packet through the port specified by the MAC address table. If not, the Ethernet switch processes the data packet according to whether the address is in a list of reserved addresses stored inside the switch.

Description

Processing data packets within a data switch
Field of the invention
The present invention relates to a data switch such as an ethernet switch which switches data packets containing an address.
Background of Invention
It is well known to provide a data switch having a plurality of ports for receiving and transmitting data packets. Two or more ports of the switch are connected to respective devices (possibly via intermediate devices and/or networks), and these devices each have an address known as a MAC address. Each of the data packets includes the MAC address of the device it is intended to go to, and it is the job of the switch to ensure that the packet is transmitted through the port leading to the corresponding device.
Conventionally, the switch is designed to generate automatically an address table associating MAC addresses with its various ports, so that, when a data packet is received, the data switch can extract the address, and use it and the address table to identify the associated port. The data packet is then transmitted through that port. The address table is stored in read/write memory, so that it can be modified as required.
This is not the only function of the addresses, however. IEEE standard 802.1 defines certain "reserved" addresses which are not to be used as the MAC addresses of any devices. A packet with one of these addresses is not supposed to be transmitted by the switch. Instead, the address determines a function which the switch should perform on the data packet. For example, it may be a data packet containing control signals for modifying the operating parameters of the switch. In another example, the address tells the switch to transmit the packet through a predefined port (i.e. irrespective of the data stored in the MAC address table for that port). When the switch receives a data packet it firstly checks whether the address is one of these predefined addresses. If it is, then it is unnecessary to compare the address to the address table. That is, instead of comparing the address in the data packet to the address table, the switch performs the function defined by the address, e.g. to extract any relevant information in the data packet (e.g. the control signals mentioned above) and then discard the data packet.
Summary of the Invention
The present invention is based on the inventors' realisation that, as the standards governing data switches change over time, the reserved addresses allocation space may also change. For this reason, certain addresses in the reserved list may be used by certain vendors for specific functions. However, if the reserved address list has been hard coded into the switch with a action which is different from the new function of the address, the switch would not be able to transmit such data packets correctly.
Accordingly, the present invention proposes in general terms that, even for data packets including a destination address which is in the reserved table, the destination address is compared with a read/write table which defines actions associated with addresses. If such a match is found, the switch implements the actions specified by the read/write table, even if the address is in a reserved address list stored inside the switch.
Thus the invention makes it possible for a data switch to correctly transmit data packets even if they contain addresses which were on the reserved list at the time that the data switch was constructed. Note that this capability is achieved at a cost: unlike the prior art switch described, the data switch of the invention typically has to perform a comparison of the addresses in all received packets with a read/write table. In the case that the list of revised addresses is never changed, then many of these comparisons will be pointless: no match will ever be found between the address table and a address on the reserved list.
The present invention makes it possible to have two methods for handling packets including the reserved addresses: as a default mode, e.g. to drop the packet, or according to data stored in the address table.
In the case that the standard is modified to remove addresses from the reserved list, or to modify their function, this modification in the function of the switch can be performed by a modification of the read/write table, e.g. performed by applying external control signals to the switch. Note, however, that the user does not have to take any action in the case that the user decides not to process addresses on the reserved list. If packets do not have an address which appears in the read/write table, they will automatically be dropped.
The invention makes it possible to change the processing associated with addresses on the reserved list. For example, it is possible to modify the read/write table to specify that a predetermined port is associated with one of the addresses on the reserved list. In this case, instead of discarding a packet having this reserved address (the default mode), the switch will always forward it to the predefined port.
More generally, for additional flexibility, the read/write table can be programmed with these reserved addresses, and with a set of actions associated with each entry. The actions defined in the read/write table supersede the actions defined in the default mode. Preferably, the read/write table is the address table used by the switch to control the switching fabric of the device.
In this case, preferably upon receiving a data packet, the switch performs a lookup in the address table, as well as a comparison of the address with the list of reserved addresses. In the case that a match is found in the address table, then the packet is forwarded based on the actions defined in the address table, irrespective of whether the address is part of the reserved address list.
Another possibility, however, is for the read/write table to be a second table, separate from the address table used by the control unit of the switching fabric. In this case, when a data packet is received its destination address may first be compared with the list of reserved addresses. If there is no match, the packet is processed in the usual way based on the address table in the switch. If there is a match, however, the destination address is compared to the second table. If there is a match, the packet is dealt with as defined by the second table. If there is no match, the packet is dealt with according to the reserved address list.
The second table may, for example, be associated with a monitoring port of the switch. In the case that a match is found between the destination address of a received packet and the reserved address list, the data packet may be transmitted to the monitoring port. In the case that a match is found between the destination address of the received packet and the second table, the data packet is dealt with as specified by the second table. For example, it may be forwarded to a port of the switch defined by the second table. Otherwise, the data packet may be discarded. Brief Description of The Figures
Preferred features of the invention will now be described, for the sake of illustration only, with reference to the following figure in which:
Fig. 1 is a flow diagram of a first method according to the present invention; and
Fig. 2 is a flow diagram of a second method according to the invention.
Detailed Description of the embodiments
As shown in Fig. 1 , a method which is an embodiment of the invention includes a step 1 of receiving a data packet. The address in the data packet is extracted in step 2. In step 3, the address is compared with an address table stored in read/write memory, and the address is compared with a reserved list stored in write-only memory. These two actions are preferably performed in parallel.
In step 4, it is determined whether step 3 identified a match between the address and the address table. In this case the function defined by the address table is performed (step 5).
Otherwise, the method proceeds to step 6, in which it is determined whether step 3 identified a match between the address and the reserved list. In this case the function defined by the reserved list is performed (step 7).
Otherwise, the method proceeds to step 8 in which the address is treated as not recognised. In this case, the packet is treated as in the prior art systems when a packet with an unrecognised address was received. For example the packet may be broadcast through all ports (or all ports apart from the one through which it was received). The method steps of an alternative, and presently less preferred, method according to the invention are shown in Fig. 2.
The method of Fig. 2 includes a step 11 of receiving a data packet. The address in the data packet is extracted in step 12. In step 13, the address is compared with a reserved list stored in write-only memory.
In step 13, no match between the address and the reserved list, the address is compared to an address table (as in prior art methods), and the data packet is transmitted to one of the ports according to data extracted from the address table using the address.
However, if in step 13 a match is found between the address and the reserved list, the data packet is sent to a predefined "monitoring port" of the switch. There the address is compared with a second read/write table in step 14.
If is determined in step 14 that there is a match between the address and the second table, a function is performed which is defined by the second read/write table and associated with that address (step 15). For example, the second read/write table may specify that data packets carrying that address are forwarded to a respective other one of the ports.
Otherwise, the function defined by the reserved list is performed (step 16).
Note that the first of the two embodiments is preferred since it means that a second read/write memory is not required. Furthermore, the time taken by data packets to pass through the switch is typically lower for the first embodiment than the second. Although only two embodiments of the invention has been described, the invention is not limited in this respect and many variations are possible within the scope of the invention as will be clear to a skilled reader.

Claims

Claims
1. A data switch for receiving and transmitting data packets, the data switch comprising:
a plurality of ports for receiving/transmitting data packets which each include an address;
table means for storing modifiable associations between addresses and corresponding ports;
reserved address identification means for determining if addresses included in received packets are one of a set of predetermined addresses; and
table match identification means for determining if addresses included in received packets are one of the addresses associated by the table with corresponding ports;
wherein the data switch is arranged, in the case that the table match identification means identifies a match for a given packet to process that data packet according to data associated with the address in the table, and otherwise in the case that the reserved address identification means determines that the address is one the predetermined addresses to process the packet in accordance with data associated with that predetermined address.
2. A method for processing data packets in a data switch, the method comprising:
(a) receiving a data packet including an address, and extracting the address; (b) determining if the address is one of a number of addresses associated by a table with corresponding ports;
(c) in the case that the determination in step (b) is positive to process that data packet according to the association given by the table,
(d) in the case that the determination in step (b) is negative to process the data packets according to whether the address is one of a set of predetermined reserved addresses.
3. A method according to claim 2 including a step, performed with step (b), of determining if the address is one of the set of predetermined reserved addresses.
4. A data switch for receiving and transmitting data packets, the data switch comprising:
a plurality of ports for receiving/transmitting data packets which each include an address;
reserved address identification means for determining if addresses included in received packets are one of a set of predetermined addresses;
table means for storing modifiable associations between addresses and corresponding ports; and
table match identification means for determining if addresses included in received packets are one of the addresses associated by the table with corresponding ports;
wherein the data switch is arranged, in the case that the reserved address identification means determines that the address is one the predetermined addresses, to transmit the table to the table match identification means, and in the case that the table match identification means identifies a match for a given packet to process that data packet according to data associated with the address in the table, and otherwise in the case that the reserved address identification means determines that the address is one the predetermined addresses to process the packet in accordance with data associated with that predetermined address.
5. A data switch according to claim 4 in which the table match identification means is associated with one of the ports.
6. A method for processing data packets in a data switch, the method comprising:
(a) receiving a data packet including an address, and extracting the address;
(b) determining if the address is one of a set of predetermined reserved addresses;
(c) in the case that the determination in step (b) is positive to process the data packets according to whether the address is one of a number of addresses included in a read/write table.
7. A method according to claim 2, claim 3 or claim 6 including a step preceding step (a) of modifying the table in respect of certain addresses to obtain a function to be performed if the data packet includes one of the certain addresses.
PCT/SG2002/000269 2002-11-15 2002-11-15 Processing data packets within a data switch WO2004047384A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/SG2002/000269 WO2004047384A1 (en) 2002-11-15 2002-11-15 Processing data packets within a data switch
AU2002368361A AU2002368361A1 (en) 2002-11-15 2002-11-15 Processing data packets within a data switch
DE10297815T DE10297815B4 (en) 2002-11-15 2002-11-15 Processing of data packets within a data switch
TW092129805A TWI241806B (en) 2002-11-15 2003-10-27 Processing data packets within a data switch

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG2002/000269 WO2004047384A1 (en) 2002-11-15 2002-11-15 Processing data packets within a data switch

Publications (1)

Publication Number Publication Date
WO2004047384A1 true WO2004047384A1 (en) 2004-06-03

Family

ID=32322727

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2002/000269 WO2004047384A1 (en) 2002-11-15 2002-11-15 Processing data packets within a data switch

Country Status (4)

Country Link
AU (1) AU2002368361A1 (en)
DE (1) DE10297815B4 (en)
TW (1) TWI241806B (en)
WO (1) WO2004047384A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285907B2 (en) 2004-12-10 2012-10-09 Intel Corporation Packet processing in switched fabric networks
EP2632087A1 (en) * 2012-02-21 2013-08-28 Huawei Technologies Co., Ltd. Packet sending method and network device
CN104144130A (en) * 2013-05-10 2014-11-12 中国电信股份有限公司 Virtual machine system interconnection method and system and access switch

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6252880B1 (en) * 1997-11-10 2001-06-26 Advanced Micro Devices, Inc. Apparatus and method for selectively supplying a data packet to a selected network node in a buffered distributor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"MEDIA ACCESS CONTROL (MAC) BRIDGES", ANSI/IEEE STD 802.1D, 1998 EDITION, December 1998 (1998-12-01), pages 29 - 58, XP002248400, Retrieved from the Internet <URL:http://ieeexplore.ieee.org/xpl/tocresult.jsp?isNumber=16175> [retrieved on 20030721] *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285907B2 (en) 2004-12-10 2012-10-09 Intel Corporation Packet processing in switched fabric networks
EP2632087A1 (en) * 2012-02-21 2013-08-28 Huawei Technologies Co., Ltd. Packet sending method and network device
EP2827542A1 (en) * 2012-02-21 2015-01-21 Huawei Technologies Co., Ltd. Packet sending method and network device
US9325616B2 (en) 2012-02-21 2016-04-26 Huawei Technologies Co., Ltd. Packet sending method and network device
US10044615B2 (en) 2012-02-21 2018-08-07 Huawei Technologies Co., Ltd. Packet sending method and network device
US10608935B2 (en) 2012-02-21 2020-03-31 Huawei Technologies Co., Ltd. Packet sending method and network device
CN104144130A (en) * 2013-05-10 2014-11-12 中国电信股份有限公司 Virtual machine system interconnection method and system and access switch

Also Published As

Publication number Publication date
DE10297815T5 (en) 2005-11-03
TWI241806B (en) 2005-10-11
DE10297815B4 (en) 2010-05-12
AU2002368361A1 (en) 2004-06-15
TW200423636A (en) 2004-11-01

Similar Documents

Publication Publication Date Title
EP1244254B1 (en) Classification and tagging rules for switching nodes
EP1523138B1 (en) Access control mechanism for routers
EP1130855B1 (en) Selectable prioritization for data communication switch
US7308612B1 (en) Fast port failover in a network switch
US7133400B1 (en) System and method for filtering data
US8654772B2 (en) Programmable packet switching device
US8457007B2 (en) Global switch resource manager
US7802094B2 (en) Reduction of false positive detection of signature matches in intrusion detection systems
CA2559251A1 (en) Hardware filtering support for denial-of-service attacks
US20180103060A1 (en) Methods and apparatus for detecting and/or dealing with denial of service attacks
US7586849B2 (en) Dedicated bandwidth data communication switch backplane
US7616662B2 (en) Parser for parsing data packets
WO2004047384A1 (en) Processing data packets within a data switch
US20050002332A1 (en) Method, apparatus and computer program for performing a frame flow control, and method, apparatus and computer program for transmitting a frame
US20080002685A1 (en) Packet switch equipment and bandwidth control method using the same
KR100937283B1 (en) Processor with reduced memory requirements for high-speed routing and switching of packets
KR20060009867A (en) Method for the priority classification of frames
CN101115065B (en) Method and arrangement for processing management and control messages
US11658911B2 (en) System and method for low latency network switching
EP1351110B1 (en) Fast flexible range checking
KR102288315B1 (en) Method of flow ID allocation in distributed packet switches
WO2006085374A1 (en) Communication device
JP2008085886A (en) Packet processing apparatus, packet processing method, and packet processing program
US7590056B2 (en) Processor configured for efficient processing of single-cell protocol data units
US7724667B2 (en) Ethernet line card and method of providing various services using the same

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
RET De translation (de og part 6b)

Ref document number: 10297815

Country of ref document: DE

Date of ref document: 20051103

Kind code of ref document: P

WWE Wipo information: entry into national phase

Ref document number: 10297815

Country of ref document: DE

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Ref document number: JP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8607

REG Reference to national code

Ref country code: DE

Ref legal event code: 8607

REG Reference to national code

Ref country code: DE

Ref legal event code: 8607