US20180359195A1 - Timestamp-based packet switching using a trie data structure - Google Patents

Timestamp-based packet switching using a trie data structure Download PDF

Info

Publication number
US20180359195A1
US20180359195A1 US15/894,732 US201815894732A US2018359195A1 US 20180359195 A1 US20180359195 A1 US 20180359195A1 US 201815894732 A US201815894732 A US 201815894732A US 2018359195 A1 US2018359195 A1 US 2018359195A1
Authority
US
United States
Prior art keywords
network packet
network
predetermined time
trie
data structure
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
US15/894,732
Other versions
US10855621B2 (en
Inventor
Zubin Hemantkumar SHAH
Shih-Jeff CHEN
Ravindran Suresh
Leonid Livak
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Marvell Asia Pte Ltd
Original Assignee
Cavium LLC
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 Cavium LLC filed Critical Cavium LLC
Priority to US15/894,732 priority Critical patent/US10855621B2/en
Assigned to Cavium, Inc. reassignment Cavium, Inc. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHEN, Shih-Jeff, LIVAK, LEONID, SHAH, Zubin Hemantkumar, SURESH, RAVINDRAN
Assigned to CAVIUM, LLC reassignment CAVIUM, LLC CONVERSION Assignors: Cavium, Inc.
Publication of US20180359195A1 publication Critical patent/US20180359195A1/en
Assigned to CAVIUM INTERNATIONAL reassignment CAVIUM INTERNATIONAL ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CAVIUM, LLC
Assigned to MARVELL ASIA PTE, LTD. reassignment MARVELL ASIA PTE, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CAVIUM INTERNATIONAL
Priority to US17/084,323 priority patent/US11502974B2/en
Application granted granted Critical
Publication of US10855621B2 publication Critical patent/US10855621B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/748Address table lookup; Address filtering using longest matching prefix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Definitions

  • Embodiments of the present invention are related to the field of communication network systems, and in particular, to packet switching mechanisms in communication network systems.
  • network nodes such as switches and routers
  • network nodes are typically used to perform packet switching to transmit, receive, process and forward data packets, e.g., between devices or between networks.
  • data packets are received, buffered, queued, and transmitted, resulting in variable latency and throughput depending on many factors including the link capacity and the traffic load on the network.
  • the ever increasing demands of Internet traffic require equipment suppliers to develop faster and more efficient packet switching techniques for managing traffic.
  • RTP Real-time Transport Protocol
  • IP Internet Protocol
  • Packet switching is typically performed based on the information contained in the packet headers and according to a combination of various switch management policies and criteria.
  • the Real-time Transport Protocol is a network protocol for delivering audio and video data over Internet Protocol (IP) networks and is used extensively in communication and entertainment systems that involve media streaming.
  • An RTP packet usually includes a 32-bit timestamp which specifies the relative time that the packet is generated. Timestamps in the packets may provide important time information for some packet processing operations, e.g., between end hosts as sender and receivers of video data.
  • Some packet processing applications can be based on time ranges, where packet timestamps are mapped to prescribed time ranges which are used as time information input.
  • TS prescribed timestamp
  • Embodiments of the present disclosure use a trie data structure to search for a predetermined TS range for a network data packet, e.g., an IPv4 or IPv6 packet received at a network switch.
  • the network switch includes a table representation of the trie configured with a set of predetermined TS ranges, and a TS range lookup engine configured to match a TS value with a predetermined TS range.
  • the trie includes a hierarchy of nodes and paths linking the nodes, and in some embodiments may be a bitwise trie. Each node in the hierarchy corresponds to a TS prefix and is positioned at a level that matches the corresponding prefix length, and all the descendent nodes share the common TS prefix stored in the node.
  • the node is also associated with one of the predetermined TS ranges.
  • the network switch may further include a trie generation engine that can automatically generate the TS range trie, for example based on a user configuration and through a trie optimization process.
  • the TS range lookup engine may be implemented using hardware primitives and using optimized Static Random Access Memory (SRAM) having deterministic lookup latency.
  • SRAM Static Random Access Memory
  • the network switch parses the packet to extract the packet TS.
  • the lookup engine uses the packet TS as a search key to look up the table representation of the trie and thereby identifies a predetermined TS range that encompasses, and thus matches, the packet TS value.
  • the lookup engine may include a Longest Prefix Match (LPM) engine to search for the node in the trie that has the longest TS prefix matching the packet TS.
  • LPM Longest Prefix Match
  • the TS range associated with the node is the most specific matching TS range to the packet TS.
  • the network switch may also include various other types of lookup engines or processing engines, e.g., configured in an engine pipeline which may be user configurable. Based on the TS range output from the TS range look up engine, various applications or logic engines can further process the packet, e.g., drop the packet, modify the packet with a new DIP address, forward the packet, analyze the packet, and other applicable processing actions.
  • lookup engines or processing engines e.g., configured in an engine pipeline which may be user configurable.
  • various applications or logic engines can further process the packet, e.g., drop the packet, modify the packet with a new DIP address, forward the packet, analyze the packet, and other applicable processing actions.
  • Using a trie data structure to compress packet timestamps into TS ranges significantly reduces the memory capacity and memory bandwidth specifications for storing and accessing the TS values in a lookup table, and reduces the specified time to produce a search result of TS range.
  • high scalability can be achieved in terms of search performance even as the TS width increases and the lookup table size grows.
  • FIG. 1 illustrates a network system utilizing a network switch to perform channel switching (or packet switching) based on packet TS ranges identified by traversing a TS range trie in accordance with an embodiment of the present disclosure.
  • FIG. 2 illustrates the configuration of an exemplary TS range trie in accordance with an embodiment of the present disclosure.
  • FIG. 3 illustrates an exemplary process and data flow of determining a TS range for a received packet and processing the packet based on the determined TS range in a network switch in accordance with an embodiment of the present disclosure.
  • FIG. 4 illustrates the configuration of an exemplary network switch in accordance with an embodiment of the present disclosure.
  • FIG. 5 is a flow chart depicting an exemplary process of determining a TS range for a packet and processing the packet based on the identified TS range in accordance with an embodiment of the present disclosure.
  • FIG. 6 is a flow chart depicting an exemplary process of automatically generating or updating a TS range trie table based on user input in accordance with an embodiment of the present disclosure
  • embodiments of the present disclosure provide a network switch capable of searching through a table representation of a trie data structure to identify a timestamp (TS) range (or a time range) for a received data packet based on a packet TS value.
  • the trie data structure is programmed with a plurality of predetermined time ranges.
  • Each node in the trie stores a TS prefix and is positioned at a level that matches the corresponding prefix length, and all (or many, in certain embodiments) the descendent nodes share the same TS prefix stored in the node.
  • Each node may be assigned with one of the predetermined TS ranges.
  • a search engine in the network switch can use the packet TS as a key to traverse the trie data structure and thereby map the packet TS to a predetermined time range according to a Longest Prefix Match (LPM) process.
  • LPM Longest Prefix Match
  • various applications and logic engines in the network switch can accordingly make decisions for processing the packets.
  • FIG. 1 illustrates a network system utilizing a network switch 110 to perform channel switching (or packet switching) based on packet TS ranges identified by traversing a TS range trie in accordance with an embodiment of the present disclosure.
  • the network switch 110 is communicatively coupled to multiple source devices that generate streams of packets, such as Real-time Transport Protocol (RTP) packets carrying audio and video data, such as Source 1 121 , Source 2 , 122 and Source N 123 .
  • RTP Real-time Transport Protocol
  • the data packets may be any packet format, including IPv4 packets, or IPv6 packets.
  • the source devices 121 - 123 may be video cameras, media players, computers, and other electronic equipment. Data packets from the source devices 121 - 123 are delivered to different ingress ports of the network switch 110 through a communication network, e.g., Ingress ports A, B, and X.
  • the communication network used in the network system can be a local area network (LAN), a wide area network (WAN), a Wireless network, Wi-Fi, a Software-Defined Network (SDN), and any other applicable network.
  • the network switch 110 is also communicatively coupled to multiple destination devices, such as Destination 1 , 131 , Destination 2 , 132 through Destination N, 133 .
  • a destination device may be a monitor terminal for receiving and playing back the data streams generated from the source devices 121 - 123 .
  • a destination device may be a multicast or broadcast device that can send received data packets to selected devices or to all of its downstream devices.
  • the network switch 110 is configured with an application that alternately reroutes the data streams to a single destination device Destination 1 through an egress port Y according to a channel switching schedule. For each specific time range, the data stream from a particular channel is rerouted to Destination 1 , 131 . The other data streams may be dropped at the switch 110 .
  • the source devices 121 - 123 may be coupled to a gateway 141 - 143 providing Serial Digital Interface (SDI)-to-Internet Protocol (IP) transition.
  • SDI Serial Digital Interface
  • IP Internet Protocol
  • the gateway assigns a destination IP (DIP) address for the data packets from the associated source device, e.g., DIP 1 for data packets from Source 1 , and DIP 2 for data packets from Source 2 .
  • DIP destination IP
  • these DIP addresses are different from the intended device Destination 1 131 .
  • the network switch 110 includes a table representation of a TS range trie 112 and a TS range search engine (or lookup engine) (not explicitly shown).
  • a TS range search engine or lookup engine
  • the packet TS is extracted and supplied to the search engine as a search key.
  • the search engine traverses the table representation of the TS range trie 112 to identify a node with a TS prefix that most closely matches the packet TS, as described in greater detail below.
  • the TS range or TS range ID corresponding to the identified node is then output from the search engine.
  • the network switch 110 may selectively drop some packets and reroute the rest through the egress port Y, e.g., by using a packet processing component 116 .
  • this approach offers the benefit of dropping duplicate or unnecessary streams at the beginning of the network path instead of at the end-host.
  • a trie data structure to search for matching TS ranges advantageously and significantly reduces the memory capacity and memory bandwidth specified for adequately storing and accessing the TS values in a lookup table.
  • embodiments may also reduce the time specified to produce a search result.
  • Matches may be obtained in a fixed and deterministic latency, which is typical in a ternary content addressable memory (TCAM)-based search engine. Further, high scalability can be achieved in term of search even performance as the TS width increases and the lookup table size grows.
  • TCAM ternary content addressable memory
  • the network switch may also include a table 114 combining DIP addresses and TS ranges, and a search engine operable to search the table 114 for a new DIP address 115 for each packet based on its TS range ID 113 .
  • the DIP addresses and TS ranges in the table may also be organized in a trie data structure. Based on the TS range ID, the new DIP address, the channel ID of the packet, the network switch 110 can forward the packet to the intended new DIP address which corresponds to the gateway 151 coupled to the device Destination 1 .
  • TS ranges as determined according to the present disclosure can be used alone, or in conjunction with any other information related to the packet, for any type of operation or application in a network switch that is well known in the art.
  • the determined packet TS ranges can be used for channel switching, network performance and monitoring, accurate delay measurement, color-based delay and loss measurement, network updates, load balancing, e.g., in an Equal-Cost Multipath (ECMP) scheme.
  • ECMP Equal-Cost Multipath
  • process of using a trie data structure to determine a matching TS range for a packet can be implemented in any type of network node without departing from the scope of the present disclosure, e.g., routers, gateways, TV set-top boxes, and SDN controllers.
  • FIG. 2 illustrates the configuration of a TS range trie 200 in accordance with an embodiment of the present disclosure.
  • the trie 200 is composed of nodes (e.g., 201 - 208 ) and paths linking the nodes.
  • Each node is assigned with a TS prefix entry, which is a segment of a TS, e.g., IPv4 or IPv6 TS prefixes.
  • TS prefix entry which is a segment of a TS, e.g., IPv4 or IPv6 TS prefixes.
  • all the descendent nodes of a specific node share the same prefix with the node.
  • Each node is also associated with a TS range with defined starting time and ending time or a TS range ID, represented as R 1 , R 2 , . . . , Rn.
  • the trie 200 is configured as a bitwise trie capable of storing 2 32 entries of TS prefix values for lookup, leading to 2 32 leaf nodes.
  • the trie has a stride of 32.
  • Each TS range corresponds to a valid leaf node.
  • Each node is associated with two links designated with 1-bit digital values, e.g., “1” and “0” respectively.
  • the root node may represent the most significant bit of the TS.
  • the TS range search engine uses a packet TS as a key and traverses the trie 200 to locate the node representing a value that matches or most specifically matches the packet TS.
  • the key can be represented in the trie as a path from the root node to selected internal nodes until the matching leaf node is reached.
  • the TS range associated with the matching node is then output from the search engine.
  • the trie data structure 200 is merely exemplary and various other trie data structures can be used to determine TS ranges for packets without departing from the scope of the present disclosure.
  • the TS range trie can be a compressing trie with merged common branches, or a combination trie structure including sub-tries which may be organized in a hierarchy.
  • the present disclosure is not limited by the size, the granularity, the stride, or the number of predetermined TS ranges of a TS range trie; nor limited to any specific implementation of the table representation of a TS range trie.
  • the particular trie structure and characteristics may be application-specific and implementation-specific.
  • the TS range trie table can be implemented in any suitable manner and using hardware, software or a combination thereof.
  • the TS range trie can be a memory resident data structure.
  • a TS range trie is implemented as a multi-bit trie which has a degree of nodes being more than 2 and can provide accelerated lookup search as opposed to a bitwise trie.
  • the trie may be implemented using a Longest Prefix Match (LPM) table associated with an LPM search engine. If the search engine traverses the TS range trie and discovers more than one matching table entries, the most specific of the matching table entries, e.g, the one with the longest prefix, is selected as the winner.
  • LPM Longest Prefix Match
  • FIG. 3 illustrates the exemplary process and data flow of (1) determining a TS range for a received packet and (2) processing the packet based on the determined TS range in a network switch 300 in accordance with an embodiment of the present disclosure.
  • the network switch includes a trie generation engine 350 that can automatically generate a table representation of a TS range trie based on a user configuration.
  • the network switch may render a user interface to receive user specification for TS ranges, TS range granularity, stride, and various other metrics that are well known in the art.
  • the trie data structure is represented by an LPM table 305 .
  • the TS range look up engine is an LPM engine.
  • the trie generation engine 350 may also be capable of generating table representations of other tries used in the network switch 300 based on user configurations, such as a trie programmed for looking up new DIP addresses for the packets based on their respective TS ranges.
  • a parser 310 operates to extract the TS 302 and DIP address 303 from the packet.
  • the TS 302 is supplied to the TS range LPM engine 320 as a search key to search through the TS range trie table 305 .
  • the TS range LPM engine 320 performs the search and outputs the resultant TS range ID 306 .
  • the TS range ID 306 and the DIP address 303 extracted from the packet are supplied to the destination LPM engine 330 configured to search through a DIP address LPM table.
  • the destination LPM engine 330 performs the search and outputs a new DIP address 307 and/or an egress port.
  • the packet 301 is supplied to a processing pipeline 340 for further processing based on the TS range ID 306 and the new DIP address 307 .
  • the processing pipeline 340 may include various function modules and application programs that are well known in the art.
  • the pipeline 340 can modify the packet with the new DIP address, assign an egress port of the network switch for the packet, perform Network Address Translation (NAT) for the network packet, multicast the packet, redirect the packet to a multicast device, drop the packet, or evaluate network performance.
  • NAT Network Address Translation
  • FIG. 4 illustrates the configuration of an exemplary network switch 400 in accordance with an embodiment of the present disclosure.
  • the network switch 400 includes ingress ports 401 for received packets and egress ports for transmitting the packets over a communication network.
  • the network switch also includes memory 410 , a processor 420 , a TS range LPM engine 430 , a destination LPM engine 440 .
  • the memory 140 stores a TS range trie table 411 representing a TS range trie, a destination trie table 412 representing a DIP address trie, and a parser 417 operable to parse a packet to extract the TS and DIP address contained therein, as described in greater detail above.
  • the memory may also include various other lookup tables and search engines, such as a Network Address Translation (NAT) table, an IP host and LPM table, Virtual Network Interface (VIF) table, a Multicast Distribution Tree (MDT) table, egress Access Control List (ACL) tables, and Forwarding Database (FDB) tables, etc.
  • NAT Network Address Translation
  • VIP Virtual Network Interface
  • MDT Multicast Distribution Tree
  • ACL egress Access Control List
  • FDB Forwarding Database
  • SRAM Static Random Access Memory
  • TCAM Ternary Content-Addressable Memory
  • a trie generator 414 can receive user input and generate the TS range trie table 411 and the destination tri table 412 .
  • the trie generator 414 includes an optimization module 415 that can optimize space usage and other aspects of a trie structure.
  • the trie generator 414 can be implemented in any suitable manner that is well known in the art.
  • the TS range LPM engine 420 and the destination LPM engine 440 may be implemented using hardware primitives and using optimized Static Random Access Memory (SRAM) having deterministic lookup latency.
  • the LPM engines 420 and 440 may be implemented in software logic.
  • the LPM engines 420 and 440 are user-configurable, e.g., so-called flexible engines.
  • the memory 410 further includes a flexible engine configuration tool that can configure the LPM engines 420 and 440 based on user input, as well as other flexible engines in the network switch 400 .
  • the memory 410 stores instructions, executable by the processor 420 , that implement a user interface 418 operable to receive user input, e.g., for the trie generator 414 , the flexible engine 416 , and the application programs 419 in the network switch 400 .
  • the network switch 400 may include a wide range of other components and functional modules that are well known in the art, such as a scheduler, a traffic manager, packet buffers, a multicast engine, a Network Address Translation (NAT) module, and a rewrite engine.
  • NAT Network Address Translation
  • FIG. 5 is a flow chart depicting an exemplary process 500 of determining a TS range for a packet and processing the packet based on the identified TS range in accordance with an embodiment of the present disclosure.
  • Process 500 may be performed by a network switch as illustrated in FIG. 4 or by any other suitable network node or network device components.
  • a packet transmitted from a communication link is received or otherwise accessed.
  • the protocol format of the packet is identified, for example as a Real-Time Transport Protocol (RTP) packet. According to the identified format, the packet is parsed to extract the TS contained therein.
  • the TS may have been attached to the packet when the packet is generated in a source device as shown in FIG. 1 .
  • RTP Real-Time Transport Protocol
  • the TS may have been attached to the packet when the packet is generated in a source device as shown in FIG. 1 .
  • the present disclosure is not limited thereto.
  • a table representation of a TS range trie is traversed to look up a predetermined time range encompassing the packet TS, where the extracted packet TS is used as the search key.
  • the table is implemented as an LPM table
  • the lookup process is executed according to an LPM process.
  • a matching TS range is output and associated with the packet.
  • a destination lookup table including predetermined TS ranges and DIP addresses is traversed for determining a new DIP address for the packet based on its TS range as well as other information related to the packet. As a result, a new DIP address for the next hop, along with an egress port, is then output.
  • the packet is processed based on the new DIP address and the TS range and according to a variety of processing logic and application programs, such as channel switching, network performance and monitoring, accurate delay measurement, color-based delay and loss measurement, network updates, and load balancing, e.g., Equal-Cost Multipath (ECMP) scheme.
  • processing logic and application programs such as channel switching, network performance and monitoring, accurate delay measurement, color-based delay and loss measurement, network updates, and load balancing, e.g., Equal-Cost Multipath (ECMP) scheme.
  • ECMP Equal-Cost Multipath
  • FIG. 6 is a flow chart depicting an exemplary process 600 of automatically generating or updating a TS range trie table based on user input in accordance with an embodiment of the present disclosure.
  • Process 600 may be performed by a trie generator 414 as shown in FIG. 4 or any other suitable component in a network device.
  • a user configuration is received through a user interface which is configured to receive user specified values for TS ranges, TS range granularity, stride, and various other applicable metrics.
  • a set of predetermined TS ranges are automatically generated based on the user configuration, e.g., based on the granularity, a start time, an end time, the packet format.
  • an LPM table representation of a TS range trie is populated based on the user configuration and the predetermined TS ranges, as described in greater detail with reference to FIG. 2 .
  • TCAM Ternary Content Addressable Memory
  • a hash table needs to store 2 32 entries of timestamp values, for 32-bit timestamps.
  • both memory capacity and a search time of timestamp values are decreased significantly.
  • embodiments may have higher efficiency and increased scalability.
  • existing network switches are able to quickly adjust to new protocols and behaviors as desired in custom network applications.

Abstract

System and method of network packet switching using a table representation of a trie data structure to identify a timestamp (TS) range (or time range) for a received packet based on the packet timestamp (TS). The trie data structure is programmed with a plurality of predetermined time ranges. Each node in the trie data structure corresponds to a TS prefix and is associated with a corresponding predetermined time range. A search engine in the network switch can use the packet TS as a key to traverse the trie data structure and thereby matching the packet TS to a predetermined time range according to a Longest Prefix Match (LPM) process. Provided with the TS ranges of the incoming packets, various applications and logic engines in the network switch can accordingly process the packets, such as determining a new destination IP address and performing channel switch accordingly.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • This application claims benefit and priority of the U.S. Provisional Application No. 62/516,577, filed on Jun. 7, 2017, entitled “TIMESTAMP-BASED PACKET SWITCHING USING A TRIE DATA STRUCTURE,” the content of which is herein incorporated by reference in entirety for all purposes.
  • TECHNICAL FIELD
  • Embodiments of the present invention are related to the field of communication network systems, and in particular, to packet switching mechanisms in communication network systems.
  • BACKGROUND
  • In computer networking, network nodes, such as switches and routers, are typically used to perform packet switching to transmit, receive, process and forward data packets, e.g., between devices or between networks. As data traffic traverses the network nodes, the data packets are received, buffered, queued, and transmitted, resulting in variable latency and throughput depending on many factors including the link capacity and the traffic load on the network. The ever increasing demands of Internet traffic require equipment suppliers to develop faster and more efficient packet switching techniques for managing traffic.
  • Packet switching is typically performed based on the information contained in the packet headers and according to a combination of various switch management policies and criteria. The Real-time Transport Protocol (RTP) is a network protocol for delivering audio and video data over Internet Protocol (IP) networks and is used extensively in communication and entertainment systems that involve media streaming. An RTP packet usually includes a 32-bit timestamp which specifies the relative time that the packet is generated. Timestamps in the packets may provide important time information for some packet processing operations, e.g., between end hosts as sender and receivers of video data.
  • Some packet processing applications can be based on time ranges, where packet timestamps are mapped to prescribed time ranges which are used as time information input.
  • SUMMARY OF THE INVENTION
  • Disclosed in embodiments herein are mechanisms for determining prescribed timestamp (TS) ranges for packets received at a network switch based on packet timestamps with high efficiency and scalability. Embodiments of the present disclosure therefore can better adjust to new protocols and behaviors within the networks.
  • Embodiments of the present disclosure use a trie data structure to search for a predetermined TS range for a network data packet, e.g., an IPv4 or IPv6 packet received at a network switch. The network switch includes a table representation of the trie configured with a set of predetermined TS ranges, and a TS range lookup engine configured to match a TS value with a predetermined TS range. The trie includes a hierarchy of nodes and paths linking the nodes, and in some embodiments may be a bitwise trie. Each node in the hierarchy corresponds to a TS prefix and is positioned at a level that matches the corresponding prefix length, and all the descendent nodes share the common TS prefix stored in the node. The node is also associated with one of the predetermined TS ranges. The network switch may further include a trie generation engine that can automatically generate the TS range trie, for example based on a user configuration and through a trie optimization process. In some embodiments, the TS range lookup engine may be implemented using hardware primitives and using optimized Static Random Access Memory (SRAM) having deterministic lookup latency.
  • During operation, upon receiving the packet, the network switch parses the packet to extract the packet TS. The lookup engine uses the packet TS as a search key to look up the table representation of the trie and thereby identifies a predetermined TS range that encompasses, and thus matches, the packet TS value. The lookup engine may include a Longest Prefix Match (LPM) engine to search for the node in the trie that has the longest TS prefix matching the packet TS. Thus, the TS range associated with the node is the most specific matching TS range to the packet TS.
  • The network switch may also include various other types of lookup engines or processing engines, e.g., configured in an engine pipeline which may be user configurable. Based on the TS range output from the TS range look up engine, various applications or logic engines can further process the packet, e.g., drop the packet, modify the packet with a new DIP address, forward the packet, analyze the packet, and other applicable processing actions.
  • Using a trie data structure to compress packet timestamps into TS ranges significantly reduces the memory capacity and memory bandwidth specifications for storing and accessing the TS values in a lookup table, and reduces the specified time to produce a search result of TS range. In addition, high scalability can be achieved in terms of search performance even as the TS width increases and the lookup table size grows.
  • This summary contains, by necessity, simplifications, generalizations and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Embodiments of the present invention will be better understood from a reading of the following detailed description, taken in conjunction with the accompanying figures, in which like reference characters designate like elements.
  • FIG. 1 illustrates a network system utilizing a network switch to perform channel switching (or packet switching) based on packet TS ranges identified by traversing a TS range trie in accordance with an embodiment of the present disclosure.
  • FIG. 2 illustrates the configuration of an exemplary TS range trie in accordance with an embodiment of the present disclosure.
  • FIG. 3 illustrates an exemplary process and data flow of determining a TS range for a received packet and processing the packet based on the determined TS range in a network switch in accordance with an embodiment of the present disclosure.
  • FIG. 4 illustrates the configuration of an exemplary network switch in accordance with an embodiment of the present disclosure.
  • FIG. 5 is a flow chart depicting an exemplary process of determining a TS range for a packet and processing the packet based on the identified TS range in accordance with an embodiment of the present disclosure.
  • FIG. 6 is a flow chart depicting an exemplary process of automatically generating or updating a TS range trie table based on user input in accordance with an embodiment of the present disclosure
  • DETAILED DESCRIPTION
  • Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of embodiments of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be recognized by one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the embodiments of the present invention. The drawings showing embodiments of the invention are semi-diagrammatic and not to scale and, particularly, some of the dimensions are for the clarity of presentation and are shown exaggerated in the drawing Figures. Similarly, although the views in the drawings for the ease of description generally show similar orientations, this depiction in the Figures is arbitrary for the most part. Generally, the invention can be operated in any orientation.
  • Notation and Nomenclature:
  • It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “processing” or “accessing” or “executing” or “storing” “traversing” “searching” “transmitting” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories and other computer readable media into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or client devices. When a component appears in several embodiments, the use of the same reference numeral signifies that the component is the same component as illustrated in the original embodiment.
  • Timestamp-based Packet Switching using a Trie Data Structure
  • Overall, embodiments of the present disclosure provide a network switch capable of searching through a table representation of a trie data structure to identify a timestamp (TS) range (or a time range) for a received data packet based on a packet TS value. The trie data structure is programmed with a plurality of predetermined time ranges. Each node in the trie stores a TS prefix and is positioned at a level that matches the corresponding prefix length, and all (or many, in certain embodiments) the descendent nodes share the same TS prefix stored in the node. Each node may be assigned with one of the predetermined TS ranges. A search engine in the network switch can use the packet TS as a key to traverse the trie data structure and thereby map the packet TS to a predetermined time range according to a Longest Prefix Match (LPM) process. Provided with the TS ranges of the incoming packets, various applications and logic engines in the network switch can accordingly make decisions for processing the packets.
  • FIG. 1 illustrates a network system utilizing a network switch 110 to perform channel switching (or packet switching) based on packet TS ranges identified by traversing a TS range trie in accordance with an embodiment of the present disclosure. The network switch 110 is communicatively coupled to multiple source devices that generate streams of packets, such as Real-time Transport Protocol (RTP) packets carrying audio and video data, such as Source 1 121, Source 2, 122 and Source N 123. However, the present disclosure is not limited to any specific communication protocol, packet format or TS format. The data packets may be any packet format, including IPv4 packets, or IPv6 packets.
  • For instance, the source devices 121-123 may be video cameras, media players, computers, and other electronic equipment. Data packets from the source devices 121-123 are delivered to different ingress ports of the network switch 110 through a communication network, e.g., Ingress ports A, B, and X. The communication network used in the network system can be a local area network (LAN), a wide area network (WAN), a Wireless network, Wi-Fi, a Software-Defined Network (SDN), and any other applicable network.
  • The network switch 110 is also communicatively coupled to multiple destination devices, such as Destination 1, 131, Destination 2, 132 through Destination N, 133. For example, a destination device may be a monitor terminal for receiving and playing back the data streams generated from the source devices 121-123. As another example, a destination device may be a multicast or broadcast device that can send received data packets to selected devices or to all of its downstream devices.
  • In this example, the network switch 110 is configured with an application that alternately reroutes the data streams to a single destination device Destination 1 through an egress port Y according to a channel switching schedule. For each specific time range, the data stream from a particular channel is rerouted to Destination 1, 131. The other data streams may be dropped at the switch 110.
  • In this embodiment, the source devices 121-123 may be coupled to a gateway 141-143 providing Serial Digital Interface (SDI)-to-Internet Protocol (IP) transition. The gateway assigns a destination IP (DIP) address for the data packets from the associated source device, e.g., DIP1 for data packets from Source 1, and DIP2 for data packets from Source 2. However, these DIP addresses are different from the intended device Destination 1 131.
  • The network switch 110 includes a table representation of a TS range trie 112 and a TS range search engine (or lookup engine) (not explicitly shown). Upon a data packet being received by the network switch 110, the packet TS is extracted and supplied to the search engine as a search key. The search engine traverses the table representation of the TS range trie 112 to identify a node with a TS prefix that most closely matches the packet TS, as described in greater detail below. The TS range or TS range ID corresponding to the identified node is then output from the search engine.
  • Based on the respective TS ranges of the data packets and associated channel IDs or source device IDs, the network switch 110 may selectively drop some packets and reroute the rest through the egress port Y, e.g., by using a packet processing component 116. In the case that the network switch is disposed at the beginning of a network path, this approach offers the benefit of dropping duplicate or unnecessary streams at the beginning of the network path instead of at the end-host.
  • Compared with another approach of determining packet TS ranges by using a direct lookup approach, using a trie data structure to search for matching TS ranges advantageously and significantly reduces the memory capacity and memory bandwidth specified for adequately storing and accessing the TS values in a lookup table. In addition, embodiments may also reduce the time specified to produce a search result. Matches may be obtained in a fixed and deterministic latency, which is typical in a ternary content addressable memory (TCAM)-based search engine. Further, high scalability can be achieved in term of search even performance as the TS width increases and the lookup table size grows.
  • The network switch may also include a table 114 combining DIP addresses and TS ranges, and a search engine operable to search the table 114 for a new DIP address 115 for each packet based on its TS range ID 113. In some embodiments, the DIP addresses and TS ranges in the table may also be organized in a trie data structure. Based on the TS range ID, the new DIP address, the channel ID of the packet, the network switch 110 can forward the packet to the intended new DIP address which corresponds to the gateway 151 coupled to the device Destination 1.
  • It will be appreciated that TS ranges as determined according to the present disclosure can be used alone, or in conjunction with any other information related to the packet, for any type of operation or application in a network switch that is well known in the art. For example, the determined packet TS ranges can be used for channel switching, network performance and monitoring, accurate delay measurement, color-based delay and loss measurement, network updates, load balancing, e.g., in an Equal-Cost Multipath (ECMP) scheme.
  • Further, the process of using a trie data structure to determine a matching TS range for a packet can be implemented in any type of network node without departing from the scope of the present disclosure, e.g., routers, gateways, TV set-top boxes, and SDN controllers.
  • FIG. 2 illustrates the configuration of a TS range trie 200 in accordance with an embodiment of the present disclosure. The trie 200 is composed of nodes (e.g., 201-208) and paths linking the nodes. Each node is assigned with a TS prefix entry, which is a segment of a TS, e.g., IPv4 or IPv6 TS prefixes. In accordance with this data structure, all the descendent nodes of a specific node share the same prefix with the node. Each node is also associated with a TS range with defined starting time and ending time or a TS range ID, represented as R1, R2, . . . , Rn.
  • In this example, the trie 200 is configured as a bitwise trie capable of storing 232 entries of TS prefix values for lookup, leading to 232 leaf nodes. Thus, the trie has a stride of 32. Each TS range corresponds to a valid leaf node. Each node is associated with two links designated with 1-bit digital values, e.g., “1” and “0” respectively. The root node may represent the most significant bit of the TS.
  • During operation, the TS range search engine uses a packet TS as a key and traverses the trie 200 to locate the node representing a value that matches or most specifically matches the packet TS. The key can be represented in the trie as a path from the root node to selected internal nodes until the matching leaf node is reached. The TS range associated with the matching node is then output from the search engine.
  • However, it will be appreciated that the trie data structure 200 is merely exemplary and various other trie data structures can be used to determine TS ranges for packets without departing from the scope of the present disclosure. For example, the TS range trie can be a compressing trie with merged common branches, or a combination trie structure including sub-tries which may be organized in a hierarchy. Further, the present disclosure is not limited by the size, the granularity, the stride, or the number of predetermined TS ranges of a TS range trie; nor limited to any specific implementation of the table representation of a TS range trie. The particular trie structure and characteristics may be application-specific and implementation-specific. The TS range trie table can be implemented in any suitable manner and using hardware, software or a combination thereof. For example, the TS range trie can be a memory resident data structure.
  • In some other embodiments, a TS range trie is implemented as a multi-bit trie which has a degree of nodes being more than 2 and can provide accelerated lookup search as opposed to a bitwise trie. The trie may be implemented using a Longest Prefix Match (LPM) table associated with an LPM search engine. If the search engine traverses the TS range trie and discovers more than one matching table entries, the most specific of the matching table entries, e.g, the one with the longest prefix, is selected as the winner.
  • FIG. 3 illustrates the exemplary process and data flow of (1) determining a TS range for a received packet and (2) processing the packet based on the determined TS range in a network switch 300 in accordance with an embodiment of the present disclosure. In this example, the network switch includes a trie generation engine 350 that can automatically generate a table representation of a TS range trie based on a user configuration. For example, the network switch may render a user interface to receive user specification for TS ranges, TS range granularity, stride, and various other metrics that are well known in the art.
  • In the illustrated embodiments, the trie data structure is represented by an LPM table 305. Correspondingly, the TS range look up engine is an LPM engine. However, it will be appreciated that the present disclosure is not limited thereto. Similarly, the trie generation engine 350 may also be capable of generating table representations of other tries used in the network switch 300 based on user configurations, such as a trie programmed for looking up new DIP addresses for the packets based on their respective TS ranges.
  • Once a packet 301 is received at the network switch, a parser 310 operates to extract the TS 302 and DIP address 303 from the packet. The TS 302 is supplied to the TS range LPM engine 320 as a search key to search through the TS range trie table 305. The TS range LPM engine 320 performs the search and outputs the resultant TS range ID 306.
  • The TS range ID 306 and the DIP address 303 extracted from the packet are supplied to the destination LPM engine 330 configured to search through a DIP address LPM table. The destination LPM engine 330 performs the search and outputs a new DIP address 307 and/or an egress port.
  • The packet 301 is supplied to a processing pipeline 340 for further processing based on the TS range ID 306 and the new DIP address 307. The processing pipeline 340 may include various function modules and application programs that are well known in the art. The pipeline 340 can modify the packet with the new DIP address, assign an egress port of the network switch for the packet, perform Network Address Translation (NAT) for the network packet, multicast the packet, redirect the packet to a multicast device, drop the packet, or evaluate network performance.
  • FIG. 4 illustrates the configuration of an exemplary network switch 400 in accordance with an embodiment of the present disclosure. The network switch 400 includes ingress ports 401 for received packets and egress ports for transmitting the packets over a communication network. The network switch also includes memory 410, a processor 420, a TS range LPM engine 430, a destination LPM engine 440. The memory 140 stores a TS range trie table 411 representing a TS range trie, a destination trie table 412 representing a DIP address trie, and a parser 417 operable to parse a packet to extract the TS and DIP address contained therein, as described in greater detail above. The memory may also include various other lookup tables and search engines, such as a Network Address Translation (NAT) table, an IP host and LPM table, Virtual Network Interface (VIF) table, a Multicast Distribution Tree (MDT) table, egress Access Control List (ACL) tables, and Forwarding Database (FDB) tables, etc. Some or all of the tables may be stored in Static Random Access Memory (SRAM) and Ternary Content-Addressable Memory (TCAM). However, any other memory type can also be used.
  • A trie generator 414 can receive user input and generate the TS range trie table 411 and the destination tri table 412. The trie generator 414 includes an optimization module 415 that can optimize space usage and other aspects of a trie structure. The trie generator 414 can be implemented in any suitable manner that is well known in the art.
  • The TS range LPM engine 420 and the destination LPM engine 440 may be implemented using hardware primitives and using optimized Static Random Access Memory (SRAM) having deterministic lookup latency. Alternatively, the LPM engines 420 and 440 may be implemented in software logic. In some embodiments, the LPM engines 420 and 440 are user-configurable, e.g., so-called flexible engines. The memory 410 further includes a flexible engine configuration tool that can configure the LPM engines 420 and 440 based on user input, as well as other flexible engines in the network switch 400.
  • Further, the memory 410 stores instructions, executable by the processor 420, that implement a user interface 418 operable to receive user input, e.g., for the trie generator 414, the flexible engine 416, and the application programs 419 in the network switch 400. It will be appreciated that the network switch 400 may include a wide range of other components and functional modules that are well known in the art, such as a scheduler, a traffic manager, packet buffers, a multicast engine, a Network Address Translation (NAT) module, and a rewrite engine.
  • FIG. 5 is a flow chart depicting an exemplary process 500 of determining a TS range for a packet and processing the packet based on the identified TS range in accordance with an embodiment of the present disclosure. Process 500 may be performed by a network switch as illustrated in FIG. 4 or by any other suitable network node or network device components. At 501, a packet transmitted from a communication link is received or otherwise accessed. At 502, the protocol format of the packet is identified, for example as a Real-Time Transport Protocol (RTP) packet. According to the identified format, the packet is parsed to extract the TS contained therein. The TS may have been attached to the packet when the packet is generated in a source device as shown in FIG. 1. However, the present disclosure is not limited thereto.
  • At 503, a table representation of a TS range trie is traversed to look up a predetermined time range encompassing the packet TS, where the extracted packet TS is used as the search key. In the case that the table is implemented as an LPM table, the lookup process is executed according to an LPM process. As a result, a matching TS range is output and associated with the packet.
  • At 503, a destination lookup table including predetermined TS ranges and DIP addresses is traversed for determining a new DIP address for the packet based on its TS range as well as other information related to the packet. As a result, a new DIP address for the next hop, along with an egress port, is then output.
  • At 504, the packet is processed based on the new DIP address and the TS range and according to a variety of processing logic and application programs, such as channel switching, network performance and monitoring, accurate delay measurement, color-based delay and loss measurement, network updates, and load balancing, e.g., Equal-Cost Multipath (ECMP) scheme.
  • FIG. 6 is a flow chart depicting an exemplary process 600 of automatically generating or updating a TS range trie table based on user input in accordance with an embodiment of the present disclosure. Process 600 may be performed by a trie generator 414 as shown in FIG. 4 or any other suitable component in a network device. At 601, a user configuration is received through a user interface which is configured to receive user specified values for TS ranges, TS range granularity, stride, and various other applicable metrics. At 602, a set of predetermined TS ranges are automatically generated based on the user configuration, e.g., based on the granularity, a start time, an end time, the packet format. At 603, an LPM table representation of a TS range trie is populated based on the user configuration and the predetermined TS ranges, as described in greater detail with reference to FIG. 2.
  • Other approaches, including using a hash table or Ternary Content Addressable Memory (TCAM) may use a hash table needs to store 232 entries of timestamp values, for 32-bit timestamps. However, in embodiments described herein, both memory capacity and a search time of timestamp values are decreased significantly. Thus, embodiments may have higher efficiency and increased scalability. Further, existing network switches are able to quickly adjust to new protocols and behaviors as desired in custom network applications.
  • Although certain embodiments and methods have been disclosed herein, it will be apparent from the foregoing disclosure to those skilled in the art that variations and modifications of such embodiments and methods may be made without departing from the spirit and scope of the invention. It is intended that the invention shall be limited only to the extent required by the appended claims and the rules and principles of applicable law. Any claimed embodiment of the invention does not necessarily include all of the objects or embodiments of the disclosure.

Claims (20)

What is claimed is:
1. A method of managing network traffic, said method comprising:
accessing a network packet that is received at an input interface of a network node of a communication network;
extracting a timestamp from said network packet; and
traversing a table representation of a trie data structure to search for a predetermined time range from a plurality of predetermined time ranges, wherein said predetermined time range encompasses said timestamp, and wherein further a respective node in said trie data structure corresponds to a timestamp prefix and is associated with a corresponding predetermined time range of said plurality of predetermined time ranges.
2. The method of claim 1, wherein said traversing comprises:
feeding said timestamp to a first lookup engine as a search key; and
using said first lookup engine to search through said table representation of said trie data structure and to select said predetermined time range according to a Longest Prefix Match (LPM) process.
3. The method of claim 1, wherein said extracting comprises:
identifying a protocol format of said network packet; and
parsing said network packet to derive said timestamp, and wherein said network packet comprises video data.
4. The method of claim 1 further comprising:
receiving a user configuration related to said plurality of predetermined time ranges; and
automatically generating said table representation of said trie data structure based on said user configuration and according to a trie structure optimization process, wherein said trie data structure comprises a bitwise trie data structure.
5. The method of claim 2 further comprising:
using a second lookup engine to search for a destination Internet Protocol (DIP) address for said network packet;
modifying said network packet by using said DIP address; and
processing said network packet based on said predetermined time range and said DIP address.
6. The method of claim 5, wherein processing comprises one or more of:
assigning an egress port of said network node for said network packet;
performing Network Address Translation (NAT) for said network packet;
multicasting said network packet;
dropping said network packet;
forwarding said network packet; and
redirecting said network packet.
7. A network switch device comprising:
an ingress port configured to receive a network packet comprising a timestamp;
a memory storing a table representation of a trie data structure comprising nodes and links, wherein a respective node in said trie data structure corresponds to a timestamp prefix and is associated with a corresponding predetermined time range of plurality of predetermined time ranges, wherein each predetermined time range is defined by a start time and end time;
a trie lookup engine configured to:
receive said timestamp; and
traverse said table representation of said trie data structure to identify a predetermined time range matching said timestamp from said plurality of predetermined time ranges; and an egress port configured to transmit said network packet over a communication link.
8. The network switch device of claim 7 further comprising a parser configured to:
identify a protocol format of said network packet;
parse said network packet; and
derive said timestamp from said network packet.
9. The network switch device of claim 7 further comprising:
a memory storing a table representation of destination Internet Protocol (DIP) addresses; and
an IP address lookup engine configured to search a DIP address for said network packet from said table representation of DIP addresses based on said predetermined time range.
10. The network switch device of claim 9, wherein said trie data structure comprises a bitwise trie data structure.
11. The network switch device of claim 7 further comprising a trie generation unit configured to:
receive a user configuration related to said plurality of predetermined time ranges; and
generate said table representation of said trie data structure based on said user configuration and according to a trie optimization process.
12. The network switch device of claim 7, wherein said trie lookup engine is a flexible engine that is user-programmable.
13. The network switch device of claim 7, wherein said trie lookup engine is configured to search through said table representation of said trie data structure and to identify said predetermined time range according to a Longest Prefix Match (LPM) process.
14. The network switch device of claim 9 further comprising logic configured to perform processing said network packet based on said predetermined time range and said destination IP address, wherein said processing of said network packet comprises one or more of:
modifying said network packet with said DIP address;
assigning an egress port of said network switch for said network packet;
performing Network Address Translation (NAT) for said network packet;
multicasting said network packet;
dropping said network packet;
forwarding said network packet; and
redirecting said network packet.
15. A system comprising:
a first interface configured to receive a network packet;
a network switch coupled to said first interface and configured to:
extract a timestamp from said network packet;
traverse a table representation of a trie data structure to search for a predetermined time range from a plurality of predetermined time ranges, wherein said predetermined time range encompasses said timestamp, and wherein further a respective node in said trie data structure corresponds to a timestamp prefix and is associated with a corresponding predetermined time range of said plurality of predetermined time ranges; and
process said network packet based on said predetermined time range; and
a second interface coupled to said network switch and configured to transmit said network packet over a communication link.
16. The system of claim 15, wherein said network switch comprises a first lookup engine configured to: use said timestamp as a search key to search through said table representation of said trie data structure; and select said predetermined time range according to a Longest Prefix Match (LPM) process.
17. The system of claim 15, wherein said network switch comprises a parser configured to:
identify a protocol format of said network packet; and
parse said network packet to derive said timestamp, wherein said network packet comprises video data.
18. The system of claim 15, wherein said network switch is further configured to:
receive a user configuration related to said plurality of predetermined time ranges; and
automatically generate said table representation of said trie data structure based on said user configuration and according to a trie optimization process, wherein said trie data structure comprises a bitwise trie data structure.
19. The system of claim 15, wherein said network switch further comprises a second lookup engine configured to search a destination Internet Protocol (DIP) address for said network packet based on said predetermined time range.
20. The system of claim 19, wherein said network switch is configured to perform processing of said network packet further based on said DIP address and said predetermined time range, wherein said processing said network packet comprises one or more of:
modifying said network packet;
assigning an egress port of said network switch for said network packet;
performing Network Address Translation (NAT) for said network packet;
multicasting said network packet;
dropping said network packet;
forwarding said network packet; and
redirecting said network packet.
US15/894,732 2017-06-07 2018-02-12 Timestamp-based packet switching using a trie data structure Active US10855621B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/894,732 US10855621B2 (en) 2017-06-07 2018-02-12 Timestamp-based packet switching using a trie data structure
US17/084,323 US11502974B2 (en) 2017-06-07 2020-10-29 Timestamp-based packet switching using a trie data structure

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762516577P 2017-06-07 2017-06-07
US15/894,732 US10855621B2 (en) 2017-06-07 2018-02-12 Timestamp-based packet switching using a trie data structure

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/084,323 Continuation US11502974B2 (en) 2017-06-07 2020-10-29 Timestamp-based packet switching using a trie data structure

Publications (2)

Publication Number Publication Date
US20180359195A1 true US20180359195A1 (en) 2018-12-13
US10855621B2 US10855621B2 (en) 2020-12-01

Family

ID=64562290

Family Applications (2)

Application Number Title Priority Date Filing Date
US15/894,732 Active US10855621B2 (en) 2017-06-07 2018-02-12 Timestamp-based packet switching using a trie data structure
US17/084,323 Active US11502974B2 (en) 2017-06-07 2020-10-29 Timestamp-based packet switching using a trie data structure

Family Applications After (1)

Application Number Title Priority Date Filing Date
US17/084,323 Active US11502974B2 (en) 2017-06-07 2020-10-29 Timestamp-based packet switching using a trie data structure

Country Status (1)

Country Link
US (2) US10855621B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11088959B1 (en) 2020-08-07 2021-08-10 Hyannis Port Research, Inc. Highly deterministic latency in a distributed system
US11228529B1 (en) 2020-08-07 2022-01-18 Hyannis Port Research, Inc. Local and global quality of service shaper on ingress in a distributed system
WO2022031878A1 (en) 2020-08-07 2022-02-10 Hyannis Port Research, Inc. Highly deterministic latency in a distributed system
US11303389B2 (en) 2020-08-07 2022-04-12 Hyannis Port Research, Inc. Systems and methods of low latency data communication for physical link layer reliability
US11315183B2 (en) 2020-08-07 2022-04-26 Hyannis Port Research, Inc. Electronic trading system and method based on point-to-point mesh architecture
US11328357B2 (en) 2020-08-07 2022-05-10 Hyannis Port Research, Inc. Sequencer bypass with transactional preprocessing in distributed system
US11483087B2 (en) 2020-08-07 2022-10-25 Hyannis Port Research, Inc. Systems and methods for clock synchronization using special physical layer clock sync symbols
US11683199B2 (en) 2020-08-07 2023-06-20 Hyannis Port Research, Inc. Distributed system with fault tolerance and self-maintenance

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2853187B1 (en) * 2003-03-28 2006-01-13 At & T Corp SYSTEM FOR ALL NETWORK APPLICATION TO OPERATE TRANSPARENTLY THROUGH A NETWORK ADDRESS TRANSLATION DEVICE
WO2005009002A1 (en) * 2003-07-11 2005-01-27 Computer Associates Think, Inc. System and method for securing networks
US7796627B2 (en) 2004-08-12 2010-09-14 Broadcom Corporation Apparatus and system for coupling and decoupling initiator devices to a network using an arbitrated loop without disrupting the network
GB2495106B (en) * 2011-09-28 2020-09-09 Metaswitch Networks Ltd Searching and storing data in a database
US8874837B2 (en) * 2011-11-08 2014-10-28 Xilinx, Inc. Embedded memory and dedicated processor structure within an integrated circuit
US9705775B2 (en) * 2014-11-20 2017-07-11 Telefonaktiebolaget Lm Ericsson (Publ) Passive performance measurement for inline service chaining

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11088959B1 (en) 2020-08-07 2021-08-10 Hyannis Port Research, Inc. Highly deterministic latency in a distributed system
US11228529B1 (en) 2020-08-07 2022-01-18 Hyannis Port Research, Inc. Local and global quality of service shaper on ingress in a distributed system
WO2022031878A1 (en) 2020-08-07 2022-02-10 Hyannis Port Research, Inc. Highly deterministic latency in a distributed system
US11303389B2 (en) 2020-08-07 2022-04-12 Hyannis Port Research, Inc. Systems and methods of low latency data communication for physical link layer reliability
US11315183B2 (en) 2020-08-07 2022-04-26 Hyannis Port Research, Inc. Electronic trading system and method based on point-to-point mesh architecture
US11328357B2 (en) 2020-08-07 2022-05-10 Hyannis Port Research, Inc. Sequencer bypass with transactional preprocessing in distributed system
US11483087B2 (en) 2020-08-07 2022-10-25 Hyannis Port Research, Inc. Systems and methods for clock synchronization using special physical layer clock sync symbols
US11683199B2 (en) 2020-08-07 2023-06-20 Hyannis Port Research, Inc. Distributed system with fault tolerance and self-maintenance
US11729107B2 (en) 2020-08-07 2023-08-15 Hyannis Port Research, Inc. Highly deterministic latency in a distributed system

Also Published As

Publication number Publication date
US11502974B2 (en) 2022-11-15
US10855621B2 (en) 2020-12-01
US20210051114A1 (en) 2021-02-18

Similar Documents

Publication Publication Date Title
US11502974B2 (en) Timestamp-based packet switching using a trie data structure
US9825860B2 (en) Flow-driven forwarding architecture for information centric networks
US9749226B2 (en) Flow-based network switching system
Li et al. MaPIT: an enhanced pending interest table for NDN with mapping bloom filter
Tsilopoulos et al. Reducing forwarding state in content-centric networks with semi-stateless forwarding
US7881244B2 (en) Scalable IP-services enabled multicast forwarding with efficient resource utilization
US10708272B1 (en) Optimized hash-based ACL lookup offload
US10244537B2 (en) Communication system, access control apparatus, switch, network control method, and program
US10348646B2 (en) Two-stage port-channel resolution in a multistage fabric switch
CN104821890A (en) Realization method for OpenFlow multi-level flow tables based on ordinary switch chip
Braun et al. Wildcard compression of inter-domain routing tables for openflow-based software-defined networking
US8798066B2 (en) Method for IPv6 longest prefix match
US8848707B2 (en) Method for IP longest prefix match using prefix length sorting
US20170171039A1 (en) Network flow information collection method and apparatus
US20120287782A1 (en) Programmable and high performance switch for data center networks
US11327974B2 (en) Field variability based TCAM splitting
US20180167319A1 (en) Application identification cache
US7864776B2 (en) Method and equipment for making a routing decision dependent on a quality-of-service class
Luo et al. Name label switching paradigm for named data networking
Ooka et al. Design of a high-speed content-centric-networking router using content addressable memory
KR20130093707A (en) Packet classification apparatus and method for classfying packet thereof
US9210103B1 (en) Policy control list keys for network devices
US10541935B2 (en) Network processors
CN106453144B (en) Message processing method and device in software defined network
Reviriego et al. Energy efficient exact matching for flow identification with cuckoo affinity hashing

Legal Events

Date Code Title Description
AS Assignment

Owner name: CAVIUM, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHAH, ZUBIN HEMANTKUMAR;CHEN, SHIH-JEFF;SURESH, RAVINDRAN;AND OTHERS;REEL/FRAME:044905/0221

Effective date: 20180208

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

AS Assignment

Owner name: CAVIUM, LLC, CALIFORNIA

Free format text: CONVERSION;ASSIGNOR:CAVIUM, INC.;REEL/FRAME:047202/0690

Effective date: 20180921

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED

AS Assignment

Owner name: CAVIUM INTERNATIONAL, CAYMAN ISLANDS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM, LLC;REEL/FRAME:051948/0807

Effective date: 20191231

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

AS Assignment

Owner name: MARVELL ASIA PTE, LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM INTERNATIONAL;REEL/FRAME:053179/0320

Effective date: 20191231

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STCF Information on status: patent grant

Free format text: PATENTED CASE