← Back to Patent Explorer
US6570875B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Automatic filtering and creation of virtual LANs among a plurality of switch ports

Assignee: Intel Corp
•
Filing: 1998-10-13
•
Granted: 2003-05-27
•
Expires: 2018-10-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a method and apparatus for performing multiprotocol switching and routing, incoming data packets are examined and the flow (i.e., source and destination) with which they are associated is determined. A flow table contains forwarding information that can be applied to all the packets belonging to the flow. If an entry is not present in the table for the particular flow, the packet is forwarded to the CPU to be processed. The CPU can then update the table with new forwarding information to be applied to all future packets of the same flow. When the forwarding information is already present in the table, packets can be forwarded at wire-speed. A dedicated ASIC is preferably employed to contain the table, as well as the engine for examining the packets and forwarding them according to the stored information. Decision-making tasks are thus more efficiently partitioned between the switch and the CPU so as to minimize processing overhead. Processes executing on the CPU maintain information regarding filters, mirrors, priorities, and VLANs. Such information is further integrated with the flow table forwarding information when flows corresponding to the established filters, mirrors, priorities and VLANs are detected. Accordingly, filters, mirrors, priorities and VLANs can be automatically implemented when forwarding decisions are made, which implementation is done at wire speeds. According to another aspect, VLANs are automatically created and updated based on the automatic detection of multicast groups existing among the hosts connected to the ports of the switch. After such VLANs are established, broadcast packets destined for the detected multicast groups are forwarded only along ports whose hosts are members thereof, thereby preventing needless and burdensome traffic from congesting other network segments and host connection.

Inventors

  • 👤 Gopal D. Hegde

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 19:58
CPC Classifications
H; H04; H04L; H04L63/00; H04L63/02; H04L63/0227; H04L63/0236; H04L12/00; H04L12/28; H04L12/46; H04L12/4641; H04L12/4645; H04L45/00; H04L45/302; H04L45/52

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 285 words
A method for forwarding data packets in a switch having a plurality of ports, said ports being adapted to transmit and receive data packets from hosts coupled thereto, said method comprising: receiving a first data packet at a first port; firstly extracting flow identification information from said first data packet, said flow identification information indicating that said first data packet belongs to a first flow between certain of said hosts; corresponding said flow identification information with stored configuration information; creating flow processing information based on said corresponding stored configuration information, said flow processing information comprising at least one of a filter, a mirror, and a priority, said flow processing information further indicating at least a second port, wherein all data packets belonging to said first flow are forwarded between said first and second ports, said first and second ports being associated with said certain hosts; storing a first record in a flow table containing said flow processing information; receiving a second data packet at one of said first and second ports; secondly extracting said flow identification information from said second data packet; locating said stored first record in said flow table based on said extracted flow identification information; and preparing to forward said second data packet to the other of said first and second ports based on said flow processing information contained in said stored first record, wherein said steps of firstly and secondly extracting said flow identification information each includes: determining a protocol associated with said first flow; if said protocol is IP or IPX, extracting Layer 3 header information as said flow identification information; and if said protocol is not IP or IPX, extracting Layer 2 header information as said flow identification information.
Claim 2
Independent Claim 285 words
A method for forwarding data packets in a switch having a plurality of ports, said ports being adapted to transmit and receive data packets from hosts coupled thereto, said method comprising: receiving a first data packet at a first port; firstly extracting flow identification information from said first data packet, said flow identification information indicating that said first data packet belongs to a first flow between certain of said hosts; corresponding said flow identification information with stored configuration information; creating flow processing information based on said corresponding stored configuration information, said flow processing information comprising at least one of a filter, a mirror, and a priority, said flow processing information further indicating at least a second port, wherein all data packets belonging to said first flow are forwarded between said first and second ports, said first and second ports being associated with said certain hosts; storing a first record in a flow table containing said flow processing information; receiving a second data packet at one of said first and second ports; secondly extracting said flow identification information from said second data packet; locating said stored first record in said flow table based on said extracted flow identification information; and preparing to forward said second data packet to the other of said first and second ports based on said flow processing information contained in said stored first record, wherein said steps of firstly and secondly extracting said flow identification information each includes: determining a protocol associated with said first flow; if said protocol is IP or IPX, extracting Layer 3 header information as said flow identification information; and if said protocol is not IP or IPX, extracting Layer 2 header information as said flow identification information.
Claim 3
Dependent Claim 32 words
A method as defined in claim 1 , further comprising: preventing said second data packet from being forwarded to the other of said first and second ports in accordance with said filter.
Claim 4
Dependent Claim 41 words
A method as defined in claim 1 , further comprising: forwarding said second data packet to the other of said first and second ports; and forwarding said second data packet on certain other of said ports in accordance with said mirror.
Claim 5
Dependent Claim 49 words
A method as defined in claim 1 , further comprising: forwarding said second data packet to the other of said first and second ports; and prioritizing transmission of said second data packet to hosts associated with the other of said first and second ports in accordance with said priority.
Claim 6
Independent Claim 228 words
A method of forwarding data packets between a plurality of switch ports, said method comprising: receiving a data packet at one of said switch ports; corresponding flow identification information in said data packet with stored flow processing information, said flow identification information including source and destination addresses, source and destination sockets, and a protocol, said stored flow processing information including a destination port, a filter tag and a broadcast enable, said corresponding including: locating an address resolution hash record in an address resolution hash table according to a portion of said flow identification information, said address resolution hash record storing a link to an address resolution record; locating said address resolution record in an address resolution record table in accordance with said address resolution hash record, said address resolution record storing said destination port and a link to a protocol entry; locating said protocol entry in a protocol entry table in accordance with said address resolution record and said protocol, said protocol entry storing a link to said filter tag and a link to a network entry; locating said network entry in a network entry table according to said protocol entry, said network entry storing said broadcast enable; and locating said filter tag in a list of filter tags in accordance with said protocol entry; and forwarding said data packet in accordance with said stored flow processing information.
Claim 7
Independent Claim 228 words
A method of forwarding data packets between a plurality of switch ports, said method comprising: receiving a data packet at one of said switch ports; corresponding flow identification information in said data packet with stored flow processing information, said flow identification information including source and destination addresses, source and destination sockets, and a protocol, said stored flow processing information including a destination port, a filter tag and a broadcast enable, said corresponding including: locating an address resolution hash record in an address resolution hash table according to a portion of said flow identification information, said address resolution hash record storing a link to an address resolution record; locating said address resolution record in an address resolution record table in accordance with said address resolution hash record, said address resolution record storing said destination port and a link to a protocol entry; locating said protocol entry in a protocol entry table in accordance with said address resolution record and said protocol, said protocol entry storing a link to said filter tag and a link to a network entry; locating said network entry in a network entry table according to said protocol entry, said network entry storing said broadcast enable; and locating said filter tag in a list of filter tags in accordance with said protocol entry; and forwarding said data packet in accordance with said stored flow processing information.
Claim 8
Dependent Claim 24 words
A method according to claim 5 , wherein said stored flow processing information further includes a priority, said protocol entry further storing said priority.
Claim 9
Dependent Claim 28 words
A method according to claim 5 , further comprising alerting a CPU if no stored flow processing information corresponds to said flow identification information of said data packet.
Claim 10
Independent Claim 270 words
A method of forwarding data packets between a plurality of switch ports, said method comprising: receiving a data packet at one of said switch ports; corresponding flow identification information in said data packet with stored flow processing information, said flow identification information including source and destination addresses, source and destination sockets, and a protocol, said stored flow processing information including a destination port, a filter tag and a broadcast enable, said corresponding including: locating an address resolution hash record in an address resolution hash table according to a portion of said flow identification information, said address resolution hash record storing a link to an address resolution record; locating said address resolution record in an address resolution record table in accordance with said address resolution hash record, said address resolution record storing said destination port and a link to a protocol entry; locating said protocol entry in a protocol entry table in accordance with said address resolution record and said protocol, said protocol entry storing a link to said filter tag and a link to a network entry; locating said network entry in a network entry table according to said protocol entry, said network entry storing said broadcast enable; and locating said filter tag in a list of filter tags in accordance with said protocol entry; and forwarding said data packet in accordance with said stored flow processing information, wherein said stored flow processing information further includes a mirror tag, said protocol entry further storing a link to said mirror tag, said method further comprising locating said mirror tag in a list of mirror tags in accordance with said protocol entry.
Claim 11
Independent Claim 270 words
A method of forwarding data packets between a plurality of switch ports, said method comprising: receiving a data packet at one of said switch ports; corresponding flow identification information in said data packet with stored flow processing information, said flow identification information including source and destination addresses, source and destination sockets, and a protocol, said stored flow processing information including a destination port, a filter tag and a broadcast enable, said corresponding including: locating an address resolution hash record in an address resolution hash table according to a portion of said flow identification information, said address resolution hash record storing a link to an address resolution record; locating said address resolution record in an address resolution record table in accordance with said address resolution hash record, said address resolution record storing said destination port and a link to a protocol entry; locating said protocol entry in a protocol entry table in accordance with said address resolution record and said protocol, said protocol entry storing a link to said filter tag and a link to a network entry; locating said network entry in a network entry table according to said protocol entry, said network entry storing said broadcast enable; and locating said filter tag in a list of filter tags in accordance with said protocol entry; and forwarding said data packet in accordance with said stored flow processing information, wherein said stored flow processing information further includes a mirror tag, said protocol entry further storing a link to said mirror tag, said method further comprising locating said mirror tag in a list of mirror tags in accordance with said protocol entry.
Claim 12
Independent Claim 248 words
A method of forwarding data packets between a plurality of switch ports, said method comprising: receiving a data packet at one of said switch ports; corresponding flow identification information in said data packet with stored flow processing information, said flow identification information including source and destination addresses, source and destination sockets, and a protocol, said stored flow processing information including a destination port, a filter tag and a broadcast enable, said corresponding including: locating an address resolution hash record in an address resolution hash table according to a portion of said flow identification information, said address resolution hash record storing a link to an address resolution record; locating said address resolution record in an address resolution record table in accordance with said address resolution hash record, said address resolution record storing said destination port and a link to a protocol entry; locating said protocol entry in a protocol entry table in accordance with said address resolution record and said protocol, said protocol entry storing a link to said filter tag and a link to a network entry; locating said network entry in a network entry table according to said protocol entry, said network entry storing said broadcast enable; and locating said filter tag in a list of filter tags in accordance with said protocol entry; and forwarding said data packet in accordance with said stored flow processing information, wherein said stored flow processing information further includes address swapping bits, said network entry further storing said address swapping bits.
Claim 13
Independent Claim 248 words
A method of forwarding data packets between a plurality of switch ports, said method comprising: receiving a data packet at one of said switch ports; corresponding flow identification information in said data packet with stored flow processing information, said flow identification information including source and destination addresses, source and destination sockets, and a protocol, said stored flow processing information including a destination port, a filter tag and a broadcast enable, said corresponding including: locating an address resolution hash record in an address resolution hash table according to a portion of said flow identification information, said address resolution hash record storing a link to an address resolution record; locating said address resolution record in an address resolution record table in accordance with said address resolution hash record, said address resolution record storing said destination port and a link to a protocol entry; locating said protocol entry in a protocol entry table in accordance with said address resolution record and said protocol, said protocol entry storing a link to said filter tag and a link to a network entry; locating said network entry in a network entry table according to said protocol entry, said network entry storing said broadcast enable; and locating said filter tag in a list of filter tags in accordance with said protocol entry; and forwarding said data packet in accordance with said stored flow processing information, wherein said stored flow processing information further includes address swapping bits, said network entry further storing said address swapping bits.
Claim 14
Independent Claim 258 words
A method of forwarding data packets between a plurality of switch ports, said method comprising: receiving a data packet at one of said switch ports; corresponding flow identification information in said data packet with stored flow processing information, said flow identification information including source and destination addresses, source and destination sockets, and a protocol, said stored flow processing information including a destination port, a filter tag and a broadcast enable, said corresponding including: locating an address resolution hash record in an address resolution hash table according to a portion of said flow identification information, said address resolution hash record storing a link to an address resolution record; locating said address resolution record in an address resolution record table in accordance with said address resolution hash record, said address resolution record storing said destination port and a link to a protocol entry; locating said protocol entry in a protocol entry table in accordance with said address resolution record and said protocol, said protocol entry storing a link to said filter tag and a link to a network entry; locating said network entry in a network entry table according to said protocol entry, said network entry storing said broadcast enable; and locating said filter tag in a list of filter tags in accordance with said protocol entry; and forwarding said data packet in accordance with said stored flow processing information, wherein said forwarding step includes routing said data packet to another network by swapping said source and destination addresses of said data packet in accordance with said address swapping bits.
Claim 15
Independent Claim 258 words
A method of forwarding data packets between a plurality of switch ports, said method comprising: receiving a data packet at one of said switch ports; corresponding flow identification information in said data packet with stored flow processing information, said flow identification information including source and destination addresses, source and destination sockets, and a protocol, said stored flow processing information including a destination port, a filter tag and a broadcast enable, said corresponding including: locating an address resolution hash record in an address resolution hash table according to a portion of said flow identification information, said address resolution hash record storing a link to an address resolution record; locating said address resolution record in an address resolution record table in accordance with said address resolution hash record, said address resolution record storing said destination port and a link to a protocol entry; locating said protocol entry in a protocol entry table in accordance with said address resolution record and said protocol, said protocol entry storing a link to said filter tag and a link to a network entry; locating said network entry in a network entry table according to said protocol entry, said network entry storing said broadcast enable; and locating said filter tag in a list of filter tags in accordance with said protocol entry; and forwarding said data packet in accordance with said stored flow processing information, wherein said forwarding step includes routing said data packet to another network by swapping said source and destination addresses of said data packet in accordance with said address swapping bits.
Claim 16
Independent Claim 311 words
An apparatus for forwarding data packets in a switch having a plurality of ports, said ports being adapted to transmit and receive data packets from hosts coupled thereto, said apparatus comprising: means for receiving a first data packet at a first port; means for firstly extracting flow identification information from said first data packet, said flow identification information indicating that said first data packet belongs to a first flow between certain of said hosts; means for corresponding said flow identification information with stored configuration information; means for creating flow processing information based on said corresponding stored configuration information, said flow processing information comprising at least one of a filter, a mirror, and a priority, said flow processing information further indicating at least a second port, wherein all data packets belonging to said first flow are forwarded between said first and second ports, said first and second ports being associated with said certain hosts; means for storing a first record in a flow table containing said flow processing information; means for receiving a second data packet at one of said first and second ports; means for secondly extracting said flow identification information from said second data packet; means for locating said stored first record in said flow table based on said extracted flow identification information; and means for preparing to forward said second data packet to the other of said first and second ports based on said flow processing information contained in said stored first record, wherein said means for firstly and secondly extracting said flow identification information each includes: means for determining a protocol associated with said first flow; means, operative if said protocol is IP or IPX, for extracting Layer 3 header information as said flow identification information; and means, operative if said protocol is not IP or IPX, for extracting Layer 2 header information as said flow identification information.
Claim 17
Independent Claim 311 words
An apparatus for forwarding data packets in a switch having a plurality of ports, said ports being adapted to transmit and receive data packets from hosts coupled thereto, said apparatus comprising: means for receiving a first data packet at a first port; means for firstly extracting flow identification information from said first data packet, said flow identification information indicating that said first data packet belongs to a first flow between certain of said hosts; means for corresponding said flow identification information with stored configuration information; means for creating flow processing information based on said corresponding stored configuration information, said flow processing information comprising at least one of a filter, a mirror, and a priority, said flow processing information further indicating at least a second port, wherein all data packets belonging to said first flow are forwarded between said first and second ports, said first and second ports being associated with said certain hosts; means for storing a first record in a flow table containing said flow processing information; means for receiving a second data packet at one of said first and second ports; means for secondly extracting said flow identification information from said second data packet; means for locating said stored first record in said flow table based on said extracted flow identification information; and means for preparing to forward said second data packet to the other of said first and second ports based on said flow processing information contained in said stored first record, wherein said means for firstly and secondly extracting said flow identification information each includes: means for determining a protocol associated with said first flow; means, operative if said protocol is IP or IPX, for extracting Layer 3 header information as said flow identification information; and means, operative if said protocol is not IP or IPX, for extracting Layer 2 header information as said flow identification information.
Claim 18
Dependent Claim 34 words
An apparatus as defined in claim 11 , further comprising: means for preventing said second data packet from being forwarded to the other of said first and second ports in accordance with said filter.
Claim 19
Dependent Claim 45 words
An apparatus as defined in claim 11 , further comprising: means for forwarding said second data packet to the other of said first and second ports; and means for forwarding said second data packet on certain other of said ports in accordance with said mirror.
Claim 20
Dependent Claim 53 words
An apparatus as defined in claim 11 , further comprising: means for forwarding said second data packet to the other of said first and second ports; and means for prioritizing transmission of said second data packet to hosts associated with the other of said first and second ports in accordance with said priority.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-05-26 2006-11-25 2007-05-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-05-26 2010-11-25 2011-05-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-05-26 2014-11-25 2015-05-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag