US6192051B1 - Network router search engine using compressed tree forwarding table - Google Patents

Network router search engine using compressed tree forwarding table Download PDF

Info

Publication number
US6192051B1
US6192051B1 US09/259,064 US25906499A US6192051B1 US 6192051 B1 US6192051 B1 US 6192051B1 US 25906499 A US25906499 A US 25906499A US 6192051 B1 US6192051 B1 US 6192051B1
Authority
US
United States
Prior art keywords
level
address
pointers
tree
pointer
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.)
Expired - Lifetime
Application number
US09/259,064
Inventor
Michael E. Lipman
Russell L. Heyda
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.)
Juniper Networks Inc
Original Assignee
Redstone Communications Inc
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 Redstone Communications Inc filed Critical Redstone Communications Inc
Priority to US09/259,064 priority Critical patent/US6192051B1/en
Assigned to REDSTONE COMMUNICATIONS, INC. reassignment REDSTONE COMMUNICATIONS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEYDA, RUSSELL L., LIPMAN, MICHAEL E.
Priority to IL14479500A priority patent/IL144795A0/en
Priority to EP00915846.0A priority patent/EP1155537B1/en
Priority to CNB008043396A priority patent/CN1148917C/en
Priority to AU37050/00A priority patent/AU759929B2/en
Priority to PCT/US2000/004593 priority patent/WO2000051298A1/en
Priority to CA002363963A priority patent/CA2363963C/en
Publication of US6192051B1 publication Critical patent/US6192051B1/en
Application granted granted Critical
Assigned to JUNIPER NETWORKS, INC. reassignment JUNIPER NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: REDSTONE COMMUNICATIONS, INC.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/742Route cache; Operation thereof

Definitions

  • the present invention is related to the field of data networks, and more particularly to the routing of data packets from a source node to a destination node within a network.
  • IP Internet Protocol
  • Network routers maintain routing tables to carry out the routing function.
  • an address contained within the packet (for example the destination address) is used to retrieve an entry from the routing table that indicates the next hop, or next node, along a desired route to the destination node.
  • the router then forwards the packet to the indicated next hop node. The process is repeated at successive router nodes until the packet arrives at the desired destination node.
  • the routing tables in the routers are maintained according to any of a variety of distributed routing protocols.
  • OSPF Open Shortest Path First
  • the routers collect information about the activation and deactivation of network links among neighboring nodes, and the information is communicated among the routers according to the routing protocol. Routes are created, updated, and deleted as needed according to network conditions. All of the pertinent routing-related information is contained collectively within the routing tables maintained at the routers.
  • a routing table entry includes a 2-part mapping between an address such as a destination address and an associated next hop address. It is common for the destination address portion to include a subnet mask value indicating that some of the address bits are to be matched precisely and others need not be.
  • IP Internet Protocol
  • This entry uses the known convention of representing a 32-bit IP address as a string of four bytes (most significant to least significant) separated by decimal points, where the value of each byte is given as a decimal equivalent.
  • This entry indicates that any packet having a destination address whose 16 most significant bits are equal to 128.4 (1000000 0000100 binary), should be routed to the network node having IP address 100.0.0.0 (01100100 00000000 00000000 binary).
  • An example of a matching destination address is 128.4.10.9; an example of a non-matching address is 128.120.0.0.
  • the mapping from the set of all possible destination addresses to the set of all possible next hops can be represented as a binary tree, in which each bit of the destination address dictates which branch is taken at a corresponding level in the search for the next hop.
  • a tree of height n is required.
  • a fully populated tree has 2 n distinct leaves at the end of 2 n distinct search paths, where each leaf corresponds to a next hop value.
  • a tree representing a set of routing entries typically contains far fewer leaves. The number of leaves required is influenced by the number of entries in the routing table, and also the degree to which network addresses are aggregated.
  • the network address space is divided into a relatively large number of sub-spaces each of which is assigned a different route, more leaves are needed than when the network address space is divided into a smaller number of sub-spaces having distinct routes.
  • Most networks exhibit substantial address aggregation, so that even in large networks the mapping tree used for routing at a given node tends to be “sparse”, i.e. not very fully populated.
  • the routing entry given above corresponds to a single leaf at location 16 of the tree, and it covers the range of 64K addresses from 128.4.0.0 through 128.4.255.255.
  • next hop address The simplest way conceptually to look up a next hop address is to use a conventional random-access memory having a binary address input and a data storage location associated with each unique address value. A next hop value is stored at the storage location corresponding to each address. The next hop is looked up in the memory by simply retrieving the value stored at the memory location indicated by the address included in a received packet.
  • the next hop value used by the aggregation would be replicated at each aggregated address in the memory.
  • the entry 100.0.0.0 would appear at locations 128.4.0.0 through 128.4.255.255 of such a memory.
  • a common configuration for a contemporary router is a collection of line cards interconnected by a switching fabric. Each line card has one or more ports each attached to a corresponding physical network medium.
  • a forwarding engine on the line card determines which port the packet should be forwarded to, and then forwards the packet to the corresponding line card through the switch fabric.
  • the receiving line card then transmits the packet onto the appropriate network segment.
  • the forwarding engine may be implemented using a general-purpose microprocessor executing special-purpose forwarding software, or may alternatively be implemented using special-purpose hardware.
  • a software approach is favored when the speed of lookups is secondary to other considerations, such as ease of revision.
  • a hardware approach is favored when the speed of lookups is paramount, for example on line cards used with very high-speed networks.
  • a forwarding table is employed on the line cards to map the destination address of each received packet to the identity of the port to which the packet should be forwarded.
  • the forwarding table contains a subset of the information from the routing table.
  • the system controller updates the forwarding tables on the various line cards as changes to the routing table occur.
  • the use of distributed forwarding tables increases parallelism in the router. Also, if the forwarding tables are small enough they can be placed into relatively fast-access storage on the line cards, which further enhances performance.
  • the forwarding tables are cached copies of one or more sections of the routing table. This technique exploits address locality appearing in the network traffic. Most of the next hop lookups are done on the line card when the hit rate in the cache is high. However, there are circumstances in which the hit rate in the cache cannot be maintained at an adequately high level. If the cache is too small relative to the number of different addresses received by the line card over a given interval, the cache may begin to thrash. When thrashing occurs, entries are repeatedly swapped out of the cache prematurely, substantially decreasing the hit rate. Each lookup that misses in the cache incurs delay while the needed entry is fetched from the system controller. As a result, overall performance of the router is degraded.
  • routing entries that aggregate addresses having up to 16 of their most significant bits in common have corresponding entries in the level 1 tree, and require no space in either the level 2 or level 3 trees. Routing entries that aggregate addresses having between 17 and 24 of their most significant bits in common require space in both the level 1 and the level 2 trees.
  • the level 1 tree contains node entries that point to chunks in the level 2 tree that contain the corresponding leaves.
  • the chunks in the level 2 tree contain node entries that point to chunks in the level 3 tree that contain the leaf entries. The levels are searched in order as deep as necessary using the respective bits of the IP address to retrieve the desired next hop value.
  • the technique shown in the Degermark et al. paper achieves considerable storage efficiency, so that small but complete forwarding tables can be stored on each line card.
  • storage is used only to store the required leaf and node information; little or no storage is left empty as a result of tree sparseness.
  • a multi-level mapping structure within each level maps aggregated addresses to a single leaf or node entry used by all members of the aggregation.
  • the Degermark forwarding table would contain a single leaf, and each address in the range from 128.4.0.0 through 128.4.255.255 would be mapped to the location of the single leaf.
  • the technique shown in the Degermark et al. paper achieves considerable storage efficiency, it does so at the cost of complexity, notably in the multi-level mapping used at each level to extract the desired node or leaf based on the corresponding bits of the IP address. It would be desirable, however, for next hop lookups to be performed in a manner better suited to high-performance hardware implementation. Also, the Degermark et al. paper does not address performance issues that may arise from the manner of creating and maintaining the various data structures during dynamic network operation when routes are being added, deleted, or changed. A practical router must have an efficient means of re-generating the forwarding tables as necessary to keep up with changes in the routing topology as dictated by the routing protocol being followed.
  • network routing apparatus and associated methods and data structures are disclosed in which high route lookup rates are achieved for a large number of network data streams.
  • Complete forwarding tables are stored efficiently in memory on each line card, and are organized such that route lookups are performed simply, rapidly and efficiently.
  • a central routing table is organized in a manner that enables fast and efficient updating of the forwarding tables, so that the router can react quickly to changes in the network topology while maintaining high route lookup rates.
  • the disclosed network router apparatus employs a multi-level prefix tree forwarding table organized in a manner that enables fast and efficient lookups in hardware.
  • a first-level tree is directly addressed by a first field of a network address, so that a pointer can be retrieved using only a single memory lookup. Compression is achieved by providing for the storage of either dense or sparse trees at other levels. Dense trees are directly addressed, so that pointer lookup is done with a single memory reference. Sparse trees are used to store pointers using less redundancy than exhibited by the dense trees. The number of pointers in a sparse tree is on the order of the number of unique routing entries associated with the corresponding set of addresses.
  • a mapping table is used to map pointers from one level to trees at the next lower level, so that the number of memory references required for retrieving lower-level trees is minimized.
  • the routing apparatus maintains an uncompressed multi-level tree routing table in order to enhance the efficiency with which the forwarding table is re-created during operation.
  • the uncompressed tree employs pointers that point to either routing entries stored in a linked list for ease of insertion and removal, or to next-level trees directly without any intervening mapping structures.
  • the trees at each level are directly addressed, so that each pointer lookup is done in a single direct memory reference.
  • the forwarding table is generated in a straightforward manner by traversing the uncompressed tree and performing a regular set of operations on each entry during the traversal.
  • the levels of the forwarding table are generated in a recursive manner from the levels of the uncompressed routing table.
  • the routing apparatus also employs lookup logic that is tailored to perform fast lookups at high rates.
  • the routing apparatus supports what are referred to as “virtual” routers by providing for the storage and use of multiple forwarding tables on each line card and a protocol for selecting the appropriate forwarding table for a given lookup. These features enable the routing apparatus to support multiple virtual networks as a straightforward extension of the basic routing functionality, significantly enhancing the range of possible applications of the disclosed apparatus.
  • FIG. 1 is a block diagram of a network router device according to the principles of the present invention
  • FIG. 2 is a block diagram of a customer interface line card in the network router device of FIG. 1;
  • FIG. 3 is a block diagram of an interface line card for a core network in the router of FIG. 1;
  • FIG. 4 is a schematic diagram depicting how data received from a network is processed within the customer interface line card of FIG. 2;
  • FIG. 5 is a schematic diagram depicting how data received from a network is processed within the core network interface line card of FIG. 3;
  • FIG. 6 is a schematic diagram depicting how forwarding addresses are obtained based on the destination addresses appearing in packets received by the network router device of FIG. 1;
  • FIG. 7 is a schematic diagram of an uncompressed tree data structure representation of a routing table in a system controller in the network router device of FIG. 1;
  • FIG. 8 is a schematic diagram of a compressed tree data structure representation of a forwarding table in the line cards of FIGS. 2 and 3;
  • FIG. 9 is a block diagram of address resolution logic and an address resolution memory in the line cards of FIGS. 2 and 3;
  • FIG. 10 is a memory map of the address resolution memory of FIG. 9 showing how multiple compressed tree data structures like the compressed tree data structure of FIG. 8 are stored therein;
  • FIG. 11 is a schematic diagram showing the manner in which the compressed tree data structure of FIG. 8 is stored in address resolution memory and is accessed by the address resolution logic of FIG. 9;
  • FIGS. 12 through 14 are flow diagrams depicting how the compressed tree of FIG. 8 is generated from the uncompressed tree of FIG. 7;
  • FIG. 15 is a memory map of a portion of the address resolution memory of FIG. 9 showing the detailed arrangement of a portion of a single compressed tree data structure stored therein.
  • FIG. 1 shows a router 10 including a system controller card 12 , a number of DS3 cards 14 and an OC3 card 16 .
  • DS3 represents a multiplexed digital signal with a data rate of approximately 45 Mb/s, representing 28 multiplexed DS1 signals or 672 64-Kb/s DS0 signals.
  • DS3 and DS1 are also referred to respectively as “T3” and “T1”.
  • the acronym “OC3” represents a 155 Mb/s optical carrier signaling protocol.
  • the cards 14 and 16 interface to an interconnect bus 18 to enable the cards to exchange data.
  • the DS3 cards 14 are connected to DS3 network segments denoted as “customer segments” 20 in FIG. 1 .
  • Each card 14 is connected to three DS3 segments, the segments being labeled 0, 1 and 2 for each card 14 .
  • the OC3 card 16 is connected to an OC3 segment denoted as “core network segment” 22 .
  • the router 10 is intended for use at an intermediate hierarchical position in a data network. For example, the router 10 transfers packets between a large number of customers reachable via the customer segments 20 and a smaller number of high-traffic, medium-to-long haul data communication devices reachable via the core network segments 22 .
  • the device 10 operates primarily at the lowest 3 layers of the OSI model, which are in ascending order the physical, data link, and network layers.
  • IP Internet Protocol
  • the device 10 implements the Internet Protocol (IP) for routing datagrams among various source and destination network nodes (although IP does not follow the OSI model strictly).
  • IP Internet Protocol
  • the device 10 employs several protocols including Point-to-Point Protocol (PPP), Frame Relay, and Asynchronous Transfer Mode (ATM).
  • PPP Point-to-Point Protocol
  • ATM Asynchronous Transfer Mode
  • the device 10 also employs multiple protocols at the physical layer as described below.
  • each customer segment 20 employs the channelized T3 protocol, which operates at approximately 45 Mbps.
  • Channelized T3 signals include 28 DS1 channels, each of which operates at 1.544 Mbps, and each DS1 channel carries 24 “DS0” channels each operating at up to 64 Kbps. As described in greater detail below, these channels are assigned to higher-level “circuits” at the network layer where routing occurs.
  • the core network segment 22 employs 155 Mb/s OC3 optical signaling. The OC3 traffic is likewise assigned to higher-level “circuits” as described below.
  • the system controller 12 carries out a number of operations in support of the overall operation of the router 10 .
  • One operation performed by the system controller 12 is the management of the routing function at the network layer.
  • the system controller 12 maintains a large routing database, referred to as a routing table, which is used to enable the device 10 to make decisions regarding how packets received on a segment 20 or 22 are to be forwarded.
  • the routing table reflects the overall topology of the entire network as known to the router 10 .
  • the system controller 12 communicates with neighboring routers in the network to exchange topology-related information so that the routing tables are kept current despite changes in the network topology. Thus for example when a new node is configured on a network segment, that information is broadcast throughout the network to enable each router to update its routing table.
  • the device 10 uses the information in the routing table to make decisions regarding how to forward a packet.
  • the device 10 arranges the information in the routing table, and distributes the information among the cards 14 , 16 in such a manner that routing decisions take the form of lookups in the cards 14 and 16 .
  • the system controller 12 is not involved on a lookup-by-lookup basis, but rather continually updates and distributes routing information to enable each card 14 and 16 to perform lookups independently.
  • the lookups are done at a very high rate, so the device 10 efficiently supports a large number of customers having high data rate demands.
  • the system controller 12 determines when it is necessary to update the routing information on the cards 14 and 16 , and re-generates and broadcasts the information to the cards.
  • the information is broadcast in a manner that does not interfere with the lookup operations on the cards 14 and 16 .
  • FIG. 1 The configuration shown in FIG. 1 is intended to be representative. In alternative embodiments there may be different numbers of customer interface cards 14 and/or core interface cards 16 . Also, the cards may operate according to other protocols. In some embodiments the separate functional elements shown in FIG. 1 may be physically arranged in other manners, such as for example on a single circuit board.
  • FIG. 2 shows the structure of a DS3 card 14 .
  • a High-level Data Link Control (HDLC) controller 30 transmits and receives a DS3 data stream (such as DS3 stream 0 as shown) to and from a customer segment 20 as HDLC frames.
  • the HDLC controller 30 interfaces to packet assembly and disassembly logic 32 via a bus 34 .
  • the DS3 card 14 also contains a DS3 forwarding controller 36 , which along with forwarding controller memory 38 and bus transceivers 40 is attached to a bus 42 .
  • a bridge circuit 44 provides a communications path between devices on the bus 34 and devices on the bus 42 .
  • the foregoing devices are part of a logical interface unit 46 associated with one DS3 data stream, in this case stream 0 as indicated.
  • the card 14 contains three such units 46 to interface to the three DS3 customer network segments 20 of FIG. 1 .
  • the transceivers 40 within each interface unit 46 are connected to another bus 48 that provides communication to address resolution logic 50 , which in turn interfaces with address resolution memory 52 .
  • An interface controller 54 has associated interface controller memory 56 and communicates with the bus 48 via transceivers 58 .
  • FIG. 3 shows the structure of the OC3 card 16 .
  • Packet flow logic 60 transmits and receives the OC3 data stream to and from the core network segment 22 .
  • the OC3 data is buffered within a packet memory 62 .
  • the packet flow logic 60 interfaces with packet assembly and disassembly logic 64 tied to the interconnect bus 18 of FIG. 1 .
  • the packet flow logic 60 also interfaces with an OC3 forwarding controller 66 and associated forwarding controller memory 68 via a bus 70 .
  • Transceivers 72 are connected between the bus 70 and another bus 74 that provides communication to address resolution logic 76 , which in turn interfaces with address resolution memory 78 .
  • the address resolution logic 76 and address resolution memory 78 are structurally the same as their counterparts 50 and 52 in FIG. 2, but function somewhat differently as described below.
  • the OC3 card 16 also contains an interface controller 80 and associated interface controller memory 82 ; the interface controller 80 communicates with the bus 74 via transceivers 84
  • FIG. 4 illustrates the processing of network data traffic on the DS3 cards 14 . Processing is performed hierarchically, with protocol stacks being employed at the interfaces to the DS3 network segments 20 and at the interface to the internal interconnect bus 18 .
  • HDLC and DS3 logic 90 transmits and receives DS3 frames 92 .
  • the HDLC and DS3 logic 90 is part of the HDLC controller 30 of FIG. 2 .
  • HDLC and DS3 logic 90 converts received DS3 frames 92 to HDLC frames 94 , and also converts outgoing HDLC frames 94 to DS3 frames 92 for transmission on the DS3 segment 20 . As shown in FIG.
  • the DS3 frames 92 include multiple DS0 channels 96 .
  • the logic 90 is programmed by interface controller 54 to associate groups of DS0 channels 96 .
  • the logic 90 forms HDLC frames 94 from each group of associated channels 96 .
  • the logic 90 breaks HDLC frames 94 down into multiple DS0 channels for transmission on the DS3 segment 20 .
  • the HDLC and DS3 logic 90 also creates PPP frames 100 from received HDLC frames 94 , and converts outgoing PPP frames 100 to HDLC frames 94 for transmission on the DS3 segment 20 .
  • Each PPP frame 100 corresponds to a payload portion 102 of an HDLC frame 94 .
  • PPP logic 104 extracts IP frames or packets 106 from received PPP frames 100 , and provides the IP frames 106 to IP logic 108 .
  • the PPP logic 104 also creates outgoing PPP frames 100 for IP frames 106 to be transmitted over the DS3 segment 20 .
  • the IP logic 108 carries out a variety of network-level tasks, such as frame forwarding or routing, frame classification for Quality of Service (QOS) support, and statistics gathering for network management purposes.
  • the frame forwarding function is performed partially by the IP logic 108 and partially by similar IP logic on the OC3 card 16 .
  • the IP logic 108 For IP frames received from a DS3 segment 20 destined for the OC3 segment 22 , the IP logic 108 performs “ingress” processing while the IP logic on the OC3 card 16 performs “egress” processing. For IP frames travelling in the other direction, the IP logic on the OC3 card 16 performs ingress processing while the IP logic 108 performs egress processing. In either case the ingress IP logic appends a route tag 110 to the IP frame 106 for use by the egress IP logic in a manner described below.
  • the interconnect bus 18 of FIG. 1 employs the ATM data link protocol for transferring data among the various cards 14 and 16 in the system 10 .
  • the IP logic 108 interfaces with ATM adaptation layer (AAL) logic 112 that implements the ATM Adaptation Layer 5 (AAL5) protocol to effect the transfer of frames 116 across the interconnect bus 18 .
  • AAL ATM adaptation layer
  • AAL5 ATM Adaptation Layer 5
  • the frames 116 include the embedded IP frame 106 , the route tag 110 , and an AAL5 trailer 114 .
  • the AAL logic 112 interfaces with ATM data link logic 118 that transfers each frame 116 as a plurality of ATM cells 119 over the interconnection bus 18 .
  • the PPP logic 104 , IP logic 108 , and AAL logic 112 and ATM data link logic 118 are distributed among several components shown in FIG. 2, including the forwarding controller 36 , forwarding controller memory 38 , packet assembly and disassembly logic 32 , address resolution logic 50 and address resolution memory 52 . The operation of these components is described in more detail below.
  • FIG. 5 shows frame processing on the OC3 card 16 .
  • the transfer of frames to and from the interconnect bus 18 is carried out by ATM data link logic 120 and AAL interface logic 121 .
  • the AAL logic 121 interfaces with IP logic 122 , which is the counterpart of the IP logic 108 on the DS3 cards 14 .
  • AAL logic 124 along with ATM data link and OC3 logic 126 carry out the interface between the IP logic 122 and the OC3 segment 22 .
  • the AAL logic 124 communicates over the OC3 segment 22 using frames 130 having the embedded IP frame 106 and an AAL trailer 132 .
  • the ATM data link and OC3 logic 126 transfer the frames 130 as a plurality of ATM cells 134 at the data link layer.
  • the ATM cells are transported at the physical layer in channels 136 within frames 137 appearing on the OC3 segment 22 .
  • the ATM data link logic 120 , AAL logic 121 , IP logic 122 , and ATM circuit logic 124 are implemented primarily by the OC3 forwarding controller 66 , forwarding controller memory 68 , address resolution logic 76 and address resolution memory 78 of FIG. 3 .
  • the ATM data link and OC3 logic 126 is implemented primarily by the packet flow logic 60 , packet memory 62 , and packet assembly and disassembly logic 64 of FIG. 3 .
  • FIG. 6 illustrates the overall processing by the network device 10 of an IP destination address to direct a received frame to the desired next hop node.
  • the destination address is used to lookup a next hop index in a forwarding table 139 residing in the address resolution memory 52 or 78 of an ingress line card 14 or 16 .
  • the next hop index is used to retrieve an entry from a global IP interface table 141 , each entry of which represents one of several hundred IP interfaces known to the network device 10 .
  • the global IP interface table 141 supplies an ATM data link identifier and a remote IP index, both these values being associated with the IP interface represented by the looked-up entry.
  • the ATM data link identifier identifies an ATM data link logic block 120 within the network device 10 to which the IP frame should be forwarded within the box.
  • the remote IP index is used along with a source IP interface identifier (identifying the interface on which the IP frame was received) to form the route tag 110 .
  • the route tag 110 is appended to the received IP frame and transferred to the egress-side IP logic by the ingress-side IP logic.
  • the remote IP index from the route tag 110 is used to retrieve an entry from a local IP interface table 143 .
  • This entry contains an identifier of a layer-2 interface on which the IP frame should be forwarded.
  • the identifier is the next hop “address”.
  • the layer-2 interface identifier from the local IP interface table 143 identifies an ATM connection by VPI and VCI value. In alternative embodiments this identifier may take other forms, however.
  • the layer-2 identifier is a MAC address of an Ethernet node to which the IP frame should be forwarded.
  • the MAC address is retrieved from a table used to stored address bindings in accordance with the Address Resolution Protocol (ARP).
  • ARP Address Resolution Protocol
  • the index retrieved from the forwarding table 139 may identify a list of alternative routes rather than a single route. This feature is referred to as “equal-cost multipath”.
  • the index may identify specific Quality of Service (QOS) processing to be performed based on an address such as a source address contained within a received packet.
  • QOS Quality of Service
  • the global IP interface table 141 may be thought of as a specific type of global forwarding equivalence class table containing information about how a received packet is to be processed.
  • FIG. 7 illustrates the structure of a routing table maintained by the system controller 12 of FIG. 1 for routing purposes.
  • the overall structure shown in FIG. 7 is referred to herein as an “uncompressed tree”, as distinguished from “compressed trees” which are described below.
  • the routing table contains a plurality of routing entries, segregated into groups as follows: level-1 routing entries 138 which have subnet mask lengths of 16 or less; level-2 routing entries 140 having subnet mask lengths of between 17 and 24; and level-3 routing entries 142 having subnet mask lengths of between 25 and 32.
  • Each routing entry 138 , 140 and 142 includes a key and a “next hop” address.
  • the key includes a destination IP address value and a subnet mask value (shown together in the form X.X.X.X/yy at the top of each routing entry).
  • the next hop address is an IP address (shown in the form X.X.X.X at the bottom of each routing entry) which is the address of a network to which frames having destination addresses matching the key should be forwarded.
  • routing entries are further organized according to their key address values and subnet mask lengths. When multiple routing entries have the same key address value, these are grouped into a linked list. Each linked list is sorted in order of descending subnet mask length, which is also the order of decreasing specificity.
  • a single tree 144 at level 1 contains pointers to level-1 routing entries 138 .
  • the level-1 tree 144 includes 2 16 or 64K pointer storage locations indexed by IP address bits [ 31 : 16 ], the most significant 16 bits of the IP address.
  • a portion of the level 1 tree 140 is shown in FIG. 7, including locations 128.63 through 128.68.
  • Multiple trees 146 at level 2 contain pointers to level-2 routing entries 140 .
  • Each level-2 tree 146 includes 2 8 or 256 pointer storage locations indexed by IP address bits [ 15 : 8 ].
  • multiple trees 148 at level 3 contain pointers to level-3 routing entries 142 .
  • Each level-3 tree 148 includes 2 8 or 256 pointer storage locations indexed by IP address bits [ 7 : 0 ].
  • Each pointer storage location in the level-1 tree 144 contains either a pointer or a null value indicating that the location is empty. In addition, each location contains additional bits that describe the pointer type when a pointer is present.
  • Each pointer points to a corresponding routing entry and each routing entry may be part of a linked list of routing entries as described above.
  • a pointer may point to a routing entry whose key address value is equal to the index of the location at which the pointer is stored.
  • Such pointers are termed “real leaf” pointers, and this status is indicated by a bit called the “real leaf” bit being set to one.
  • a pointer may instead point to a routing entry whose key address value is not equal to the index of the pointer, but is the best match for that index based on the subnet mask.
  • These pointers are termed “fill leaf” pointers, as indicated by the “real leaf” bit being set to zero. In FIG. 7, the path between a fill pointer and the associated routing entry is shown using a dotted line
  • An additional bit called the “next tree” bit is used to indicate whether the pointer is a “next tree” pointer pointing to a level-2 tree 146 .
  • a next tree pointer is stored in the level-1 tree 140 when more than the upper 16 IP address bits must be examined to determine the next hop. This condition is indicated by the presence of either a level-2 routing entry 140 or a level-3 routing entry 142 whose upper 16 IP address bits are equal to the address of the next tree pointer.
  • the next tree pointer is the address of a level-2 tree 146 used to decode IP address bits [ 15 : 8 ]. Thus whenever a next tree pointer is retrieved from the level-1 tree 144 during a lookup, a second lookup to a level-2 tree 146 must occur.
  • a mechanism is provided for identifying both a routing entry and a next tree at a given pointer location in the level-1 tree 144 .
  • this is achieved by providing a special pointer 149 associated with the root of each level-2 tree 146 .
  • the pointer in the level-1 tree 144 points to a level-2 tree 146
  • the pointer 149 points to a level-1 routing entry 138 .
  • both pointers could be stored in the level-1 entry, or each routing entry 138 could optionally point to a level-2 tree 146 when necessary.
  • the illustrated approach has the advantage of storage efficiency, because space for a second pointer is needed only when a pointer in the level-1 tree 144 points to a level-2 tree 146 .
  • Each level-2 tree 146 contains 256 storage locations containing either null or pointer values. Like the level-1 tree 144 , each pointer can point to either a next tree or directly to a routing entry, and routing entry pointers may be either “real leaf” or “fill leaf” pointers. Next tree pointers are used in a level-2 tree 146 when it is necessary to examine more than the upper 24 IP address bits to determine the next hop. The next tree pointer is the address of a level-3 tree 148 used to decode IP address bits [ 7 : 0 ]. Special pointers 149 are used in the level-3 trees 148 to point to level-2 routing entries 140 , in a manner analogous to that described above for level-2 trees 146 and level-1 routing entries 138 .
  • Each level-3 tree 148 also contains 256 storage locations containing either null or pointer values.
  • the leaf pointers in the level-3 trees 148 may be either real or fill pointers in a manner analogous to the level-1 and level-2 trees 144 and 146 . There are no next tree pointers in the level-3 trees 148 , because in the illustrated embodiment there are no further levels of decoding the IP address.
  • the system controller 12 of FIG. 1 adds and deletes routing entries in accordance with the routing protocol.
  • a routing entry is added, it is first determined whether a new level-3 tree 148 and/or a level-2 tree 146 must be created for the routing entry. This depends on the subnet mask length and whether or not a level-3 or level-2 tree already exists for other routing entries having key addresses that match the key address of the new routing entry in the corresponding fields. If no such tree or trees exist, then new level-3 and/or level-2 trees are created for the new routing entry.
  • a next tree pointer for each new tree is placed in the next-higher level tree.
  • Special pointers 149 are placed in the new trees if there are routing entries associated with the locations of the new next tree pointers.
  • the location in the tree corresponding to the key of the new routing entry is examined. This may be a location in the level-1 tree 144 , a level-2 tree 146 , or a level-3 tree 148 , depending on the subnet mask length. If the location is empty or contains a fill pointer, then a new real leaf pointer to the new routing entry is placed in the location. If the location already contains a real leaf pointer, then the new routing entry is inserted into the linked list to which the real leaf pointer points. The routing entry is inserted in a manner that maintains ordering according to decreasing subnet mask length.
  • fill pointers are placed in those locations for which the new routing entry is the best match, based on the subnet mask length. This process must be done in the level-1 tree 144 as well as any level-2 trees 146 or level-3 trees 148 that are in the address range covered by the new routing entry. In some cases, fill pointers may point from one level to a higher level in the tree. An example is shown in FIG. 7, in which several pointers in the level-3 tree 148 - 1 are pointing to the level-2 routing entry whose key is 128.63.40.0/22.
  • a routing entry When a routing entry is deleted, the entry is removed from the linked list in which it resides, if any. If as a result of the deletion there are no longer any routing entries in the linked list, then the real leaf pointer in the tree is replaced with a fill pointer pointing to a next best remaining match, if one exists, or is deleted. Then all of the tree locations in the range of IP addresses covered by the deleted routing entry are examined. For those locations having a fill pointer to the deleted routing entry, the fill pointer is either changed to point to a next best remaining match, if one exists, or is deleted.
  • the fill pointers at locations 128.65, 128.66 and 128.67 would be changed to point to the routing entry 128.64.0.0/10. If the routing entry 128.64.0.0/10 were deleted, then all of the pointers in locations 128.68 through 128.127 would be deleted.
  • the level-2 and level-3 trees in the covered address range are also examined, and fill pointers are appropriately modified.
  • a level-3 tree 148 is deleted when it no longer contains any real leaf pointers, and a level-2 tree is deleted when it no longer contains any real leaf pointers or next tree pointers.
  • the pointers in the remaining higher level(s) are modified as necessary. For example, if the level-2 tree 146 -n were deleted, the pointer at location 128.68 in the level-1 tree 144 would be modified to point directly to the entry 128.64.0.0/10, and the “next tree” bit would be set to zero.
  • FIG. 8 shows the structure of the forwarding table 139 of FIG. 6, which is used on each interface card 14 and 16 of FIG. 1 .
  • the forwarding table 139 is stored in the address resolution memory 52 on the DS3 card 14 of FIG. 2, and in the address resolution memory 78 on the OC3 card 16 of FIG. 3 .
  • the information in the forwarding table 139 of FIG. 8 is derived from the uncompressed tree routing table of FIG. 7 in a manner described below.
  • the forwarding table 139 includes tree structures, and is generally smaller in size than the uncompressed tree structure of FIG. 7 . For this reason the forwarding table 139 is referred to as a “compressed tree” forwarding table.
  • the compressed tree is divided into three levels associated with IP address bits [ 31 : 16 ], [ 15 : 8 ] and [ 7 : 0 ] respectively.
  • a single tree 150 has 64K 16-bit entries. One bit of each entry is a type bit, and the remaining 15 bits form a pointer value. The pointer value for empty entries is a null value. For non-empty entries, the type bit indicates whether the pointer is a “next hop” pointer NH or a “next tree” pointer NT.
  • Each next hop pointer NH contains an address of an entry in the global IP interface table 141 of FIG. 6 .
  • the entries retrieved from the global IP interface table 141 are used to form the route tags 110 , which in turn are used to obtain the identities of the interfaces on which received IP frames are to be forwarded to reach the desired next hop nodes.
  • the pointer retrieved from the compressed tree may provide an index into another type of table to indicate other types of processing to be performed, such as QOS processing.
  • Each next tree pointer NT contains an index into a level-2 next tree table 152 .
  • Each entry in the level-2 next tree table 152 contains a 24-bit pointer field and an 8-bit size field.
  • the 24-bit pointer field contains an NT pointer pointing to a level-2 compressed tree 154 .
  • Each level-2 compressed trees 154 may be either a “dense” tree holding 256 pointer entries, or a “sparse” tree holding 32 or fewer entries.
  • the 8-bit size field indicates how many NH or NT pointers are stored in the level-2 compressed tree. The size information is used in a manner described below to retrieve pointers from the level-2 compressed trees 154 .
  • level-2 next-tree table 152 including 24-bit NT pointers provides for a level of indirection in the accessing of level-2 compressed trees. While this indirection entails additional delay, it provides desired flexibility in the allocation of storage space within the address resolution memories 52 and 78 of FIGS. 2 and 3, as described in greater detail below.
  • next hop or next tree pointers are stored in the level-2 tree
  • these pointers are stored in a “dense” level-2 compressed tree 154 .
  • Each dense level-2 compressed tree 154 contains 256 16-bit entries, and each non-null entry includes a type bit and a 15-bit NH/NT pointer as in the level-1 tree 150 .
  • the entries in the dense level-2 trees 154 are retrieved by a straight decoding of IP address bits [ 15 : 8 ].
  • next hop or next tree pointers are stored in the level-2 tree
  • these pointers are stored in a “sparse” level-2 compressed tree 154 to conserve storage space.
  • Each sparse level-2 tree 154 contains from 4 to 32 locations in increments of 4.
  • Each non-null entry contains a type bit, a 15-bit NH/NT pointer, and an index tag indicating the highest value of IP address bits [ 15 : 8 ] for which the NT/NH pointer should be used.
  • the entries are stored in ascending order of index tags. During a next-hop lookup, the index tags of the entries are searched in a manner described below in order to retrieve the correct NT/NH pointer based on the destination IP address of the received frame.
  • the NT pointers in the level-2 trees 154 point to entries in a level-3 next tree table 158 which is analogous to the level-2 next tree table 152 .
  • the NT pointers in the level-3 next tree table 158 point to level-3 compressed trees 160 , which may be either dense or sparse. These trees are analogous to their level-2 counterparts 154 , except that all non-null pointers in the level-3 compressed trees 160 are NH pointers, so there is no need of a type bit.
  • IP address space there is a known multicast address space at IP address 224.0.0.0 and so-called “class E” address space above the multicast space. It is not necessary to allocate space in the level-1 tree 150 for these addresses, so it may be possible to reduce the size of the level-1 tree 150 .
  • FIG. 9 shows the structure of the address resolution logic 50 , 76 and the address resolution memories 52 , 78 of FIGS. 2 and 3.
  • Each address resolution logic block 50 , 76 includes four ports P 0 through P 3 .
  • the forwarding controllers 36 and 66 of FIGS. 2 and 3 write 32-bit destination IP addresses into the port input FIFOs 170 to initiate next hop lookups. The next hop index is returned in the corresponding output FIFO 172 .
  • There can be multiple lookups pending at a given time in the address resolution logic 50 , 76 although each lookup is an atomic sequence that is performed to completion once begun. Lookup requests from the different ports P 0 through P 3 are arbitrated in a round-robin manner, and a lookup requested at a given port is performed only if there is sufficient room for the result to be stored in the output FIFO 172 for that port.
  • the destination IP address from a given input FIFO 170 is transferred to a key register 174 via a port multiplexer 176 .
  • a level multiplexer 178 is used to select the bits of the IP address based on the level at which the lookup is being conducted:
  • the output from the level multiplexer 178 is provided to an adder 180 used to form a 24-bit address used to address the associated address resolution memory 52 or 78 .
  • This address passes through an address multiplexer 182 to a memory address register 184 connected to the address inputs of the associated memory 52 or 78 .
  • the output from the address resolution memory 52 or 78 is provided to a small cache of level/base pointers 186 whose use is described below, and also to a small input buffer RAM 188 .
  • the output of the RAM 188 is provided to the adder 180 and to a return next hop register 190 which feeds the output FIFOs 172 .
  • the output of the RAM 188 is also provided along with the output of the level multiplexer 178 to compare logic 192 , which is used by search control logic 194 to carry out searching at levels 2 and 3.
  • the address resolution logic 50 , 76 also contains elements to enable an external device to directly read and write the address resolution memory 52 , 78 .
  • This feature is used by the interface controllers 54 and 80 of FIGS. 2 and 3 to store updated compressed trees into the address resolution memories 52 , 78 when they are received from the system controller 12 of FIG. 1 .
  • the elements that support this feature are an input address register 196 , an input data register 198 and tri-state buffers 200 , and an output register 202 .
  • the storing of updated compressed trees can be performed at the same time that searches are in progress, so that search bandwidth is not compromised by the need to update the compressed trees.
  • address resolution logic 50 , 76 contains a single search controller 194
  • Another alternative is to use multiple address resolution memories and associated lookup logic to achieve even greater parallelism.
  • FIG. 10 shows a memory map of the address resolution memories 52 , 78 .
  • the first 8 Kb are used to store up to 512 16-byte level pointer blocks 210 .
  • the remainder of the 16 Mb storage space is allocated to storing compressed forwarding tables 139 , each forwarding table 139 being associated with a corresponding one of the 512 level pointer blocks 210 .
  • Each level pointer block 210 contains the following items used to address the corresponding forwarding table 139 : a level 1 pointer 214 ; a T2 base address 216 ; a level 2 pointer 218 ; a T3 base address 220 ; and a level 3 pointer 222 . The use of these items is described below. In alternative embodiments it may be desirable to have more or less address resolution memory 52 , 78 , and to allocate more or less space for the storage of level pointer blocks 210 .
  • FIG. 11 shows the manner in which the pointers in the level/base pointer block 210 are used to access entries in a forwarding table 139 during a next hop lookup.
  • the level pointer block 210 is stored within the level pointer block (LPB) cache 186 of FIG. 9, and the pointers are provided to the adder 180 to calculate addresses of tree entries in the address resolution memory 52 or 78 .
  • the level pointer block 210 may already be stored in the LPB cache 186 , in which case the lookup proceeds using the stored level pointer block 210 .
  • the lookup request indicates that the level pointer block 210 should be re-read from the address resolution memory 52 , 78 and stored into the LPB cache 186 .
  • the level pointer block 210 must be re-loaded, for example, whenever the corresponding forwarding table 139 has been updated by the system controller 12 of FIG. 1, and also when a lookup is being done on a different forwarding table 139 than the forwarding table 139 used for preceding lookups.
  • the lookup request contains a value indicating which one of the 512 level pointer blocks 210 should be used.
  • the ability to select one of multiple pointer blocks 210 is a feature that enables support for multiple virtual routers. Different ones of the level pointer blocks 210 are allocated for use by different virtual routers, and each virtual router identifies the level pointer block 210 to be used for its route lookups.
  • the level 1 pointer 214 selects the level-1 compressed tree 150 of the forwarding table 139 .
  • IP address bits [ 31 : 16 ] provide the index of an entry in the level-1 tree 150 .
  • the entry may be an NH pointer, in which case no further searching is required. However, if the entry is an NT pointer then further searching at level 2 is carried out.
  • the NT pointer from the level-1 tree 150 is used as an index into the level-2 next tree table 152 of the forwarding table, the base of which is pointed to by the level 2 pointer 218 from the level pointer block 210 .
  • the NT pointer in the level-2 next tree table 152 is added to the T2 base address 216 from the level pointer block 210 to obtain the base address of a level-2 tree 154 .
  • the NT pointer points to a level-2 compressed tree 154 . If the size is indicated to be greater than 32, then the level-2 tree 154 is a dense tree (not shown in FIG. 11 ), and IP address bits [ 15 : 8 ] are used to directly look up the level-2 NH/NT pointer. If the size is 32 or fewer, however, then the level-2 tree 154 is a sparse tree, and IP address bits [ 15 : 8 ] are used to conduct a search of the sparse tree 154 in a manner described below.
  • the entry in the level-2 tree 154 may contain an NH pointer, in which case no further searching is required. However, if the entry contains an NT pointer then further searching at level 3 is carried out. Access to level 3 of the forwarding table proceeds in a manner similar to that of level 2, using the T3 base address 220 and the level 3 pointer 222 from the level pointer block 210 , the NT pointer and size retrieved from the level-2 tree 154 , and the level-3 next tree table 158 and level-3 trees 160 .
  • the search key at level 3 is made up of IP address bits [ 7 : 0 ], and the retrieved pointer is guaranteed to be an NH pointer.
  • the sparse level-2 trees 154 and level-3 trees 160 are searched in the following manner. If the size of the sparse tree is sixteen or less, then a linear search of the sixteen entries is performed.
  • the RAM 188 , comparison logic 192 , and search control logic 194 of FIG. 9 are configured to compare the search key to four tree entries simultaneously. As a result, a linear search of sixteen entries requires at most four memory accesses, in the case when it is necessary to examine all sixteen entries.
  • the first step performed is comparing the search key to the thirteenth entry. If the search key is less than the thirteenth entry, then a linear search of the first thirteen entries is performed.
  • search key is greater than or equal to the thirteenth entry, then a linear search of the thirteenth through thirty-second entries is performed.
  • the first entry having an index greater than or equal to the search key is the desired entry.
  • the pointer from this entry is the desired NH pointer or NT pointer into the next level, as dictated by the type bit of the entry.
  • FIGS. 12 through 14 show the manner in which the compressed tree forwarding table 139 of FIG. 8 is created from the corresponding uncompressed tree routing table of FIG. 7 .
  • FIG. 15 shows an example portion of a compressed tree forwarding table 139 as it resides within the system controller 12 during its creation.
  • the forwarding tables 139 are re-created and distributed periodically by the system controller 12 during operation of the router 10 . This calculation is done frequently so as to minimize the forwarding of frames along stale routes.
  • an entry is retrieved from the uncompressed level 1 tree 144 .
  • the NEXT TREE bit is tested at step 232 . If the NEXT TREE bit is FALSE, indicating that the entry is a leaf pointer, then at step 234 an NH pointer is placed in the corresponding entry in the level-1 compressed tree 150 .
  • the NH pointer is the address of an entry in the global IP interface table 141 of FIG. 6 for the interface corresponding to the IP address stored in the level-1 routing entry 138 pointed to by the level-1 entry being processed.
  • a level 2 next tree 154 is created at step 236 . This process is described below with reference to FIG. 13 .
  • step 238 After the execution of either step 234 or step 236 , it is determined in step 238 whether all of the entries from the level-1 uncompressed tree 144 have been processed. If not, the process returns to step 230 to process the next entry. Otherwise, the process of creating the compressed tree forwarding table 139 is complete.
  • the special pointers 149 are not traversed during the compression process.
  • the routing entries pointed to by the special pointers 149 are also pointed to by fill leaves associated with routes in the level-2 or level-3 trees beneath the level-1 next tree entry, and thus are processed during the compression of those level-2 and/or level-3 trees.
  • FIG. 13 shows the process of creating a level 2 compressed tree 154 .
  • the process is a “two-pass” process, as reflected in the loops shown as steps 240 through 250 and steps 252 through 262 , respectively.
  • the NEXT TREE (NT) indicator is checked for each entry of the level-2 uncompressed tree 146 at step 242 . If NT is TRUE, indicating that the pointer in the level-2 uncompressed tree 146 contains a NEXT TREE pointer, then at step 244 a next tree placeholder is added to a temporary list used to accumulate compressed entries during the first pass.
  • NT indicator is FALSE, indicating that the entry contains a NEXT HOP (NH) pointer
  • NH NEXT HOP
  • the process then enters the second pass, in which the compressed level-2 tree 154 is actually created.
  • actions are taken to set up a level-2 compressed tree 154 .
  • the compressed level-2 tree to be created should be sparse or dense. If the number of entries in the temporary list is more than 32, then storage for a 256-entry dense tree 154 is allocated. Otherwise, storage for a sparse tree 154 is allocated.
  • the storage allocated for a sparse tree 154 is the multiple of four entries that is equal to or greater than the number of entries in the temporary list.
  • an NT entry is placed in the level-2 next tree table 152 pointing to the first entry of the newly allocated compressed level-2 tree 154 . Also, an NT entry is placed in the level-1 compressed tree 150 pointing to the NT entry in the level-2 next tree table 152 .
  • step 254 in which an entry is retrieved from the temporary list created during the first pass.
  • step 256 it is determined whether this is a NEXT TREE (NT) placeholder. If not (i.e., the entry is an NH pointer), then at step 258 the NH pointer is copied to the level-2 compressed tree 154 . If the level-2 compressed tree being created is a dense tree, then the NH pointer is placed at the location having the same index as the NH pointer from the uncompressed tree 146 .
  • NT NEXT TREE
  • the NH pointer is placed in the sparse tree along with an index I indicating the largest value of IP [ 15 : 8 ] for which the NH pointer should be used.
  • the entries in the sparse trees are stored in ascending order of the index values I 1 , I 2 , etc.
  • step 256 If in step 256 it is determined that the entry is a NEXT TREE placeholder, then the process proceeds to step 260 in which a new level-3 compressed tree 160 is set up. This process is described with reference to FIG. 14 below. After the last temporary entry has been processed as determined at step 262 , the process of FIG. 13 is complete, and the process of FIG. 12 resumes at step 238 .
  • FIG. 14 shows the process by which level-3 compressed trees 160 are created.
  • the process is analogous to the process for level-2 next trees described above. Because in the illustrated embodiment there are no levels beyond the third level, no provision need be made for NEXT TREE entries in the third level.
  • the process creates a compressed temporary list of distinct NH pointers, and then in steps 272 through 280 creates the level-3 tree 160 .
  • the level-3 compressed tree created by the process of FIG. 14 may be either dense or sparse.
  • the processing for each case is analogous to the corresponding case at level 2.
  • FIGS. 12 through 14 has a recursive nature, which is illustrated in the exemplary resulting memory map shown in FIG. 15 .
  • a single level-1 compressed tree 150 is followed by a first level-2 compressed tree 154 - 1 , which is followed by one or more level-3 compressed trees 160 -i associated with entries in the preceding level-2 compressed tree 154 - 1 .
  • This pattern repeats for all the level-2 and level-3 compressed trees that exist in the forwarding table.
  • This section is followed by the level-2 next tree table 152 and the level-3 next tree table 158 .
  • the forwarding table 139 of FIG. 15 After the forwarding table 139 of FIG. 15 has been created, it is distributed to the line cards 14 and 16 and used in the above-described manner to determine next hop addresses for incoming packets.
  • T2 Base pointer 216 and T3 Base pointer 220 have the same values. In alternative embodiments it may be desirable to segregate the level-2 and level-3 trees, in which case it would be advantageous to use corresponding different values for the T2 and T3 base pointers.
  • both the compressed and uncompressed tree are divided into three levels, it may be desirable in alternative embodiments to divide these trees into different numbers of levels. In particular, it may be desirable to use more levels for network addresses that are longer than 32 bits. It may also be desirable to associate different fields of the network address with the levels of the trees. For example, in an alternative embodiment bits [ 31 : 20 ] might be associated with level 1, bits [ 19 : 8 ] with level 2, and bits [ 7 : 0 ] with level 3. In other alternative embodiments it may be desirable to shuffle the address fields with respect to the levels. For example it may be advantageous for level-1 to be associated with a middle address field or a lower address field rather than an upper address field.

Landscapes

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

Abstract

Network routing apparatus employs multi-level tree data structures in a centralized routing table and in distributed forwarding tables. Each level of each structure is associated with a different field of a network address appearing in received packets. Pointers in each structure are used to identify either an address of a next hop network, or a next-level tree to be examined for a next-hop address. An uncompressed tree routing table uses directly addressed trees in order to simplify the storage and retrieval of pointers, and the next-tree pointers directly identify next trees. Compressed tree forwarding tables are generated from the uncompressed routing table by reducing the number of pointers stored at one or more levels to substantially the number of unique next hop addresses associated with network addresses at that level. A single mapping table maps pointer values at one level to the locations of trees at the next level in the compressed trees. Next hop address lookup logic performs lookups in accordance with the structure of the compressed trees. Also, the lookup logic stores and selectively operates on multiple forwarding tables in order to provide support for virtual router operation.

Description

BACKGROUND OF THE INVENTION
The present invention is related to the field of data networks, and more particularly to the routing of data packets from a source node to a destination node within a network.
One primary function of data networks is the routing of data packets or frames from a source network node to one or more destination network nodes. When a network device receives a packet or frame, the device examines the packet or frame in order to determine how the packet or frame is to be forwarded. Similar forwarding decisions are made as necessary at multiple intermediate network devices until the packet or frame is received at a desired destination node. This type of operation is in contrast to networks employing switching techniques, in which routes are pre-established as “circuits” and each network device simply forwards each received packet on its associated circuit. One example of a routed network is the Internet, which employs a protocol known as the Internet Protocol (IP) for routing data packets through the Internet.
There is a growing demand for Internet and other data network services. As a result, there is an increasing volume of routed data traffic such as IP traffic being carried on high-bandwidth data channels, such as the well-known T1 and T3 signals used to carry data and digitized voice in the public telephone system. Along with this increase in routed traffic is an increased demand for high-throughput routers that can make forwarding decisions at very high rates.
To accomplish the task of routing data packets through a network from a source node to a destination node, data networks commonly employ a distributed routing procedure. Network routers maintain routing tables to carry out the routing function. When a packet arrives at a router, an address contained within the packet (for example the destination address) is used to retrieve an entry from the routing table that indicates the next hop, or next node, along a desired route to the destination node. The router then forwards the packet to the indicated next hop node. The process is repeated at successive router nodes until the packet arrives at the desired destination node.
The routing tables in the routers are maintained according to any of a variety of distributed routing protocols. For example, one well-known routing protocol is known as OSPF, which is an acronym for “Open Shortest Path First”. The routers collect information about the activation and deactivation of network links among neighboring nodes, and the information is communicated among the routers according to the routing protocol. Routes are created, updated, and deleted as needed according to network conditions. All of the pertinent routing-related information is contained collectively within the routing tables maintained at the routers.
A routing table entry includes a 2-part mapping between an address such as a destination address and an associated next hop address. It is common for the destination address portion to include a subnet mask value indicating that some of the address bits are to be matched precisely and others need not be. An example of an entry in an Internet Protocol (IP) routing table is the following:
128.4.0.0/16 100.0.0.0
This entry uses the known convention of representing a 32-bit IP address as a string of four bytes (most significant to least significant) separated by decimal points, where the value of each byte is given as a decimal equivalent. This entry indicates that any packet having a destination address whose 16 most significant bits are equal to 128.4 (1000000 0000100 binary), should be routed to the network node having IP address 100.0.0.0 (01100100 00000000 00000000 00000000 binary). An example of a matching destination address is 128.4.10.9; an example of a non-matching address is 128.120.0.0.
The example above illustrates the concept of aggregation of IP addresses for routing purposes. All IP addresses whose upper 16 bits are equal to 128.4 are routed to the same next hop node. Since IP addresses are 32-bit values, there are 2(32−16)=216=64K such addresses. These addresses are said to be aggregated in the routing table. It will be appreciated that shorter subnet masks correspond to greater aggregation, while longer subnet masks correspond to less aggregation. In addition, this format for a routing entry can also be used for route summarization, a technique similar to aggregation that is used by routing protocols.
The mapping from the set of all possible destination addresses to the set of all possible next hops can be represented as a binary tree, in which each bit of the destination address dictates which branch is taken at a corresponding level in the search for the next hop. For an n-bit address, a tree of height n is required. A fully populated tree has 2n distinct leaves at the end of 2n distinct search paths, where each leaf corresponds to a next hop value. However, a tree representing a set of routing entries typically contains far fewer leaves. The number of leaves required is influenced by the number of entries in the routing table, and also the degree to which network addresses are aggregated. If the network address space is divided into a relatively large number of sub-spaces each of which is assigned a different route, more leaves are needed than when the network address space is divided into a smaller number of sub-spaces having distinct routes. Most networks exhibit substantial address aggregation, so that even in large networks the mapping tree used for routing at a given node tends to be “sparse”, i.e. not very fully populated. For example, the routing entry given above corresponds to a single leaf at location 16 of the tree, and it covers the range of 64K addresses from 128.4.0.0 through 128.4.255.255.
The simplest way conceptually to look up a next hop address is to use a conventional random-access memory having a binary address input and a data storage location associated with each unique address value. A next hop value is stored at the storage location corresponding to each address. The next hop is looked up in the memory by simply retrieving the value stored at the memory location indicated by the address included in a received packet. When a group of addresses are aggregated, such as in the above example, the next hop value used by the aggregation would be replicated at each aggregated address in the memory. Thus in the foregoing example the entry 100.0.0.0 would appear at locations 128.4.0.0 through 128.4.255.255 of such a memory.
While conceptually simple, such an approach is not practically feasible for typical network address spaces. The amount of memory required based on typical network address lengths is prohibitively large. For example, 4 billion memory locations are required to fully decode 32-bit IP addresses. Also, this approach is inefficient when the tree is even modestly sparse. For these reasons, network routers have generally employed alternative means of storing and retrieving the tree elements.
Many contemporary routers employ what is referred to as a Patricia tree representation of the mapping from destination addresses to next hops. During a search, a Patricia tree is traversed in binary fashion in the direction from most significant to least significant address bits. The Patricia tree structure achieves significantly greater storage efficiency than the simplistic approach described above. However, worst-case searches can potentially require 32 memory references. Thus the performance of a router using a Patricia tree is undesirably sensitive to network topology and address assignments.
The logical partitioning and layout of functional components within the router also affect router performance. A common configuration for a contemporary router is a collection of line cards interconnected by a switching fabric. Each line card has one or more ports each attached to a corresponding physical network medium. When a packet arrives at a line card port, a forwarding engine on the line card determines which port the packet should be forwarded to, and then forwards the packet to the corresponding line card through the switch fabric. The receiving line card then transmits the packet onto the appropriate network segment. The forwarding engine may be implemented using a general-purpose microprocessor executing special-purpose forwarding software, or may alternatively be implemented using special-purpose hardware. A software approach is favored when the speed of lookups is secondary to other considerations, such as ease of revision. A hardware approach is favored when the speed of lookups is paramount, for example on line cards used with very high-speed networks.
It is known to maintain the routing information within a centralized component such as a system controller within a router of the foregoing type, and for each forwarding engine to consult the system controller in order to obtain a route for each received packet. This approach has the advantage that only a single copy of the routing information is maintained within the router, so that the information can be updated readily and the most up-to-date information is automatically used for route determination. However, the system controller in such routers rapidly becomes a bottleneck, especially in light of the recent tremendous growth in the volume of network traffic.
To reduce the effect of a limited-capacity system controller on router performance, it has become more common for routing information to be distributed in multiple readily accessible locations in a router. In one approach a forwarding table is employed on the line cards to map the destination address of each received packet to the identity of the port to which the packet should be forwarded. The forwarding table contains a subset of the information from the routing table. The system controller updates the forwarding tables on the various line cards as changes to the routing table occur. The use of distributed forwarding tables increases parallelism in the router. Also, if the forwarding tables are small enough they can be placed into relatively fast-access storage on the line cards, which further enhances performance.
In some routers the forwarding tables are cached copies of one or more sections of the routing table. This technique exploits address locality appearing in the network traffic. Most of the next hop lookups are done on the line card when the hit rate in the cache is high. However, there are circumstances in which the hit rate in the cache cannot be maintained at an adequately high level. If the cache is too small relative to the number of different addresses received by the line card over a given interval, the cache may begin to thrash. When thrashing occurs, entries are repeatedly swapped out of the cache prematurely, substantially decreasing the hit rate. Each lookup that misses in the cache incurs delay while the needed entry is fetched from the system controller. As a result, overall performance of the router is degraded.
In a technique described by Degermark et al. in a paper entitled “Small Forwarding Tables for Fast Routing Lookups”, small forwarding tables that contain all the necessary routing information are used in the line cards. A microprocessor on each line card executes a lookup algorithm using the data stored in the corresponding forwarding table. The technique uses a 3-level prefix tree representation of the mapping from destination network addresses to next hop addresses, and the inherent sparseness of the prefix tree is exploited to achieve considerable storage efficiency. Level 1 of the prefix tree is associated with bits <31:16> of the IP address from packets arriving at the router. Levels 2 and 3 of the prefix tree are associated with bits <15:8> and <7:0> of the IP address respectively.
In the technique of Degermark et al., routing entries that aggregate addresses having up to 16 of their most significant bits in common have corresponding entries in the level 1 tree, and require no space in either the level 2 or level 3 trees. Routing entries that aggregate addresses having between 17 and 24 of their most significant bits in common require space in both the level 1 and the level 2 trees. For these routing entries, the level 1 tree contains node entries that point to chunks in the level 2 tree that contain the corresponding leaves. For routing entries that aggregate addresses having between 25 and 32 most significant bits in common, the chunks in the level 2 tree contain node entries that point to chunks in the level 3 tree that contain the leaf entries. The levels are searched in order as deep as necessary using the respective bits of the IP address to retrieve the desired next hop value.
The technique shown in the Degermark et al. paper achieves considerable storage efficiency, so that small but complete forwarding tables can be stored on each line card. At each level of the prefix tree, storage is used only to store the required leaf and node information; little or no storage is left empty as a result of tree sparseness. A multi-level mapping structure within each level maps aggregated addresses to a single leaf or node entry used by all members of the aggregation. Thus for an exemplary routing entry such as (128.4.0.0/16—100.0.0.0), the Degermark forwarding table would contain a single leaf, and each address in the range from 128.4.0.0 through 128.4.255.255 would be mapped to the location of the single leaf.
While the technique shown in the Degermark et al. paper achieves considerable storage efficiency, it does so at the cost of complexity, notably in the multi-level mapping used at each level to extract the desired node or leaf based on the corresponding bits of the IP address. It would be desirable, however, for next hop lookups to be performed in a manner better suited to high-performance hardware implementation. Also, the Degermark et al. paper does not address performance issues that may arise from the manner of creating and maintaining the various data structures during dynamic network operation when routes are being added, deleted, or changed. A practical router must have an efficient means of re-generating the forwarding tables as necessary to keep up with changes in the routing topology as dictated by the routing protocol being followed.
BRIEF SUMMARY OF THE INVENTION
In accordance with the present invention, network routing apparatus and associated methods and data structures are disclosed in which high route lookup rates are achieved for a large number of network data streams. Complete forwarding tables are stored efficiently in memory on each line card, and are organized such that route lookups are performed simply, rapidly and efficiently. Also, a central routing table is organized in a manner that enables fast and efficient updating of the forwarding tables, so that the router can react quickly to changes in the network topology while maintaining high route lookup rates.
The disclosed network router apparatus employs a multi-level prefix tree forwarding table organized in a manner that enables fast and efficient lookups in hardware. A first-level tree is directly addressed by a first field of a network address, so that a pointer can be retrieved using only a single memory lookup. Compression is achieved by providing for the storage of either dense or sparse trees at other levels. Dense trees are directly addressed, so that pointer lookup is done with a single memory reference. Sparse trees are used to store pointers using less redundancy than exhibited by the dense trees. The number of pointers in a sparse tree is on the order of the number of unique routing entries associated with the corresponding set of addresses. A mapping table is used to map pointers from one level to trees at the next lower level, so that the number of memory references required for retrieving lower-level trees is minimized.
The routing apparatus maintains an uncompressed multi-level tree routing table in order to enhance the efficiency with which the forwarding table is re-created during operation. The uncompressed tree employs pointers that point to either routing entries stored in a linked list for ease of insertion and removal, or to next-level trees directly without any intervening mapping structures. The trees at each level are directly addressed, so that each pointer lookup is done in a single direct memory reference. The forwarding table is generated in a straightforward manner by traversing the uncompressed tree and performing a regular set of operations on each entry during the traversal. The levels of the forwarding table are generated in a recursive manner from the levels of the uncompressed routing table.
The routing apparatus also employs lookup logic that is tailored to perform fast lookups at high rates. The routing apparatus supports what are referred to as “virtual” routers by providing for the storage and use of multiple forwarding tables on each line card and a protocol for selecting the appropriate forwarding table for a given lookup. These features enable the routing apparatus to support multiple virtual networks as a straightforward extension of the basic routing functionality, significantly enhancing the range of possible applications of the disclosed apparatus.
Other aspects, features, and advantages of the present invention are disclosed in the detailed description, which follows.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING
FIG. 1 is a block diagram of a network router device according to the principles of the present invention;
FIG. 2 is a block diagram of a customer interface line card in the network router device of FIG. 1;
FIG. 3 is a block diagram of an interface line card for a core network in the router of FIG. 1;
FIG. 4 is a schematic diagram depicting how data received from a network is processed within the customer interface line card of FIG. 2;
FIG. 5 is a schematic diagram depicting how data received from a network is processed within the core network interface line card of FIG. 3;
FIG. 6 is a schematic diagram depicting how forwarding addresses are obtained based on the destination addresses appearing in packets received by the network router device of FIG. 1;
FIG. 7 is a schematic diagram of an uncompressed tree data structure representation of a routing table in a system controller in the network router device of FIG. 1;
FIG. 8 is a schematic diagram of a compressed tree data structure representation of a forwarding table in the line cards of FIGS. 2 and 3;
FIG. 9 is a block diagram of address resolution logic and an address resolution memory in the line cards of FIGS. 2 and 3;
FIG. 10 is a memory map of the address resolution memory of FIG. 9 showing how multiple compressed tree data structures like the compressed tree data structure of FIG. 8 are stored therein;
FIG. 11 is a schematic diagram showing the manner in which the compressed tree data structure of FIG. 8 is stored in address resolution memory and is accessed by the address resolution logic of FIG. 9;
FIGS. 12 through 14 are flow diagrams depicting how the compressed tree of FIG. 8 is generated from the uncompressed tree of FIG. 7; and
FIG. 15 is a memory map of a portion of the address resolution memory of FIG. 9 showing the detailed arrangement of a portion of a single compressed tree data structure stored therein.
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 shows a router 10 including a system controller card 12, a number of DS3 cards 14 and an OC3 card 16. As is known in the art, the acronym DS3 represents a multiplexed digital signal with a data rate of approximately 45 Mb/s, representing 28 multiplexed DS1 signals or 672 64-Kb/s DS0 signals. DS3 and DS1 are also referred to respectively as “T3” and “T1”. The acronym “OC3” represents a 155 Mb/s optical carrier signaling protocol. The cards 14 and 16 interface to an interconnect bus 18 to enable the cards to exchange data. The DS3 cards 14 are connected to DS3 network segments denoted as “customer segments” 20 in FIG. 1. Each card 14 is connected to three DS3 segments, the segments being labeled 0, 1 and 2 for each card 14. The OC3 card 16 is connected to an OC3 segment denoted as “core network segment” 22. As the names of the segments 20 and 22 indicate, the router 10 is intended for use at an intermediate hierarchical position in a data network. For example, the router 10 transfers packets between a large number of customers reachable via the customer segments 20 and a smaller number of high-traffic, medium-to-long haul data communication devices reachable via the core network segments 22.
In a known fashion, communications on the segments 20 and 22 are carried out in a hierarchical manner, in general accordance with the principles reflected in the well-known 7-layer Open Systems Interconnect (OSI) model promulgated by the International Standards Organization (ISO). The following description employs descriptive terminology according to that model. In particular, the device 10 operates primarily at the lowest 3 layers of the OSI model, which are in ascending order the physical, data link, and network layers. At the network layer, the device 10 implements the Internet Protocol (IP) for routing datagrams among various source and destination network nodes (although IP does not follow the OSI model strictly). As described below, at layer 2 the device 10 employs several protocols including Point-to-Point Protocol (PPP), Frame Relay, and Asynchronous Transfer Mode (ATM). The device 10 also employs multiple protocols at the physical layer as described below.
At the physical layer, each customer segment 20 employs the channelized T3 protocol, which operates at approximately 45 Mbps. Channelized T3 signals include 28 DS1 channels, each of which operates at 1.544 Mbps, and each DS1 channel carries 24 “DS0” channels each operating at up to 64 Kbps. As described in greater detail below, these channels are assigned to higher-level “circuits” at the network layer where routing occurs. The core network segment 22 employs 155 Mb/s OC3 optical signaling. The OC3 traffic is likewise assigned to higher-level “circuits” as described below.
The system controller 12 carries out a number of operations in support of the overall operation of the router 10. One operation performed by the system controller 12 is the management of the routing function at the network layer. The system controller 12 maintains a large routing database, referred to as a routing table, which is used to enable the device 10 to make decisions regarding how packets received on a segment 20 or 22 are to be forwarded. The routing table reflects the overall topology of the entire network as known to the router 10. The system controller 12 communicates with neighboring routers in the network to exchange topology-related information so that the routing tables are kept current despite changes in the network topology. Thus for example when a new node is configured on a network segment, that information is broadcast throughout the network to enable each router to update its routing table.
As mentioned, the device 10 uses the information in the routing table to make decisions regarding how to forward a packet. In a manner described in greater detail below, the device 10 arranges the information in the routing table, and distributes the information among the cards 14, 16 in such a manner that routing decisions take the form of lookups in the cards 14 and 16. The system controller 12 is not involved on a lookup-by-lookup basis, but rather continually updates and distributes routing information to enable each card 14 and 16 to perform lookups independently. The lookups are done at a very high rate, so the device 10 efficiently supports a large number of customers having high data rate demands. As part of its routing-related operation, the system controller 12 determines when it is necessary to update the routing information on the cards 14 and 16, and re-generates and broadcasts the information to the cards. The information is broadcast in a manner that does not interfere with the lookup operations on the cards 14 and 16.
The configuration shown in FIG. 1 is intended to be representative. In alternative embodiments there may be different numbers of customer interface cards 14 and/or core interface cards 16. Also, the cards may operate according to other protocols. In some embodiments the separate functional elements shown in FIG. 1 may be physically arranged in other manners, such as for example on a single circuit board.
FIG. 2 shows the structure of a DS3 card 14. A High-level Data Link Control (HDLC) controller 30 transmits and receives a DS3 data stream (such as DS3 stream 0 as shown) to and from a customer segment 20 as HDLC frames. The HDLC controller 30 interfaces to packet assembly and disassembly logic 32 via a bus 34. The DS3 card 14 also contains a DS3 forwarding controller 36, which along with forwarding controller memory 38 and bus transceivers 40 is attached to a bus 42. A bridge circuit 44 provides a communications path between devices on the bus 34 and devices on the bus 42. The foregoing devices are part of a logical interface unit 46 associated with one DS3 data stream, in this case stream 0 as indicated. The card 14 contains three such units 46 to interface to the three DS3 customer network segments 20 of FIG. 1.
The transceivers 40 within each interface unit 46 are connected to another bus 48 that provides communication to address resolution logic 50, which in turn interfaces with address resolution memory 52. An interface controller 54 has associated interface controller memory 56 and communicates with the bus 48 via transceivers 58.
FIG. 3 shows the structure of the OC3 card 16. Packet flow logic 60 transmits and receives the OC3 data stream to and from the core network segment 22. The OC3 data is buffered within a packet memory 62. The packet flow logic 60 interfaces with packet assembly and disassembly logic 64 tied to the interconnect bus 18 of FIG. 1. The packet flow logic 60 also interfaces with an OC3 forwarding controller 66 and associated forwarding controller memory 68 via a bus 70. Transceivers 72 are connected between the bus 70 and another bus 74 that provides communication to address resolution logic 76, which in turn interfaces with address resolution memory 78. The address resolution logic 76 and address resolution memory 78 are structurally the same as their counterparts 50 and 52 in FIG. 2, but function somewhat differently as described below. The OC3 card 16 also contains an interface controller 80 and associated interface controller memory 82; the interface controller 80 communicates with the bus 74 via transceivers 84.
FIG. 4 illustrates the processing of network data traffic on the DS3 cards 14. Processing is performed hierarchically, with protocol stacks being employed at the interfaces to the DS3 network segments 20 and at the interface to the internal interconnect bus 18. At the interface to a DS3 network segment 20, HDLC and DS3 logic 90 transmits and receives DS3 frames 92. The HDLC and DS3 logic 90 is part of the HDLC controller 30 of FIG. 2. HDLC and DS3 logic 90 converts received DS3 frames 92 to HDLC frames 94, and also converts outgoing HDLC frames 94 to DS3 frames 92 for transmission on the DS3 segment 20. As shown in FIG. 4, the DS3 frames 92 include multiple DS0 channels 96. The logic 90 is programmed by interface controller 54 to associate groups of DS0 channels 96. On the receive side, the logic 90 forms HDLC frames 94 from each group of associated channels 96. On the transmit side, the logic 90 breaks HDLC frames 94 down into multiple DS0 channels for transmission on the DS3 segment 20.
The HDLC and DS3 logic 90 also creates PPP frames 100 from received HDLC frames 94, and converts outgoing PPP frames 100 to HDLC frames 94 for transmission on the DS3 segment 20. Each PPP frame 100 corresponds to a payload portion 102 of an HDLC frame 94.
PPP logic 104 extracts IP frames or packets 106 from received PPP frames 100, and provides the IP frames 106 to IP logic 108. The PPP logic 104 also creates outgoing PPP frames 100 for IP frames 106 to be transmitted over the DS3 segment 20. The IP logic 108 carries out a variety of network-level tasks, such as frame forwarding or routing, frame classification for Quality of Service (QOS) support, and statistics gathering for network management purposes. The frame forwarding function is performed partially by the IP logic 108 and partially by similar IP logic on the OC3 card 16. For IP frames received from a DS3 segment 20 destined for the OC3 segment 22, the IP logic 108 performs “ingress” processing while the IP logic on the OC3 card 16 performs “egress” processing. For IP frames travelling in the other direction, the IP logic on the OC3 card 16 performs ingress processing while the IP logic 108 performs egress processing. In either case the ingress IP logic appends a route tag 110 to the IP frame 106 for use by the egress IP logic in a manner described below.
The interconnect bus 18 of FIG. 1 employs the ATM data link protocol for transferring data among the various cards 14 and 16 in the system 10. Thus to communicate internally the IP logic 108 interfaces with ATM adaptation layer (AAL) logic 112 that implements the ATM Adaptation Layer 5 (AAL5) protocol to effect the transfer of frames 116 across the interconnect bus 18. As shown, the frames 116 include the embedded IP frame 106, the route tag 110, and an AAL5 trailer 114. The AAL logic 112 interfaces with ATM data link logic 118 that transfers each frame 116 as a plurality of ATM cells 119 over the interconnection bus 18.
The PPP logic 104, IP logic 108, and AAL logic 112 and ATM data link logic 118 are distributed among several components shown in FIG. 2, including the forwarding controller 36, forwarding controller memory 38, packet assembly and disassembly logic 32, address resolution logic 50 and address resolution memory 52. The operation of these components is described in more detail below.
FIG. 5 shows frame processing on the OC3 card 16. The transfer of frames to and from the interconnect bus 18 is carried out by ATM data link logic 120 and AAL interface logic 121. The AAL logic 121 interfaces with IP logic 122, which is the counterpart of the IP logic 108 on the DS3 cards 14. AAL logic 124 along with ATM data link and OC3 logic 126 carry out the interface between the IP logic 122 and the OC3 segment 22. As shown, the AAL logic 124 communicates over the OC3 segment 22 using frames 130 having the embedded IP frame 106 and an AAL trailer 132. The ATM data link and OC3 logic 126 transfer the frames 130 as a plurality of ATM cells 134 at the data link layer. The ATM cells are transported at the physical layer in channels 136 within frames 137 appearing on the OC3 segment 22.
The ATM data link logic 120, AAL logic 121, IP logic 122, and ATM circuit logic 124 are implemented primarily by the OC3 forwarding controller 66, forwarding controller memory 68, address resolution logic 76 and address resolution memory 78 of FIG. 3. The ATM data link and OC3 logic 126 is implemented primarily by the packet flow logic 60, packet memory 62, and packet assembly and disassembly logic 64 of FIG. 3.
FIG. 6 illustrates the overall processing by the network device 10 of an IP destination address to direct a received frame to the desired next hop node. The destination address is used to lookup a next hop index in a forwarding table 139 residing in the address resolution memory 52 or 78 of an ingress line card 14 or 16. The next hop index is used to retrieve an entry from a global IP interface table 141, each entry of which represents one of several hundred IP interfaces known to the network device 10. The global IP interface table 141 supplies an ATM data link identifier and a remote IP index, both these values being associated with the IP interface represented by the looked-up entry. The ATM data link identifier identifies an ATM data link logic block 120 within the network device 10 to which the IP frame should be forwarded within the box. The remote IP index is used along with a source IP interface identifier (identifying the interface on which the IP frame was received) to form the route tag 110. As previously described, the route tag 110 is appended to the received IP frame and transferred to the egress-side IP logic by the ingress-side IP logic.
As shown in FIG. 6, on the egress side the remote IP index from the route tag 110 is used to retrieve an entry from a local IP interface table 143. This entry contains an identifier of a layer-2 interface on which the IP frame should be forwarded. The identifier is the next hop “address”. In the illustrated embodiment, the layer-2 interface identifier from the local IP interface table 143 identifies an ATM connection by VPI and VCI value. In alternative embodiments this identifier may take other forms, however. For example, in an embodiment in which the egress side interface is an Ethernet interface, the layer-2 identifier is a MAC address of an Ethernet node to which the IP frame should be forwarded. The MAC address is retrieved from a table used to stored address bindings in accordance with the Address Resolution Protocol (ARP).
It should be noted at this point that the lookup technique described herein may be used to support operational features of the network device 10 other than routing. The index retrieved from the forwarding table 139 may identify a list of alternative routes rather than a single route. This feature is referred to as “equal-cost multipath”. The index may identify specific Quality of Service (QOS) processing to be performed based on an address such as a source address contained within a received packet. The global IP interface table 141 may be thought of as a specific type of global forwarding equivalence class table containing information about how a received packet is to be processed.
FIG. 7 illustrates the structure of a routing table maintained by the system controller 12 of FIG. 1 for routing purposes. The overall structure shown in FIG. 7 is referred to herein as an “uncompressed tree”, as distinguished from “compressed trees” which are described below.
The routing table contains a plurality of routing entries, segregated into groups as follows: level-1 routing entries 138 which have subnet mask lengths of 16 or less; level-2 routing entries 140 having subnet mask lengths of between 17 and 24; and level-3 routing entries 142 having subnet mask lengths of between 25 and 32.
Each routing entry 138, 140 and 142 includes a key and a “next hop” address. The key includes a destination IP address value and a subnet mask value (shown together in the form X.X.X.X/yy at the top of each routing entry). The next hop address is an IP address (shown in the form X.X.X.X at the bottom of each routing entry) which is the address of a network to which frames having destination addresses matching the key should be forwarded.
Beyond the coarse division of routing entries into levels 1, 2 and 3, the routing entries are further organized according to their key address values and subnet mask lengths. When multiple routing entries have the same key address value, these are grouped into a linked list. Each linked list is sorted in order of descending subnet mask length, which is also the order of decreasing specificity.
Sub-trees at the three different levels index into the routing entries 138, 140 and 142. A single tree 144 at level 1 contains pointers to level-1 routing entries 138. The level-1 tree 144 includes 216 or 64K pointer storage locations indexed by IP address bits [31:16], the most significant 16 bits of the IP address. A portion of the level 1 tree 140 is shown in FIG. 7, including locations 128.63 through 128.68. Multiple trees 146 at level 2 contain pointers to level-2 routing entries 140. Each level-2 tree 146 includes 28 or 256 pointer storage locations indexed by IP address bits [15:8]. Similarly, multiple trees 148 at level 3 contain pointers to level-3 routing entries 142. Each level-3 tree 148 includes 28 or 256 pointer storage locations indexed by IP address bits [7:0].
Each pointer storage location in the level-1 tree 144 contains either a pointer or a null value indicating that the location is empty. In addition, each location contains additional bits that describe the pointer type when a pointer is present. Each pointer points to a corresponding routing entry and each routing entry may be part of a linked list of routing entries as described above. A pointer may point to a routing entry whose key address value is equal to the index of the location at which the pointer is stored. Such pointers are termed “real leaf” pointers, and this status is indicated by a bit called the “real leaf” bit being set to one. A pointer may instead point to a routing entry whose key address value is not equal to the index of the pointer, but is the best match for that index based on the subnet mask. These pointers are termed “fill leaf” pointers, as indicated by the “real leaf” bit being set to zero. In FIG. 7, the path between a fill pointer and the associated routing entry is shown using a dotted line.
An additional bit called the “next tree” bit is used to indicate whether the pointer is a “next tree” pointer pointing to a level-2 tree 146. A next tree pointer is stored in the level-1 tree 140 when more than the upper 16 IP address bits must be examined to determine the next hop. This condition is indicated by the presence of either a level-2 routing entry 140 or a level-3 routing entry 142 whose upper 16 IP address bits are equal to the address of the next tree pointer. The next tree pointer is the address of a level-2 tree 146 used to decode IP address bits [15:8]. Thus whenever a next tree pointer is retrieved from the level-1 tree 144 during a lookup, a second lookup to a level-2 tree 146 must occur.
A mechanism is provided for identifying both a routing entry and a next tree at a given pointer location in the level-1 tree 144. In the illustrated embodiment this is achieved by providing a special pointer 149 associated with the root of each level-2 tree 146. The pointer in the level-1 tree 144 points to a level-2 tree 146, and the pointer 149 points to a level-1 routing entry 138. It should be noted that there are alternative ways to achieve the required association between an entry in the level-1 tree and both a level-1 routing entry 138 and a level-2 tree 146. For example, both pointers could be stored in the level-1 entry, or each routing entry 138 could optionally point to a level-2 tree 146 when necessary. However, the illustrated approach has the advantage of storage efficiency, because space for a second pointer is needed only when a pointer in the level-1 tree 144 points to a level-2 tree 146.
Each level-2 tree 146 contains 256 storage locations containing either null or pointer values. Like the level-1 tree 144, each pointer can point to either a next tree or directly to a routing entry, and routing entry pointers may be either “real leaf” or “fill leaf” pointers. Next tree pointers are used in a level-2 tree 146 when it is necessary to examine more than the upper 24 IP address bits to determine the next hop. The next tree pointer is the address of a level-3 tree 148 used to decode IP address bits [7:0]. Special pointers 149 are used in the level-3 trees 148 to point to level-2 routing entries 140, in a manner analogous to that described above for level-2 trees 146 and level-1 routing entries 138.
Each level-3 tree 148 also contains 256 storage locations containing either null or pointer values. The leaf pointers in the level-3 trees 148 may be either real or fill pointers in a manner analogous to the level-1 and level-2 trees 144 and 146. There are no next tree pointers in the level-3 trees 148, because in the illustrated embodiment there are no further levels of decoding the IP address.
The information in the uncompressed tree shown in FIG. 7 is maintained in the following manner. The system controller 12 of FIG. 1 adds and deletes routing entries in accordance with the routing protocol. When a routing entry is added, it is first determined whether a new level-3 tree 148 and/or a level-2 tree 146 must be created for the routing entry. This depends on the subnet mask length and whether or not a level-3 or level-2 tree already exists for other routing entries having key addresses that match the key address of the new routing entry in the corresponding fields. If no such tree or trees exist, then new level-3 and/or level-2 trees are created for the new routing entry. A next tree pointer for each new tree is placed in the next-higher level tree. Special pointers 149 are placed in the new trees if there are routing entries associated with the locations of the new next tree pointers.
After any required new trees have been created, the location in the tree corresponding to the key of the new routing entry is examined. This may be a location in the level-1 tree 144, a level-2 tree 146, or a level-3 tree 148, depending on the subnet mask length. If the location is empty or contains a fill pointer, then a new real leaf pointer to the new routing entry is placed in the location. If the location already contains a real leaf pointer, then the new routing entry is inserted into the linked list to which the real leaf pointer points. The routing entry is inserted in a manner that maintains ordering according to decreasing subnet mask length.
Once a real leaf pointer has been added for the new routing entry, then all of the tree locations in the range of IP addresses covered by the new routing entry are examined. Fill pointers are placed in those locations for which the new routing entry is the best match, based on the subnet mask length. This process must be done in the level-1 tree 144 as well as any level-2 trees 146 or level-3 trees 148 that are in the address range covered by the new routing entry. In some cases, fill pointers may point from one level to a higher level in the tree. An example is shown in FIG. 7, in which several pointers in the level-3 tree 148-1 are pointing to the level-2 routing entry whose key is 128.63.40.0/22.
When a routing entry is deleted, the entry is removed from the linked list in which it resides, if any. If as a result of the deletion there are no longer any routing entries in the linked list, then the real leaf pointer in the tree is replaced with a fill pointer pointing to a next best remaining match, if one exists, or is deleted. Then all of the tree locations in the range of IP addresses covered by the deleted routing entry are examined. For those locations having a fill pointer to the deleted routing entry, the fill pointer is either changed to point to a next best remaining match, if one exists, or is deleted.
For example, if the routing entry 128.64.0.0/14 were deleted from the routing table of FIG. 7, the fill pointers at locations 128.65, 128.66 and 128.67 would be changed to point to the routing entry 128.64.0.0/10. If the routing entry 128.64.0.0/10 were deleted, then all of the pointers in locations 128.68 through 128.127 would be deleted. The level-2 and level-3 trees in the covered address range are also examined, and fill pointers are appropriately modified.
A level-3 tree 148 is deleted when it no longer contains any real leaf pointers, and a level-2 tree is deleted when it no longer contains any real leaf pointers or next tree pointers. When a tree is deleted, the pointers in the remaining higher level(s) are modified as necessary. For example, if the level-2 tree 146-n were deleted, the pointer at location 128.68 in the level-1 tree 144 would be modified to point directly to the entry 128.64.0.0/10, and the “next tree” bit would be set to zero.
FIG. 8 shows the structure of the forwarding table 139 of FIG. 6, which is used on each interface card 14 and 16 of FIG. 1. The forwarding table 139 is stored in the address resolution memory 52 on the DS3 card 14 of FIG. 2, and in the address resolution memory 78 on the OC3 card 16 of FIG. 3. The information in the forwarding table 139 of FIG. 8 is derived from the uncompressed tree routing table of FIG. 7 in a manner described below. The forwarding table 139 includes tree structures, and is generally smaller in size than the uncompressed tree structure of FIG. 7. For this reason the forwarding table 139 is referred to as a “compressed tree” forwarding table.
Like the uncompressed tree, the compressed tree is divided into three levels associated with IP address bits [31:16], [15:8] and [7:0] respectively. At level 1, a single tree 150 has 64K 16-bit entries. One bit of each entry is a type bit, and the remaining 15 bits form a pointer value. The pointer value for empty entries is a null value. For non-empty entries, the type bit indicates whether the pointer is a “next hop” pointer NH or a “next tree” pointer NT.
Each next hop pointer NH contains an address of an entry in the global IP interface table 141 of FIG. 6. As described above, the entries retrieved from the global IP interface table 141 are used to form the route tags 110, which in turn are used to obtain the identities of the interfaces on which received IP frames are to be forwarded to reach the desired next hop nodes. As discussed above, in alternative embodiments the pointer retrieved from the compressed tree may provide an index into another type of table to indicate other types of processing to be performed, such as QOS processing.
Each next tree pointer NT contains an index into a level-2 next tree table 152. Each entry in the level-2 next tree table 152 contains a 24-bit pointer field and an 8-bit size field. The 24-bit pointer field contains an NT pointer pointing to a level-2 compressed tree 154. Each level-2 compressed trees 154 may be either a “dense” tree holding 256 pointer entries, or a “sparse” tree holding 32 or fewer entries. The 8-bit size field indicates how many NH or NT pointers are stored in the level-2 compressed tree. The size information is used in a manner described below to retrieve pointers from the level-2 compressed trees 154.
The use of the level-2 next-tree table 152 including 24-bit NT pointers provides for a level of indirection in the accessing of level-2 compressed trees. While this indirection entails additional delay, it provides desired flexibility in the allocation of storage space within the address resolution memories 52 and 78 of FIGS. 2 and 3, as described in greater detail below.
When more than 32 next hop or next tree pointers are stored in the level-2 tree, these pointers are stored in a “dense” level-2 compressed tree 154. Each dense level-2 compressed tree 154 contains 256 16-bit entries, and each non-null entry includes a type bit and a 15-bit NH/NT pointer as in the level-1 tree 150. The entries in the dense level-2 trees 154 are retrieved by a straight decoding of IP address bits [15:8].
When 32 or fewer next hop or next tree pointers are stored in the level-2 tree, these pointers are stored in a “sparse” level-2 compressed tree 154 to conserve storage space. Each sparse level-2 tree 154 contains from 4 to 32 locations in increments of 4. Each non-null entry contains a type bit, a 15-bit NH/NT pointer, and an index tag indicating the highest value of IP address bits [15:8] for which the NT/NH pointer should be used. The entries are stored in ascending order of index tags. During a next-hop lookup, the index tags of the entries are searched in a manner described below in order to retrieve the correct NT/NH pointer based on the destination IP address of the received frame.
The NT pointers in the level-2 trees 154 point to entries in a level-3 next tree table 158 which is analogous to the level-2 next tree table 152. The NT pointers in the level-3 next tree table 158 point to level-3 compressed trees 160, which may be either dense or sparse. These trees are analogous to their level-2 counterparts 154, except that all non-null pointers in the level-3 compressed trees 160 are NH pointers, so there is no need of a type bit.
In the compressed tree structure of FIG. 8, it is possible to achieve even greater storage efficiency by taking advantage of certain partitioning of the IP address space. For example, there is a known multicast address space at IP address 224.0.0.0 and so-called “class E” address space above the multicast space. It is not necessary to allocate space in the level-1 tree 150 for these addresses, so it may be possible to reduce the size of the level-1 tree 150.
FIG. 9 shows the structure of the address resolution logic 50, 76 and the address resolution memories 52, 78 of FIGS. 2 and 3. Each address resolution logic block 50, 76 includes four ports P0 through P3. For each port there is a corresponding input FIFO 170 and output FIFO 172. The forwarding controllers 36 and 66 of FIGS. 2 and 3 write 32-bit destination IP addresses into the port input FIFOs 170 to initiate next hop lookups. The next hop index is returned in the corresponding output FIFO 172. There can be multiple lookups pending at a given time in the address resolution logic 50, 76, although each lookup is an atomic sequence that is performed to completion once begun. Lookup requests from the different ports P0 through P3 are arbitrated in a round-robin manner, and a lookup requested at a given port is performed only if there is sufficient room for the result to be stored in the output FIFO 172 for that port.
The destination IP address from a given input FIFO 170 is transferred to a key register 174 via a port multiplexer 176. A level multiplexer 178 is used to select the bits of the IP address based on the level at which the lookup is being conducted:
Level 1 2 3
IP Address [31:16] [15:8] [7:0]
The output from the level multiplexer 178 is provided to an adder 180 used to form a 24-bit address used to address the associated address resolution memory 52 or 78. This address passes through an address multiplexer 182 to a memory address register 184 connected to the address inputs of the associated memory 52 or 78.
The output from the address resolution memory 52 or 78 is provided to a small cache of level/base pointers 186 whose use is described below, and also to a small input buffer RAM 188. The output of the RAM 188 is provided to the adder 180 and to a return next hop register 190 which feeds the output FIFOs 172. The output of the RAM 188 is also provided along with the output of the level multiplexer 178 to compare logic 192, which is used by search control logic 194 to carry out searching at levels 2 and 3.
The address resolution logic 50, 76 also contains elements to enable an external device to directly read and write the address resolution memory 52, 78. This feature is used by the interface controllers 54 and 80 of FIGS. 2 and 3 to store updated compressed trees into the address resolution memories 52, 78 when they are received from the system controller 12 of FIG. 1. The elements that support this feature are an input address register 196, an input data register 198 and tri-state buffers 200, and an output register 202. The storing of updated compressed trees can be performed at the same time that searches are in progress, so that search bandwidth is not compromised by the need to update the compressed trees.
While as illustrated the address resolution logic 50, 76 contains a single search controller 194, in alternative embodiments it may be desirable to include multiple search controllers to achieve greater parallelism and thus higher lookup rates. Another alternative is to use multiple address resolution memories and associated lookup logic to achieve even greater parallelism.
FIG. 10 shows a memory map of the address resolution memories 52, 78. The first 8 Kb are used to store up to 512 16-byte level pointer blocks 210. The remainder of the 16 Mb storage space is allocated to storing compressed forwarding tables 139, each forwarding table 139 being associated with a corresponding one of the 512 level pointer blocks 210. Each level pointer block 210 contains the following items used to address the corresponding forwarding table 139: a level 1 pointer 214; a T2 base address 216; a level 2 pointer 218; a T3 base address 220; and a level 3 pointer 222. The use of these items is described below. In alternative embodiments it may be desirable to have more or less address resolution memory 52, 78, and to allocate more or less space for the storage of level pointer blocks 210.
FIG. 11 shows the manner in which the pointers in the level/base pointer block 210 are used to access entries in a forwarding table 139 during a next hop lookup. During a lookup, the level pointer block 210 is stored within the level pointer block (LPB) cache 186 of FIG. 9, and the pointers are provided to the adder 180 to calculate addresses of tree entries in the address resolution memory 52 or 78. Upon initiation of a lookup, the level pointer block 210 may already be stored in the LPB cache 186, in which case the lookup proceeds using the stored level pointer block 210. In some cases, the lookup request indicates that the level pointer block 210 should be re-read from the address resolution memory 52, 78 and stored into the LPB cache 186. The level pointer block 210 must be re-loaded, for example, whenever the corresponding forwarding table 139 has been updated by the system controller 12 of FIG. 1, and also when a lookup is being done on a different forwarding table 139 than the forwarding table 139 used for preceding lookups. In each of these cases, the lookup request contains a value indicating which one of the 512 level pointer blocks 210 should be used. The ability to select one of multiple pointer blocks 210 is a feature that enables support for multiple virtual routers. Different ones of the level pointer blocks 210 are allocated for use by different virtual routers, and each virtual router identifies the level pointer block 210 to be used for its route lookups.
At level 1 of the lookup, the level 1 pointer 214 selects the level-1 compressed tree 150 of the forwarding table 139. IP address bits [31:16] provide the index of an entry in the level-1 tree 150. The entry may be an NH pointer, in which case no further searching is required. However, if the entry is an NT pointer then further searching at level 2 is carried out.
At level 2, the NT pointer from the level-1 tree 150 is used as an index into the level-2 next tree table 152 of the forwarding table, the base of which is pointed to by the level 2 pointer 218 from the level pointer block 210. The NT pointer in the level-2 next tree table 152 is added to the T2 base address 216 from the level pointer block 210 to obtain the base address of a level-2 tree 154. The NT pointer points to a level-2 compressed tree 154. If the size is indicated to be greater than 32, then the level-2 tree 154 is a dense tree (not shown in FIG. 11), and IP address bits [15:8] are used to directly look up the level-2 NH/NT pointer. If the size is 32 or fewer, however, then the level-2 tree 154 is a sparse tree, and IP address bits [15:8] are used to conduct a search of the sparse tree 154 in a manner described below.
The entry in the level-2 tree 154 may contain an NH pointer, in which case no further searching is required. However, if the entry contains an NT pointer then further searching at level 3 is carried out. Access to level 3 of the forwarding table proceeds in a manner similar to that of level 2, using the T3 base address 220 and the level 3 pointer 222 from the level pointer block 210, the NT pointer and size retrieved from the level-2 tree 154, and the level-3 next tree table 158 and level-3 trees 160. The search key at level 3 is made up of IP address bits [7:0], and the retrieved pointer is guaranteed to be an NH pointer.
The sparse level-2 trees 154 and level-3 trees 160 are searched in the following manner. If the size of the sparse tree is sixteen or less, then a linear search of the sixteen entries is performed. The RAM 188, comparison logic 192, and search control logic 194 of FIG. 9 are configured to compare the search key to four tree entries simultaneously. As a result, a linear search of sixteen entries requires at most four memory accesses, in the case when it is necessary to examine all sixteen entries. When the tree size is between seventeen and thirty-two entries, the first step performed is comparing the search key to the thirteenth entry. If the search key is less than the thirteenth entry, then a linear search of the first thirteen entries is performed. If the search key is greater than or equal to the thirteenth entry, then a linear search of the thirteenth through thirty-second entries is performed. The first entry having an index greater than or equal to the search key is the desired entry. The pointer from this entry is the desired NH pointer or NT pointer into the next level, as dictated by the type bit of the entry.
FIGS. 12 through 14 show the manner in which the compressed tree forwarding table 139 of FIG. 8 is created from the corresponding uncompressed tree routing table of FIG. 7. FIG. 15 shows an example portion of a compressed tree forwarding table 139 as it resides within the system controller 12 during its creation. The forwarding tables 139 are re-created and distributed periodically by the system controller 12 during operation of the router 10. This calculation is done frequently so as to minimize the forwarding of frames along stale routes.
As a first step 230 in the process of FIG. 12, an entry is retrieved from the uncompressed level 1 tree 144. A convenient starting location is entry 0, which corresponds to IP address [31:16]=0.0. For each non-null entry, the NEXT TREE bit is tested at step 232. If the NEXT TREE bit is FALSE, indicating that the entry is a leaf pointer, then at step 234 an NH pointer is placed in the corresponding entry in the level-1 compressed tree 150. The NH pointer is the address of an entry in the global IP interface table 141 of FIG. 6 for the interface corresponding to the IP address stored in the level-1 routing entry 138 pointed to by the level-1 entry being processed.
If the NEXT TREE bit of the entry in the level-1 uncompressed tree 144 is TRUE, then a level 2 next tree 154 is created at step 236. This process is described below with reference to FIG. 13.
After the execution of either step 234 or step 236, it is determined in step 238 whether all of the entries from the level-1 uncompressed tree 144 have been processed. If not, the process returns to step 230 to process the next entry. Otherwise, the process of creating the compressed tree forwarding table 139 is complete.
The special pointers 149 are not traversed during the compression process. The routing entries pointed to by the special pointers 149 are also pointed to by fill leaves associated with routes in the level-2 or level-3 trees beneath the level-1 next tree entry, and thus are processed during the compression of those level-2 and/or level-3 trees.
FIG. 13 shows the process of creating a level 2 compressed tree 154. The process is a “two-pass” process, as reflected in the loops shown as steps 240 through 250 and steps 252 through 262, respectively. During the first pass, the NEXT TREE (NT) indicator is checked for each entry of the level-2 uncompressed tree 146 at step 242. If NT is TRUE, indicating that the pointer in the level-2 uncompressed tree 146 contains a NEXT TREE pointer, then at step 244 a next tree placeholder is added to a temporary list used to accumulate compressed entries during the first pass. If the NT indicator is FALSE, indicating that the entry contains a NEXT HOP (NH) pointer, then at step 246 it is determined whether the NH pointer is the same as any NH pointers already stored in the temporary list. If not, then at step 248 the NH pointer is added to the temporary list. The result of the first pass is the creation of a temporary list, which is a compressed version of the level-2 uncompressed tree 146 by virtue of containing only one copy of each distinct NH pointer.
The process then enters the second pass, in which the compressed level-2 tree 154 is actually created. At step 252, actions are taken to set up a level-2 compressed tree 154. Based on the size of the temporary list created during the first pass, it is determined whether the compressed level-2 tree to be created should be sparse or dense. If the number of entries in the temporary list is more than 32, then storage for a 256-entry dense tree 154 is allocated. Otherwise, storage for a sparse tree 154 is allocated. The storage allocated for a sparse tree 154 is the multiple of four entries that is equal to or greater than the number of entries in the temporary list. After the level-2 tree has been created, an NT entry is placed in the level-2 next tree table 152 pointing to the first entry of the newly allocated compressed level-2 tree 154. Also, an NT entry is placed in the level-1 compressed tree 150 pointing to the NT entry in the level-2 next tree table 152.
The process then proceeds to step 254, in which an entry is retrieved from the temporary list created during the first pass. At step 256 it is determined whether this is a NEXT TREE (NT) placeholder. If not (i.e., the entry is an NH pointer), then at step 258 the NH pointer is copied to the level-2 compressed tree 154. If the level-2 compressed tree being created is a dense tree, then the NH pointer is placed at the location having the same index as the NH pointer from the uncompressed tree 146. If the level-2 compressed tree being created is a sparse tree, then the NH pointer is placed in the sparse tree along with an index I indicating the largest value of IP [15:8] for which the NH pointer should be used. The entries in the sparse trees are stored in ascending order of the index values I1, I2, etc.
If in step 256 it is determined that the entry is a NEXT TREE placeholder, then the process proceeds to step 260 in which a new level-3 compressed tree 160 is set up. This process is described with reference to FIG. 14 below. After the last temporary entry has been processed as determined at step 262, the process of FIG. 13 is complete, and the process of FIG. 12 resumes at step 238.
FIG. 14 shows the process by which level-3 compressed trees 160 are created. The process is analogous to the process for level-2 next trees described above. Because in the illustrated embodiment there are no levels beyond the third level, no provision need be made for NEXT TREE entries in the third level. During a first pass from steps 264 through 270, the process creates a compressed temporary list of distinct NH pointers, and then in steps 272 through 280 creates the level-3 tree 160. As in the case of level-2 trees 146, the level-3 compressed tree created by the process of FIG. 14 may be either dense or sparse. The processing for each case is analogous to the corresponding case at level 2.
The processing shown in FIGS. 12 through 14 has a recursive nature, which is illustrated in the exemplary resulting memory map shown in FIG. 15. In memory, a single level-1 compressed tree 150 is followed by a first level-2 compressed tree 154-1, which is followed by one or more level-3 compressed trees 160-i associated with entries in the preceding level-2 compressed tree 154-1. This pattern repeats for all the level-2 and level-3 compressed trees that exist in the forwarding table. This section is followed by the level-2 next tree table 152 and the level-3 next tree table 158. After the forwarding table 139 of FIG. 15 has been created, it is distributed to the line cards 14 and 16 and used in the above-described manner to determine next hop addresses for incoming packets.
On the left in FIG. 15 are shown mnemonic labels of addresses that correspond to the pointers in the level pointer block 210. In the illustrated embodiment the T2 Base pointer 216 and T3 Base pointer 220 have the same values. In alternative embodiments it may be desirable to segregate the level-2 and level-3 trees, in which case it would be advantageous to use corresponding different values for the T2 and T3 base pointers.
While the process described with reference to FIGS. 12-15 achieves compression by virtue of eliminating redundant “next hop” information, it may be desirable in alternative embodiments to use a slightly different method of creating the compressed tree to advance other goals. For example, it may be desirable to examine pointer values and eliminate redundant pointers. In such an embodiment, there may be redundant next hop information in the compressed tree if multiple routing entries have the same next hop value. Alternatively, it may be desirable to test for other information in the routing table that is non-redundant, and to store otherwise redundant entries in the compressed table in order to capture the non-redundant information. For example, two different addresses may map to the same next hop value, but have different Quality of Service parameters. In such a case it would be useful to store different entries in the compressed tree. Although both entries would map to the same interface identifier, they would map to different sets of QOS parameters and thus result in different QOS processing.
Although in the illustrated embodiment both the compressed and uncompressed tree are divided into three levels, it may be desirable in alternative embodiments to divide these trees into different numbers of levels. In particular, it may be desirable to use more levels for network addresses that are longer than 32 bits. It may also be desirable to associate different fields of the network address with the levels of the trees. For example, in an alternative embodiment bits [31:20] might be associated with level 1, bits [19:8] with level 2, and bits [7:0] with level 3. In other alternative embodiments it may be desirable to shuffle the address fields with respect to the levels. For example it may be advantageous for level-1 to be associated with a middle address field or a lower address field rather than an upper address field.
Methods and apparatus for network routing using compressed tree forwarding tables have been described. It will be apparent to those skilled in the art that modification to and variation of the above-described methods and apparatus are possible without departing from the inventive concepts disclosed herein. Accordingly, the invention should be viewed as limited solely by the scope and spirit of the appended claims.

Claims (14)

What is claimed is:
1. Apparatus for identifying a next hop address of a network to which packets should be forwarded, the apparatus comprising a memory storing a forwarding table, the forwarding table comprising a first-level table having entries directly addressable by a first field of address bits from an address field of the packets, and a second-level table having entries associatively addressable by a second field of address bits from the address field of the packets, the first-level table being operative to provide (i) a next hop index indicative of a next hop network address for those packets having addresses for which the first field of address bits is sufficient to determine the next hop address, and (ii) a pointer to the second-level table for those packets having addresses for which the first field of address bits is not sufficient to determine the next hop address, and the second-level table being operative to provide a next hop index indicative of a next hop network address for those packets having address for which the first and second fields of address bits are sufficient to determine the next hop address.
2. Apparatus according to claim 1, wherein the forwarding table further comprises a third-level table having entries associatively addressable by a third field of address bits from the address field of the packets, and wherein the second-level table is operative to provide a pointer to the third-level table for those packets having addresses for which the first and second fields of address bits are not sufficient to determine the next hop address, and the third-level table is operative to provide a next hop index indicative of the next hop address for those packets having addresses for which the first, second and third fields of address bits are sufficient to determine the next hop address.
3. Apparatus according to claim 2, wherein the forwarding table further comprises a table at each of one or more additional levels, each table having entries associatively addressable by a corresponding additional field of address bits from the address field of the packets, wherein each table is operative to provide a pointer to the table in the next level for those packets having addresses for which the address bits from the first field through the corresponding additional field are not sufficient to determine the next hop address, and each table is operative to provide a next hop index indicative of the next hop address for those packets having addresses for which the address bits from the first field through the corresponding additional field are sufficient to determine the next hop address.
4. Apparatus according to claim 1, wherein the second-level table is a sparse second-level table containing fewer entries than the number of unique values of the second field of the address, and wherein the forwarding table further comprises a dense second-level table being directly addressable by the second field of address bits from the address field of the packets, and wherein (i) the first-level table is operative to selectively provide pointers to the sparse and dense second-level tables based on the first field of the address field of the packets, (ii) the sparse second-level table provides a next hop index indicative of the next hop address when a pointer to the sparse second-level table is provided by the first-level table for a given packet, and (iii) the dense second-level table provides a next hop index indicative of the next hop address when a pointer to the dense second-level table is provided by the first-level table for a given packet.
5. Apparatus according to claim 4, wherein the number of storage locations in the dense second-level table is equal to the number of unique values of the second address field, the number of pointers stored in the dense second-level table is greater than or equal to a first number substantially smaller than the number of unique values of the second address field, the number of pointers stored in the sparse second-level table is less than the first number, and the number of storage locations in the sparse second-level table is the smallest multiple of a storage block size that is sufficient to store the number of pointers stored in the sparse second-level table.
6. Apparatus according to claim 5, wherein the number of unique values of the second address field is 256 and the first number is 32.
7. Apparatus according to claim 1, wherein the forwarding table further comprises a third-level table having entries associatively addressable by a third field of address bits from the address field of the packets, and wherein one of the second-level tables is operative to provide a pointer to the third-level table for those packets having addresses for which the first and second fields of address bits are not sufficient to determine the next hop address, and the third-level table is operative to provide a next hop index indicative of the next hop address for those packets having addresses for which the first, second and third fields of address bits are sufficient to determine the next hop address.
8. Apparatus according to claim 1, wherein the forwarding table further comprises additional second-level tables each having entries associatively addressable by the second field of address bits from the address field of the packets, and wherein the first-level table is operative to selectively provide pointers to the different second-level tables based on the first field of the address field of the packets, and each second-level table provides a next hop index indicative of the next hop address when a corresponding pointer to the respective second-level table is provided by the first-level table for a given packet.
9. Apparatus according to claim 8, wherein the forwarding table further comprises a mapping table operative to map each pointer in the first-level table to a corresponding second-level table.
10. A method of operating a network device, comprising the steps of:
establishing and maintaining an uncompressed multi-level tree routing table, each level of the routing table containing at least one table directly addressable by a corresponding field of an address field of received packets, each table being operative to provide a pointer indicative of an address of a next hop network to which packets are to be forwarded, the number of unique pointer values in each table being substantially less than the number of pointers in the table; and
periodically creating an updated compressed multi-level tree forwarding table from the uncompressed routing table and distributing the updated forwarding table to forwarding controllers within the network device for use by the forwarding controllers in routing packets received by the network device, the compressed forwarding table containing at least one table at each of one or more levels, each table reflecting the same forwarding information as a counterpart table of the uncompressed routing table using a number of pointers substantially equal to the number of unique pointer values.
11. Apparatus used to determine next hop addresses of networks to which data packets are to be forwarded, each data packet including an address field containing an address indicative of a network node to which the packet is ultimately to be delivered, the apparatus including memory storing a data structure, the data structure comprising:
a plurality of routing entries, each routing entry containing a key address, a subnet mask value, and a next hop address which is the address of a network to which packets whose address matches the key address in a number of most-significant bit positions indicated by the subnet mask value are to be forwarded, the routing entries being divided into at least two classes according to subnet mask values such that a first class of routing entries includes level-1 routing entries whose subnet mask values are no more than a first number, and a second class of routing entries include level-2 routing entries whose subnet mask values are greater than the first number and no more than the sum of the first number and a second number, the level-2 routing entries being further divided into groups such that the key addresses of the routing entries within each group match each other in the first number of most significant bit positions; and
a plurality of pointers, the pointers being associated with addresses of packets and being divided into at least two classes according to fields of the addresses with which the pointers are associated, a first class of pointers being level-1 pointers associated with a first field containing the first number of the most significant address bits of the address, and a second class of pointers being level-2 pointers associated with a second sub-field containing the second number of the next most significant address bits of the address, the level-1 pointers being arranged in a level-1 tree indexed by the first field of the address, the level-2 pointers being divided into a plurality of level-2 trees according to groups of the level-2 routing entries with which the level-2 pointers are associated, each level-2 tree being indexed by the second field of the address, the pointers at both the first and second level including real leaf pointers and fill leaf pointers, each real leaf pointer pointing to an associated routing entry having a key address value equal to the index of the pointer in the data structure, each fill leaf pointer pointing to an associated routing entry whose key address value best matches the index of the fill leaf pointer based on the value of the subnet mask, the pointers at the first level including next tree pointers each pointing to a corresponding level-2 tree containing a pointer to a routing entry whose key address is equal to the index of the next tree pointer in the data structure.
12. Apparatus used to determine the addresses of next hop networks to which data packets are to be forwarded, each data packet including an address field having an address indicative of a network to which the packet is ultimately to be delivered, the apparatus including a memory storing a data structure, the data structure comprising a plurality of pointers, the pointers being associated with addresses of packets and being divided into two or more classes according to fields of the addresses with which the pointers are associated, a first class of pointers being level-1 pointers associated with a first field containing a first number of the most significant address bits of the address, the level-1 pointers being arranged in a level-1 binary tree indexed by the first field of the address, a second class of pointers being level-2 pointers associated with a second sub-field containing a second number of the next most significant address bits of the address, the level-2 pointers being divided into a plurality of level-2 binary trees each being indexed by the second field of the address, the level-1 pointers including next hop pointers and next tree pointers, each next hop pointer identifying the address of a network to which packets having an address whose first field is equal to the index of the next hop pointer in the level-1 binary tree should be forwarded, and each next tree pointer identifying a level-2 binary tree which should be used to determine the address of a network to which packets having an address whose first field is equal to the index of the next tree pointer in the level-1 binary tree should be forwarded, each level-2 binary tree including next hop pointers each identifying the address of a network to which packets having an address whose second field is equal to the index of the next hop pointer in the level-2 binary tree and whose first field is equal to the index of the next tree pointer in the level-1 binary tree that identifies the level-2 tree containing the next hop pointer should be forwarded.
13. A method of operating a network device, comprising the steps of:
establishing and maintaining at a centralized controller within the network device a multi-level tree routing table, each level of the routing table containing one or more binary trees indexed by a corresponding field of an address field of received packets, each location in each binary tree containing a pointer to a routing entry indicating the address of a next hop network to which packets whose address contains the index value of the pointer are to be routed, the number of routing entries associated with each binary tree being generally being less than the number of pointers, so that in general multiple pointers in a given binary tree point to the same routing entry; and
periodically creating an updated compressed multi-level tree forwarding table from the uncompressed routing table and distributing the updated forwarding table to forwarding controllers within the network device for use by the forwarding controllers in routing packets received by the network device, the compressed forwarding table containing binary trees at one or more levels, each binary tree reflecting the same forwarding information as a counterpart binary tree of the routing table using a number of pointers substantially equal to the number of unique routing entries associated with the counterpart binary tree.
14. Apparatus used to determine the addresses of next hop networks to which data packets are to be forwarded, comprising:
a memory for storing a plurality of level pointer blocks and a plurality of forwarding tables, each forwarding table containing data structures associated with values of one or more fields of the address field of the data packets, the data structures containing entries identifying the addresses of next hop networks to which data packets having address sub-fields containing values associated with the data structures are to be forwarded, and each level pointer block being associated with a corresponding different one of the forwarding tables and containing pointers identifying the data structures within the associated forwarding table;
one or more input buffers operative to receive next hop address lookup requests, each lookup request containing an address and an identifier of a level pointer block to be used in performing the lookup;
selection logic coupled to the input buffers, the selection logic being operative to select among the following: (i) the lookup requests in the different input buffers, (ii) the address and the level pointer block identifier contained in each request, and (iii) the fields of the address contained in each request;
a cache coupled to the memory, the cache being operative to store for the duration of a lookup a level pointer block retrieved from the memory upon the initiation of the lookup;
a memory input buffer coupled to the memory, the memory input buffer being operative to store a plurality of forwarding table data structure entries retrieved from the memory during a lookup;
addressing logic having inputs coupled to the selection logic, the cache, and the memory input buffer, the addressing logic being operative to calculate the addresses of level pointer blocks within the memory and the addresses of forwarding table data structure entries within the memory based on (i) values selected by the selection logic, (ii) values stored in the cache, and (iii) values stored in the memory input buffer, the addressing logic also being operative to provide the calculated addresses to the memory in order to retrieve level pointer blocks and forwarding tables therefrom;
comparison logic having inputs coupled to the selection logic and the memory input buffer, the comparison logic being operative during a lookup to compare a value selected by the selection logic to one or more forwarding table data structure entries stored in the memory input buffer; and
one or more output buffers coupled to the memory input buffer, each output buffer being associated with a corresponding input buffer, each output buffer being operative to store the results of lookups whose requests are received in the associated input buffer and to provide the results as responses to the lookup requests, the result of each lookup including a next hop address from a selected forwarding table data structure entry stored in the memory output buffer, the selected entry being the entry indicated by the comparison logic as matching the value selected by the selection logic.
US09/259,064 1999-02-26 1999-02-26 Network router search engine using compressed tree forwarding table Expired - Lifetime US6192051B1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US09/259,064 US6192051B1 (en) 1999-02-26 1999-02-26 Network router search engine using compressed tree forwarding table
AU37050/00A AU759929B2 (en) 1999-02-26 2000-02-23 Network router search engine using compressed tree forwarding table
EP00915846.0A EP1155537B1 (en) 1999-02-26 2000-02-23 Network router search engine using compressed tree forwarding table
CNB008043396A CN1148917C (en) 1999-02-26 2000-02-23 Network router search engine using compressed tree forwarding table
IL14479500A IL144795A0 (en) 1999-02-26 2000-02-23 Network router search engine using compressed tree forwarding table
PCT/US2000/004593 WO2000051298A1 (en) 1999-02-26 2000-02-23 Network router search engine using compressed tree forwarding table
CA002363963A CA2363963C (en) 1999-02-26 2000-02-23 Network router search engine using compressed tree forwarding table

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/259,064 US6192051B1 (en) 1999-02-26 1999-02-26 Network router search engine using compressed tree forwarding table

Publications (1)

Publication Number Publication Date
US6192051B1 true US6192051B1 (en) 2001-02-20

Family

ID=22983357

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/259,064 Expired - Lifetime US6192051B1 (en) 1999-02-26 1999-02-26 Network router search engine using compressed tree forwarding table

Country Status (7)

Country Link
US (1) US6192051B1 (en)
EP (1) EP1155537B1 (en)
CN (1) CN1148917C (en)
AU (1) AU759929B2 (en)
CA (1) CA2363963C (en)
IL (1) IL144795A0 (en)
WO (1) WO2000051298A1 (en)

Cited By (334)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6262982B1 (en) * 1996-11-12 2001-07-17 Starguide Digital Networks, Inc. High bandwidth broadcast system having localized multicast access to broadcast content
US6308219B1 (en) * 1998-07-31 2001-10-23 Cisco Technology, Inc. Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks
US20010037387A1 (en) * 2000-03-21 2001-11-01 F5 Networks, Inc., Method and system for optimizing a network by independently scaling control segments and data flow
US6320848B1 (en) * 1998-05-01 2001-11-20 Hewlett-Packard Company Methods of altering dynamic decision trees
US20010055380A1 (en) * 2000-04-21 2001-12-27 Benedyk Robby Darren Methods and systems for providing dynamic routing key registration
US20020023089A1 (en) * 2000-02-24 2002-02-21 Woo Thomas Y. Modular packet classification
US20020023152A1 (en) * 2000-04-04 2002-02-21 Naoki Oguchi Communication data relay system
US6385649B1 (en) * 1998-11-06 2002-05-07 Microsoft Corporation Routers and methods for optimal routing table compression
US20020075874A1 (en) * 2000-12-15 2002-06-20 Takahiro Yamashita Datagram transmission device
US20020091856A1 (en) * 2000-12-27 2002-07-11 Mosaid Technologies Default route coding
US20020089937A1 (en) * 2000-11-16 2002-07-11 Srinivasan Venkatachary Packet matching method and system
WO2002058340A1 (en) * 2001-01-22 2002-07-25 Tut Systems, Inc. A method for using a balanced tree as a base for a routing table
US20020138618A1 (en) * 2000-03-21 2002-09-26 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US6463067B1 (en) * 1999-12-13 2002-10-08 Ascend Communications, Inc. Submission and response architecture for route lookup and packet classification requests
US20020161920A1 (en) * 2001-04-19 2002-10-31 International Business Machines Corporation Router search system, router search method and router search program
US20020161823A1 (en) * 2001-04-25 2002-10-31 Fabio Casati Dynamically defining workflow processes using generic nodes
US6496510B1 (en) * 1997-11-14 2002-12-17 Hitachi, Ltd. Scalable cluster-type router device and configuring method thereof
US20030009584A1 (en) * 2001-06-20 2003-01-09 International Business Machines Corporation Robust NP-based data forwarding techniques that tolerate failure of control-based applications
US20030033428A1 (en) * 2001-08-13 2003-02-13 Satyendra Yadav Apparatus and method for scalable server load balancing
KR20030018269A (en) * 2001-08-27 2003-03-06 한국전자통신연구원 Apparatus of IP lookup using cache forwarding table in router system, its method
US6549521B1 (en) 1998-05-01 2003-04-15 Hewlett-Packard Company Methods of managing dynamic decision trees
US20030088539A1 (en) * 2001-11-05 2003-05-08 Andrus Don Nielsen Method and apparatus for preferred roaming list compression
US20030091043A1 (en) * 2001-07-31 2003-05-15 Pronita Mehrotra Methods and systems for fast packet forwarding
US6574215B2 (en) * 1998-07-28 2003-06-03 Siemens Aktiengesellschaft Method for transmitting data packets to a number of receivers in a heterogeneous communications network
US6574195B2 (en) * 2000-04-19 2003-06-03 Caspian Networks, Inc. Micro-flow management
US6581106B1 (en) * 2000-01-13 2003-06-17 Pierluigi Crescenzi Fast address lookup in routing tables
US20030137974A1 (en) * 2002-01-24 2003-07-24 Connie Kwan Method for distributing aggregate route information
US6615336B1 (en) * 1999-07-16 2003-09-02 Via Technologies, Inc. Method for performing a medium access control address lookup in a network switch of an ethernet network
WO2003075527A1 (en) * 2002-03-04 2003-09-12 Operax Ab A method for providing topology awareness information within an ip network
US6628623B1 (en) * 1999-05-24 2003-09-30 3Com Corporation Methods and systems for determining switch connection topology on ethernet LANs
US6643269B1 (en) * 2000-03-03 2003-11-04 Luminous Networks, Inc. Routing switch automatically identifying network topology
US6643706B1 (en) * 1999-06-29 2003-11-04 Cisco Technology, Inc. Scaleable route redistribution mechanism
US20030210688A1 (en) * 2002-05-13 2003-11-13 International Business Machines Corporation Logically grouping physical ports into logical interfaces to expand bandwidth
US20030223418A1 (en) * 2002-06-04 2003-12-04 Sachin Desai Network packet steering
US20030223361A1 (en) * 2002-06-04 2003-12-04 Zahid Hussain System and method for hierarchical metering in a virtual router based network switch
US6678274B1 (en) * 1999-07-30 2004-01-13 Riverstone Networks, Inc. Method and system for managing forwarding tables
US20040013120A1 (en) * 2002-07-20 2004-01-22 Naiming Shen Method and apparatus for routing and forwarding between virtual routers within a single network element
US6697380B1 (en) * 1999-12-07 2004-02-24 Advanced Micro Devices, Inc. Multiple key lookup arrangement for a shared switching logic address table in a network switch
US6697873B1 (en) * 1999-12-20 2004-02-24 Zarlink Semiconductor V.N., Inc. High speed MAC address search engine
US6697363B1 (en) * 2000-06-28 2004-02-24 Alcatel Canada Inc. Method and apparatus for longest matching prefix determination in a communication network
KR100421414B1 (en) * 2001-07-23 2004-03-09 한국전자통신연구원 Method for searching and updating using node structure of multiway search tree
US6711153B1 (en) * 1999-12-13 2004-03-23 Ascend Communications, Inc. Route lookup engine
US20040078621A1 (en) * 2002-08-29 2004-04-22 Cosine Communications, Inc. System and method for virtual router failover in a network routing system
US20040095934A1 (en) * 2002-11-18 2004-05-20 Cosine Communications, Inc. System and method for hardware accelerated packet multicast in a virtual routing system
US20040100960A1 (en) * 2002-11-22 2004-05-27 Mehta Ashish K. Method and apparatus for performing an address lookup using a multi-bit trie with backtracking
US20040136407A1 (en) * 2002-07-23 2004-07-15 Nec Corporation Address retrieval apparatus
US6772220B1 (en) * 1999-09-29 2004-08-03 International Business Machines Corporation Next hop command level addressing and routing
US20040153573A1 (en) * 2003-01-30 2004-08-05 Byoung-Chul Kim Distributed router for dynamically managing forwarding information and method thereof
US6775284B1 (en) * 2000-01-07 2004-08-10 International Business Machines Corporation Method and system for frame and protocol classification
US6788695B1 (en) * 1999-08-23 2004-09-07 Nec Corporation System and method capable of carrying out high-speed IP routing by the use of a binary tree comprising a reduced number of nodes
US20040179555A1 (en) * 2003-03-11 2004-09-16 Cisco Technology, Inc. System and method for compressing data in a communications environment
US20040193619A1 (en) * 2003-03-28 2004-09-30 Srinivasan Venkatachary System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size
US20040205234A1 (en) * 2000-08-22 2004-10-14 Craig Barrack High-speed MAC address search engine
US6810042B1 (en) * 1999-01-04 2004-10-26 Cisco Technology, Inc. Method of queuing traffic to many destinations covering a wide range of transmission speeds while minimizing buffer size
US20040213168A1 (en) * 2001-09-06 2004-10-28 Ghi-Birm Byun Method for generating casting path among participants for multicasting
US6813645B1 (en) * 2000-05-24 2004-11-02 Hewlett-Packard Development Company, L.P. System and method for determining a customer associated with a range of IP addresses by employing a configurable rule engine with IP address range matching
US20040230696A1 (en) * 2003-05-15 2004-11-18 Barach David Richard Bounded index extensible hash-based IPv6 address lookup method
US20040249803A1 (en) * 2003-06-05 2004-12-09 Srinivasan Vankatachary Architecture for network search engines with fixed latency, high capacity, and high throughput
US20040260814A1 (en) * 2003-06-18 2004-12-23 Utah State University Efficient unicast-based multicast tree construction and maintenance for multimedia transmission
US20050018683A1 (en) * 2003-07-21 2005-01-27 Zhao Yigiang Q. IP address storage technique for longest prefix match
US20050038907A1 (en) * 2003-08-14 2005-02-17 Roeder Michael T. Routing cache management with route fragmentation
US20050055457A1 (en) * 2003-09-10 2005-03-10 Samsung Electronics Co., Ltd. Apparatus and method for performing high-speed lookups in a routing table
US20050071501A1 (en) * 2000-05-22 2005-03-31 Broadcom Corporation Method and apparatus for performing a binary search on an expanded tree
US20050149600A1 (en) * 2003-12-17 2005-07-07 International Business Machines Corporation Method, system and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US20050195812A1 (en) * 2004-03-05 2005-09-08 Samsung Electronics Co., Ltd. Apparatus and method for performing forwarding table searches using consecutive symbols tables
US20050195831A1 (en) * 2004-03-05 2005-09-08 Samsung Electronics Co., Ltd. Apparatus and method for forwarding mixed data packet types in a high-speed router
US6954459B1 (en) * 2000-06-16 2005-10-11 International Business Machines Corporation Method for forwarding broadcast packets in a bridged IP network
US20050232278A1 (en) * 2000-02-09 2005-10-20 Brookline Flolmstead Llc System and method for distributing addresses
US20050237938A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Method and system for compressing multi-field rule specifications
US20050237939A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Method and system for managing multi-field classification rules relating to ingress contexts and egress contexts
US20050240604A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Method and system for compressing a search tree structure used in rule classification
US20050265341A1 (en) * 1998-12-04 2005-12-01 Tekelec Methods and systems for communicating SS7 messages over packet-based network using transport adapter layer interface
US6985963B1 (en) * 2000-08-23 2006-01-10 At Home Corporation Sharing IP network resources
US20060013264A1 (en) * 2004-07-14 2006-01-19 Tekelec Methods and systems for auto-correlating message transfer part (MTP) priority and internet protocol (IP) type of service in converged networks
US20060023724A1 (en) * 2004-08-02 2006-02-02 Jing Na Forwarding database in a network switch device
US7007101B1 (en) * 2001-11-09 2006-02-28 Radisys Microware Communications Software Division, Inc. Routing and forwarding table management for network processor architectures
US7007100B1 (en) * 2000-12-20 2006-02-28 Nortel Networks Limited Method for synchronization of multicast routing table changes with a plurality of multicast routing protocols
US20060047997A1 (en) * 2004-08-30 2006-03-02 Mendocino Software, Inc. Systems and methods for event driven recovery management
US20060047714A1 (en) * 2004-08-30 2006-03-02 Mendocino Software, Inc. Systems and methods for rapid presentation of historical views of stored data
US7009974B1 (en) * 2001-04-18 2006-03-07 Force10 Networks, Inc. Method and apparatus for updating addresses in network processing device
US20060062253A1 (en) * 2004-09-21 2006-03-23 Cisco Technology, Inc. System and method for multiplexing, fragmenting, and interleaving in a communications environment
US7035256B1 (en) * 2001-10-31 2006-04-25 Redback Networks Inc. Method and apparatus for a routing information base
US7058724B1 (en) * 2001-11-02 2006-06-06 Cisco Technology, Inc. Arrangement for routing a received signaling message based on a selected summary route in an SS7 network
US7111071B1 (en) * 2000-06-29 2006-09-19 Intel Corporation Longest prefix match for IP routers
US20060212598A1 (en) * 2005-03-18 2006-09-21 Fujitsu Limited Frame transfer method and apparatus
US20060215635A1 (en) * 2005-03-28 2006-09-28 Cisco Technology, Inc. System and method for implementing dynamic suppression and recreation of suppressed data in a communications environment
US20060221975A1 (en) * 2005-04-05 2006-10-05 Alton Lo Transporting multicast over MPLS backbone using virtual interfaces to perform reverse-path forwarding checks
US20060251063A1 (en) * 2005-05-03 2006-11-09 Cisco Technology, Inc. System and method for implementing suppression in a communications environment
US20060265519A1 (en) * 2001-06-28 2006-11-23 Fortinet, Inc. Identifying nodes in a ring network
US20060268761A1 (en) * 2005-05-24 2006-11-30 Cisco Technology, Inc. System and method for determining whether to dynamically suppress data in a communications environment
US20060282438A1 (en) * 2005-06-10 2006-12-14 Microsoft Corporation Performing a deletion of a node in a tree data storage structure
US20070002788A1 (en) * 2005-07-01 2007-01-04 Cisco Technology, Inc. System and method for implementing quality of service in a backhaul communications environment
US7177311B1 (en) 2002-06-04 2007-02-13 Fortinet, Inc. System and method for routing traffic through a virtual router-based network switch
US7184437B1 (en) * 2002-07-17 2007-02-27 Juniper Networks, Inc. Scalable route resolution
US20070047463A1 (en) * 2005-08-23 2007-03-01 Jarvis Neil Alasdair J Method of constructing a forwarding database for a data communications network
US20070047462A1 (en) * 2005-08-23 2007-03-01 Collins Matthew J Method and apparatus for constructing a forwarding database for a data communications network
US7187694B1 (en) 2002-03-29 2007-03-06 Pmc-Sierra, Inc. Generic packet parser
US7190696B1 (en) * 2002-03-05 2007-03-13 Force10 Networks, Inc. System and method for distributing packets among a plurality of paths to a destination
US20070058539A1 (en) * 2005-08-17 2007-03-15 Cisco Technology, Inc. System and method for implementing suppression for asynchronous transfer mode (ATM) adaptation layer 2 (AAL2) traffic in a communications environment
US20070086480A1 (en) * 1999-07-30 2007-04-19 Uri Elzur Associating a packet with a flow
US20070091899A1 (en) * 2005-10-21 2007-04-26 Cisco Technology, Inc., A California Corporation Data structure for storing and accessing multiple independent sets of forwarding information
US20070109959A1 (en) * 2005-11-16 2007-05-17 Cisco Technology, Inc. System and method for synchronizing a back-up device in a communications environment
US7221684B1 (en) 2002-01-08 2007-05-22 Cisco Technology, Inc. Increasing network efficiency using packet compression and decompression
US20070115979A1 (en) * 2004-11-18 2007-05-24 Fortinet, Inc. Method and apparatus for managing subscriber profiles
US20070121579A1 (en) * 2000-09-13 2007-05-31 Fortinet, Inc. Packet routing system and method
US20070159967A1 (en) * 2006-01-12 2007-07-12 Cisco Technology, Inc. System and method for implementing a preemptive retransmit for error recovery in a communications environment
US20070171825A1 (en) * 2006-01-20 2007-07-26 Anagran, Inc. System, method, and computer program product for IP flow routing
US20070171826A1 (en) * 2006-01-20 2007-07-26 Anagran, Inc. System, method, and computer program product for controlling output port utilization
US20070217346A1 (en) * 2006-03-16 2007-09-20 Samsung Electronics Co., Ltd. Tree-guided distributed link state routing method
US20070217415A1 (en) * 2006-03-16 2007-09-20 Ijsbrand Wijnands System and method for implementing multicast over a label-switched core network
US20070263619A1 (en) * 2006-05-12 2007-11-15 Munoz Robert J Methods and Apparatus for Performing Network Operations in Network Devices
US20080025313A1 (en) * 1998-12-21 2008-01-31 Xiaolin Lu Communication network apparatus and method
US20080031131A1 (en) * 2006-08-04 2008-02-07 Bordonaro Frank G System and method for detecting and regulating congestion in a communications environment
US7330467B2 (en) 2003-03-26 2008-02-12 Altera Corporation System and method for centralized, intelligent proxy driver for a switch fabric
US7340535B1 (en) 2002-06-04 2008-03-04 Fortinet, Inc. System and method for controlling routing in a virtual router system
US20080075115A1 (en) * 2000-06-01 2008-03-27 Tekelec Methods and systems for providing converged network management functionality in a gateway routing node
US7363316B2 (en) 2004-08-30 2008-04-22 Mendocino Software, Inc. Systems and methods for organizing and mapping data
US7362721B1 (en) 2004-07-28 2008-04-22 Cisco Technology, Inc. System and method for providing fault and error tolerant communications in a network environment
US7372843B1 (en) 2003-09-23 2008-05-13 Cisco Technology, Inc. System and method for compressing information flows in a network environment
US7376125B1 (en) 2002-06-04 2008-05-20 Fortinet, Inc. Service processing switch
US20080118007A1 (en) * 2006-11-16 2008-05-22 Cisco Technology, Inc. System and Method for Mitigating the Effects of Bit Insertion in a Communications Environment
US20080117917A1 (en) * 2004-11-18 2008-05-22 Fortinet, Inc. Method and apparatus for managing subscriber profiles
US20080123679A1 (en) * 2003-11-19 2008-05-29 Cray Inc. Routing table architecture
US7389360B1 (en) * 2001-11-05 2008-06-17 Juniper Networks, Inc. Context switched route lookup key engine
EP1944926A2 (en) 2007-01-08 2008-07-16 Industrial Technology Research Institute Method and system for network data trasmitting
US7444398B1 (en) 2000-09-13 2008-10-28 Fortinet, Inc. System and method for delivering security services
US7457315B1 (en) 2003-12-23 2008-11-25 Cisco Technology, Inc. System and method for compressing information in a communications environment
US7460516B1 (en) 2003-07-30 2008-12-02 Cisco Technology, Inc. System and method for compressing communication flows in a network environment
US20090044066A1 (en) * 2007-08-07 2009-02-12 Cisco Technology, Inc. System and Method for Implementing a Subrate Recovery for Lost Packets in a Communications Environment
US7539744B2 (en) 2000-09-13 2009-05-26 Fortinet, Inc. Network operating system for maintaining redundant master control blade management information
US7564381B1 (en) 2004-02-16 2009-07-21 Cisco Technology, Inc. System and method for code-based compression in a communications environment
US7571156B1 (en) 2003-03-28 2009-08-04 Netlogic Microsystems, Inc. Network device, storage medium and methods for incrementally updating a forwarding database
US7590070B1 (en) 2004-02-03 2009-09-15 Cisco Technology, Inc. System and method for discretionary multiplexing and compressing in a communications environment
US20090248697A1 (en) * 2008-03-31 2009-10-01 Richardson David R Cache optimization
US20090248858A1 (en) * 2008-03-31 2009-10-01 Swaminathan Sivasubramanian Content management
US7599371B1 (en) 2004-06-09 2009-10-06 Cisco Technology, Inc. System and method for optimizing data transport in a communications system
US20100005158A1 (en) * 2008-07-03 2010-01-07 Teemu Ilmari Savolainen Network address assignment
US20100008233A1 (en) * 2008-07-10 2010-01-14 Cheng Tien Ee Methods and apparatus to deploy and monitor network layer functionalities
US7694068B1 (en) 2005-12-08 2010-04-06 Netlogic Microsystems, Inc. Re-entrant processing in a content addressable memory
US7733793B1 (en) 2003-12-10 2010-06-08 Cisco Technology, Inc. System and method for suppressing silence data in a network environment
US7764673B1 (en) 2004-08-04 2010-07-27 Cisco Technology, Inc. System and method for implementing a variable size codebook for compression in a communications environment
US7787466B1 (en) * 2002-01-02 2010-08-31 Juniper Networks, Inc. Nexthop to a forwarding table
US7830873B1 (en) * 2007-01-09 2010-11-09 Marvell Israel (M.I.S.L.) Ltd. Implementation of distributed traffic rate limiters
US7839889B2 (en) 1998-12-04 2010-11-23 Tekelec Methods and systems for communicating signaling system 7 (SS7) user part messages among SS7 signaling points (SPs) and internet protocol (IP) nodes using signal transfer points (STPs)
US20100296517A1 (en) * 2001-10-19 2010-11-25 Juniper Networks, Inc. Network routing using indirect next hop data
US20110023117A1 (en) * 1997-03-05 2011-01-27 Brown Ralph W Method and System for Restricting Access to User Resources
US20110029642A1 (en) * 1997-03-05 2011-02-03 Medin Milo S Delivering Multimedia Services
US20110032942A1 (en) * 2000-09-13 2011-02-10 Fortinet, Inc. Fast path complex flow processing
US20110044351A1 (en) * 2009-08-19 2011-02-24 Brocade Communications Systems, Inc. Techniques for efficiently updating routing information upon shortest path tree computation
US7904642B1 (en) 2007-02-08 2011-03-08 Netlogic Microsystems, Inc. Method for combining and storing access control lists
US7903666B1 (en) * 2008-03-31 2011-03-08 Extreme Networks, Inc. Method and system for compressing route entries in a route table based on equal-cost multi-paths (ECMPs) matches
US7913060B2 (en) 2000-06-21 2011-03-22 SAtech Group, A.B. Limited Liability Company Method and apparatus for physical width expansion of a longest prefix match lookup table
US20110069706A1 (en) * 2009-09-21 2011-03-24 Brocade Communications Systems, Inc. Techniques for next-hop optimization
US20110072157A1 (en) * 2008-05-29 2011-03-24 Ya Liu Method, device, and communications system for managing querying mapping information
US20110109643A1 (en) * 2009-03-24 2011-05-12 Amazon Technologies, Inc. Monitoring web site content
US7944823B1 (en) 2006-09-01 2011-05-17 Cisco Technology, Inc. System and method for addressing dynamic congestion abatement for GSM suppression/compression
US20110122872A1 (en) * 2004-09-24 2011-05-26 Fortinet, Inc. Scalable ip-services enabled multicast forwarding with efficient resource utilization
US20110149965A1 (en) * 2009-12-17 2011-06-23 Judge Alan M Distributed routing architecture
US20110149963A1 (en) * 2009-12-17 2011-06-23 Hamilton James R Distributed routing architecture
US20110149964A1 (en) * 2009-12-17 2011-06-23 Judge Alan M Distributed routing architecture
US20110176552A1 (en) * 2000-09-13 2011-07-21 Fortinet, Inc. Managing interworking communications protocols
US20110219086A1 (en) * 2006-03-01 2011-09-08 Fortinet, Inc. Electronic message and data tracking system
US20110235649A1 (en) * 2003-08-27 2011-09-29 Fortinet, Inc. Heterogeneous media packet bridging
US8045565B1 (en) 2001-11-20 2011-10-25 Brookline Flolmstead Llc Method and apparatus for an environmentally hardened ethernet network system
USRE43163E1 (en) 1999-05-14 2012-02-07 Brookline Flolmstead Llc High-speed network of independently linked nodes
US20120127996A1 (en) * 2010-11-19 2012-05-24 Grosser Donald B Methods, systems, and computer readable media for next hop scaling
US20120127999A1 (en) * 2010-11-19 2012-05-24 Grosser Jr Donald B Methods, systems, and computer readable media for next hop scaling with link aggregation
WO2012068579A2 (en) 2010-11-19 2012-05-24 Extreme Networks, Inc. Methods, systems, and computer readable media for next hop scaling with link aggregation
US8250357B2 (en) 2000-09-13 2012-08-21 Fortinet, Inc. Tunnel interface for securing traffic over a network
US8275874B2 (en) 2008-03-31 2012-09-25 Amazon Technologies, Inc. Locality based content distribution
US8286176B1 (en) 2008-09-29 2012-10-09 Amazon Technologies, Inc. Optimizing resource configurations
US8296429B2 (en) 2008-09-29 2012-10-23 Amazon Technologies, Inc. Optimizing content management
US8300824B1 (en) 2004-04-08 2012-10-30 Cisco Technology, Inc. System and method for encrypting data using a cipher text in a communications environment
US8301748B2 (en) 2008-11-17 2012-10-30 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8301778B2 (en) 2008-11-17 2012-10-30 Amazon Technologies, Inc. Service provider registration by a content broker
US8307078B2 (en) 2008-09-29 2012-11-06 Amazon Technologies, Inc. Service provider optimization of content management
US8321588B2 (en) 2008-11-17 2012-11-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8320279B2 (en) 2000-09-13 2012-11-27 Fortinet, Inc. Managing and provisioning virtual routers
US20120320067A1 (en) * 2011-06-17 2012-12-20 Konstantine Iourcha Real time on-chip texture decompression using shader processors
US20130016723A1 (en) * 2011-07-14 2013-01-17 Carmi Arad Scaling of virtual machine addresses in datacenters
US8386596B2 (en) 2008-03-31 2013-02-26 Amazon Technologies, Inc. Request routing based on class
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8423667B2 (en) 2008-11-17 2013-04-16 Amazon Technologies, Inc. Updating routing information based on client location
US8429265B2 (en) 2008-09-29 2013-04-23 Amazon Technologies, Inc. Managing resource consolidation configurations
US8438330B2 (en) 2010-05-17 2013-05-07 Netlogic Microsystems, Inc. Updating cam arrays using prefix length distribution prediction
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US8452870B2 (en) 2008-09-29 2013-05-28 Amazon Technologies, Inc. Monitoring domain allocation performance
US8458250B2 (en) 2008-06-30 2013-06-04 Amazon Technologies, Inc. Request routing using network computing components
US8463877B1 (en) 2009-03-27 2013-06-11 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularitiy information
US8463909B1 (en) 2010-09-15 2013-06-11 F5 Networks, Inc. Systems and methods for managing server resources
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8489737B2 (en) 2008-09-29 2013-07-16 Amazon Technologies, Inc. Monitoring performance and operation of data exchanges
US8503464B2 (en) 2011-05-20 2013-08-06 Brocade Communications Systems, Inc. Techniques for efficiently updating routing information
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8543702B1 (en) 2009-06-16 2013-09-24 Amazon Technologies, Inc. Managing resources using resource expiration data
US8566444B1 (en) 2008-10-30 2013-10-22 F5 Networks, Inc. Methods and system for simultaneous multiple rules checking
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8583776B2 (en) 2008-11-17 2013-11-12 Amazon Technologies, Inc. Managing content delivery network service providers
US8601090B1 (en) * 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
US8627467B2 (en) 2011-01-14 2014-01-07 F5 Networks, Inc. System and method for selectively storing web objects in a cache memory based on policy decisions
US8630174B1 (en) 2010-09-14 2014-01-14 F5 Networks, Inc. System and method for post shaping TCP packetization
US8699484B2 (en) 2010-05-24 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to route packets in a network
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8767734B1 (en) * 2008-10-07 2014-07-01 BCK Networks, Inc. Stream basis set division multiplexing
US8788671B2 (en) 2008-11-17 2014-07-22 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8806053B1 (en) 2008-04-29 2014-08-12 F5 Networks, Inc. Methods and systems for optimizing network traffic using preemptive acknowledgment signals
US8804504B1 (en) 2010-09-16 2014-08-12 F5 Networks, Inc. System and method for reducing CPU load in processing PPP packets on a SSL-VPN tunneling device
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8843625B2 (en) 2008-09-29 2014-09-23 Amazon Technologies, Inc. Managing network data display
US8868961B1 (en) 2009-11-06 2014-10-21 F5 Networks, Inc. Methods for acquiring hyper transport timing and devices thereof
US8886981B1 (en) 2010-09-15 2014-11-11 F5 Networks, Inc. Systems and methods for idle driven scheduling
US8908545B1 (en) 2010-07-08 2014-12-09 F5 Networks, Inc. System and method for handling TCP performance in network access with driver initiated application tunnel
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US8959571B2 (en) 2010-10-29 2015-02-17 F5 Networks, Inc. Automated policy builder
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US9049148B1 (en) 2012-09-28 2015-06-02 Juniper Networks, Inc. Dynamic forwarding plane reconfiguration in a network device
US20150195262A1 (en) * 2014-01-08 2015-07-09 Cavium, Inc. Processing request keys based on a key size supported by underlying processing elements
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US9083760B1 (en) 2010-08-09 2015-07-14 F5 Networks, Inc. Dynamic cloning and reservation of detached idle connections
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US9141625B1 (en) 2010-06-22 2015-09-22 F5 Networks, Inc. Methods for preserving flow state during virtual machine migration and devices thereof
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9154423B1 (en) 2012-05-01 2015-10-06 F5 Networks, Inc. Minimize SYN-flood issues with flow cache while maintaining performance
US9172753B1 (en) 2012-02-20 2015-10-27 F5 Networks, Inc. Methods for optimizing HTTP header based authentication and devices thereof
US9203771B1 (en) 2012-07-23 2015-12-01 F5 Networks, Inc. Hot service flow hardware offloads based on service priority and resource usage
US20150365321A1 (en) * 2014-06-11 2015-12-17 Level 3 Communications, Llc Multi-peer routing in a network
US9231879B1 (en) 2012-02-20 2016-01-05 F5 Networks, Inc. Methods for policy-based network traffic queue management and devices thereof
US9246819B1 (en) 2011-06-20 2016-01-26 F5 Networks, Inc. System and method for performing message-based load balancing
US9246776B2 (en) 2009-10-02 2016-01-26 Amazon Technologies, Inc. Forward-based resource delivery network management techniques
US9270766B2 (en) 2011-12-30 2016-02-23 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
US9288153B2 (en) 2010-08-26 2016-03-15 Amazon Technologies, Inc. Processing encoded content
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9338095B2 (en) 2012-05-01 2016-05-10 F5 Networks, Inc. Data flow segment optimized for hot flows
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US9479476B2 (en) 2008-03-31 2016-10-25 Amazon Technologies, Inc. Processing of DNS queries
US9491085B2 (en) 2010-05-24 2016-11-08 At&T Intellectual Property I, L.P. Methods and apparatus to route control packets based on address partitioning
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US9525632B1 (en) 2012-05-01 2016-12-20 F5 Networks, Inc. Minimize recycle SYN issues for split TCP hot flows to improve system reliability and performance
US9525659B1 (en) * 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9554276B2 (en) 2010-10-29 2017-01-24 F5 Networks, Inc. System and method for on the fly protocol conversion in obtaining policy enforcement information
US9628554B2 (en) 2012-02-10 2017-04-18 Amazon Technologies, Inc. Dynamic content delivery
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9787775B1 (en) 2010-09-28 2017-10-10 Amazon Technologies, Inc. Point of presence management in request routing
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US20170316048A1 (en) * 2014-12-08 2017-11-02 Nec Europe Ltd. Method and system for filtering data series
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US20180062998A1 (en) * 2016-08-31 2018-03-01 Viavi Solutions Inc. Packet filtering using binary search trees
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
USRE47019E1 (en) 2010-07-14 2018-08-28 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097616B2 (en) 2012-04-27 2018-10-09 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10122630B1 (en) 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
US10157280B2 (en) 2009-09-23 2018-12-18 F5 Networks, Inc. System and method for identifying security breach attempts of a website
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10284457B2 (en) * 2016-07-12 2019-05-07 Dell Products, L.P. System and method for virtual link trunking
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
CN110753133A (en) * 2018-07-23 2020-02-04 华为技术有限公司 Method for processing address and network equipment
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US10791119B1 (en) 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
WO2020236634A1 (en) * 2019-05-17 2020-11-26 Tencent Technology (Shenzhen) Company Limited Method and apparatus for device-to-device interconnected local area network
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US10931662B1 (en) 2017-04-10 2021-02-23 F5 Networks, Inc. Methods for ephemeral authentication screening and devices thereof
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
US11159418B2 (en) * 2018-10-29 2021-10-26 Telia Company Ab Method and an apparatus for routing data packets in a network topology
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US11290418B2 (en) 2017-09-25 2022-03-29 Amazon Technologies, Inc. Hybrid content request routing system
US11288244B2 (en) * 2019-06-10 2022-03-29 Akamai Technologies, Inc. Tree deduplication
US11294920B2 (en) * 2017-06-30 2022-04-05 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for accessing time series data in memory
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US11496438B1 (en) 2017-02-07 2022-11-08 F5, Inc. Methods for improved network security using asymmetric traffic delivery and devices thereof
US11604667B2 (en) 2011-04-27 2023-03-14 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1469600B (en) * 2002-07-15 2010-11-24 华为技术有限公司 Method of fast re-selecting route in translating internet protocol message
CN100388717C (en) * 2002-08-27 2008-05-14 华为技术有限公司 Method of searching next route skip in three-layer network
US7099881B2 (en) * 2002-12-06 2006-08-29 Stmicroelectronics, Inc. Method for increasing average storage capacity in a bit-mapped tree-based storage engine by using remappable prefix representations and a run-length encoding scheme that defines multi-length fields to compactly store IP prefixes
CN100352233C (en) * 2002-12-10 2007-11-28 中兴通讯股份有限公司 Route list organizing and searching method
AU2003900991A0 (en) * 2003-03-03 2003-03-20 Intelliguard I.T. Pty. Ltd. A firewall system
CN100366008C (en) * 2003-05-29 2008-01-30 华为技术有限公司 Method for building-up route table and searching route items thereby
DE102004006102B4 (en) * 2004-02-06 2005-12-08 Oliver Bartels Data processing device for fast search of data words
CN100375463C (en) * 2004-07-02 2008-03-12 中国科学院计算技术研究所 Method for realizing longest prifix address route search using sectioned compressed list
CN100401723C (en) * 2005-10-13 2008-07-09 华为技术有限公司 Fast indexing method
CN101132364B (en) * 2007-08-23 2012-02-29 新动力(北京)建筑科技有限公司 Data addressing and repeating method and system in control network
CN101404612B (en) * 2008-11-20 2012-05-23 杭州华三通信技术有限公司 Method and system for implementing data stream hardware forwarding, and network routing device
CN101895592B (en) * 2010-08-31 2012-08-29 上海交通大学 Routing and addressing method based on tree topology address assignment
CN102075429B (en) * 2011-01-21 2014-12-17 北京邮电大学 Virtual network mapping method based on principle of proximity
CN102075402B (en) * 2011-02-12 2013-06-05 华为技术有限公司 Virtual network mapping processing method and system
CN102546232B (en) * 2011-11-03 2014-12-17 北京邮电大学 Multi-topology mapping method of virtual network
CN102624597B (en) * 2012-03-09 2014-12-17 北京邮电大学 Two-way sequencing virtual network mapping method
US10877951B2 (en) 2014-01-22 2020-12-29 International Business Machines Corporation Network control software notification and invalidation of static entries
US10419267B2 (en) 2014-01-22 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Network control software notification with advance learning
CN105516023A (en) * 2014-09-24 2016-04-20 华为技术有限公司 Message forwarding method and apparatus
CN107770062A (en) * 2016-08-16 2018-03-06 北京金山云网络技术有限公司 A kind of data packet sending method, device and the network architecture
CN108965136B (en) * 2018-07-16 2020-09-22 清华大学 Forwarding method and device based on spatial network hierarchical IP addressing
CN112787898B (en) * 2020-12-29 2022-03-04 美的集团股份有限公司 Device data communication method, device, electronic device and storage medium
CN113141304A (en) * 2021-04-15 2021-07-20 中国科学院计算机网络信息中心 Multi-forwarding table compression and search method and system for virtualization router

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412654A (en) * 1994-01-10 1995-05-02 International Business Machines Corporation Highly dynamic destination-sequenced destination vector routing for mobile computers
US5842224A (en) * 1989-06-16 1998-11-24 Fenner; Peter R. Method and apparatus for source filtering data packets between networks of differing media
US5870739A (en) * 1996-09-20 1999-02-09 Novell, Inc. Hybrid query apparatus and method
US5946679A (en) * 1997-07-31 1999-08-31 Torrent Networking Technologies, Corp. System and method for locating a route in a route table using hashing and compressed radix tree searching
US6011795A (en) * 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
US6014659A (en) * 1989-07-12 2000-01-11 Cabletron Systems, Inc. Compressed prefix matching database searching
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0556148B1 (en) * 1992-01-10 1998-07-22 Digital Equipment Corporation Scheme for interlocking a line card to an address recognition engine
GB9326476D0 (en) * 1993-12-24 1994-02-23 Newbridge Networks Corp Network

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842224A (en) * 1989-06-16 1998-11-24 Fenner; Peter R. Method and apparatus for source filtering data packets between networks of differing media
US6014659A (en) * 1989-07-12 2000-01-11 Cabletron Systems, Inc. Compressed prefix matching database searching
US5412654A (en) * 1994-01-10 1995-05-02 International Business Machines Corporation Highly dynamic destination-sequenced destination vector routing for mobile computers
US5870739A (en) * 1996-09-20 1999-02-09 Novell, Inc. Hybrid query apparatus and method
US6011795A (en) * 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
US5946679A (en) * 1997-07-31 1999-08-31 Torrent Networking Technologies, Corp. System and method for locating a route in a route table using hashing and compressed radix tree searching
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Degermark, M., et al. "Small Forwarding Tables for Fast Routing Lookups" Proceedings of the ACM SIGCOMM '97 Conference on Applications, Technologies, Architectures and Protocols for Computer Communications (Student Paper Award), Cannes, France, Sep. 1997.

Cited By (723)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965593B2 (en) 1996-11-12 2005-11-15 Ds Systems, Inc. High bandwidth broadcast system having localized multicast access to broadcast content
US6262982B1 (en) * 1996-11-12 2001-07-17 Starguide Digital Networks, Inc. High bandwidth broadcast system having localized multicast access to broadcast content
USRE43843E1 (en) 1996-11-12 2012-12-04 Megawave Audio Llc High bandwidth broadcast system having localized multicast access to broadcast content
US8631474B2 (en) 1997-03-05 2014-01-14 At Home Bondholders' Liquidating Trust Method and system for restricting access to user resources
US9038145B2 (en) 1997-03-05 2015-05-19 At Home Bondholders' Liquidating Trust Method and system for restricting access to user resources
US8364848B2 (en) * 1997-03-05 2013-01-29 At Home Bondholders' Liquidating Trust Delivering multimedia services
US20120096118A1 (en) * 1997-03-05 2012-04-19 Medin Milo S Delivering Multimedia Services
US8103799B2 (en) 1997-03-05 2012-01-24 At Home Bondholders' Liquidating Trust Delivering multimedia services
US8209427B2 (en) 1997-03-05 2012-06-26 At Home Bondholders' Liquidating Trust Method and system for restricting access to user resources
US20110029642A1 (en) * 1997-03-05 2011-02-03 Medin Milo S Delivering Multimedia Services
US20110023117A1 (en) * 1997-03-05 2011-01-27 Brown Ralph W Method and System for Restricting Access to User Resources
US6496510B1 (en) * 1997-11-14 2002-12-17 Hitachi, Ltd. Scalable cluster-type router device and configuring method thereof
US6549521B1 (en) 1998-05-01 2003-04-15 Hewlett-Packard Company Methods of managing dynamic decision trees
US6320848B1 (en) * 1998-05-01 2001-11-20 Hewlett-Packard Company Methods of altering dynamic decision trees
US6574215B2 (en) * 1998-07-28 2003-06-03 Siemens Aktiengesellschaft Method for transmitting data packets to a number of receivers in a heterogeneous communications network
US6308219B1 (en) * 1998-07-31 2001-10-23 Cisco Technology, Inc. Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks
US6385649B1 (en) * 1998-11-06 2002-05-07 Microsoft Corporation Routers and methods for optimal routing table compression
US7839889B2 (en) 1998-12-04 2010-11-23 Tekelec Methods and systems for communicating signaling system 7 (SS7) user part messages among SS7 signaling points (SPs) and internet protocol (IP) nodes using signal transfer points (STPs)
US20050265341A1 (en) * 1998-12-04 2005-12-01 Tekelec Methods and systems for communicating SS7 messages over packet-based network using transport adapter layer interface
US8750328B2 (en) 1998-12-04 2014-06-10 Tekelec Global, Inc. Methods and systems for communicating signaling system 7 (SS7) user part messages among SS7 signaling points (SPs) and internet protocol (IP) nodes using signal transfer points (STPs)
US20050286502A1 (en) * 1998-12-04 2005-12-29 Tekelec Methods and systems for communicating SS7 messages over packet-based network using transport adapter layer interface
US20060013204A1 (en) * 1998-12-04 2006-01-19 Tekelec Methods and systems for communicating SS7 messages over packet-based network using transport adapter layer interface
US20060013203A1 (en) * 1998-12-04 2006-01-19 Tekelec Methods and systems for communicating SS7 messages over packet-based network using transport adapter layer interface
US8213410B2 (en) 1998-12-04 2012-07-03 Tekelec, Inc. Methods and systems for communicating SS7 messages over packet-based network using transport adapter layer interface
US8072904B2 (en) * 1998-12-21 2011-12-06 At&T Intellectual Property Ii, L.P. Communication network apparatus and method
US20080031158A1 (en) * 1998-12-21 2008-02-07 Xiaolin Lu Communication network apparatus and method
US9124487B2 (en) 1998-12-21 2015-09-01 At&T Intellectual Property Ii, L.P. Communication network apparatus and method
US20080025335A1 (en) * 1998-12-21 2008-01-31 Xiaolin Lu Communication network apparatus and method
US7830885B2 (en) 1998-12-21 2010-11-09 AT&T Intellectual Property II, LLP Communication network apparatus and method
US20080025313A1 (en) * 1998-12-21 2008-01-31 Xiaolin Lu Communication network apparatus and method
US8767533B2 (en) 1998-12-21 2014-07-01 At&T Intellectual Property Ii, L.P. Communication network apparatus and method
US8174968B2 (en) 1998-12-21 2012-05-08 At&T Intellectual Property Ii, L.P. Communication network apparatus and method
US8149734B2 (en) 1998-12-21 2012-04-03 At&T Intellectual Property Ii, L.P. Communication network apparatus and method
US6810042B1 (en) * 1999-01-04 2004-10-26 Cisco Technology, Inc. Method of queuing traffic to many destinations covering a wide range of transmission speeds while minimizing buffer size
USRE43163E1 (en) 1999-05-14 2012-02-07 Brookline Flolmstead Llc High-speed network of independently linked nodes
US6628623B1 (en) * 1999-05-24 2003-09-30 3Com Corporation Methods and systems for determining switch connection topology on ethernet LANs
US6643706B1 (en) * 1999-06-29 2003-11-04 Cisco Technology, Inc. Scaleable route redistribution mechanism
US6615336B1 (en) * 1999-07-16 2003-09-02 Via Technologies, Inc. Method for performing a medium access control address lookup in a network switch of an ethernet network
US6678274B1 (en) * 1999-07-30 2004-01-13 Riverstone Networks, Inc. Method and system for managing forwarding tables
US20070086480A1 (en) * 1999-07-30 2007-04-19 Uri Elzur Associating a packet with a flow
US6788695B1 (en) * 1999-08-23 2004-09-07 Nec Corporation System and method capable of carrying out high-speed IP routing by the use of a binary tree comprising a reduced number of nodes
US6772220B1 (en) * 1999-09-29 2004-08-03 International Business Machines Corporation Next hop command level addressing and routing
US6697380B1 (en) * 1999-12-07 2004-02-24 Advanced Micro Devices, Inc. Multiple key lookup arrangement for a shared switching logic address table in a network switch
US6711153B1 (en) * 1999-12-13 2004-03-23 Ascend Communications, Inc. Route lookup engine
US6463067B1 (en) * 1999-12-13 2002-10-08 Ascend Communications, Inc. Submission and response architecture for route lookup and packet classification requests
US6697873B1 (en) * 1999-12-20 2004-02-24 Zarlink Semiconductor V.N., Inc. High speed MAC address search engine
US7440417B2 (en) 2000-01-07 2008-10-21 International Business Machines Corporation Method and system for frame and protocol classification
US20040228339A1 (en) * 2000-01-07 2004-11-18 Gallo Anthony Matteo Method and system for frame and protocol classification
US6775284B1 (en) * 2000-01-07 2004-08-10 International Business Machines Corporation Method and system for frame and protocol classification
US6581106B1 (en) * 2000-01-13 2003-06-17 Pierluigi Crescenzi Fast address lookup in routing tables
US20050232278A1 (en) * 2000-02-09 2005-10-20 Brookline Flolmstead Llc System and method for distributing addresses
US7039641B2 (en) * 2000-02-24 2006-05-02 Lucent Technologies Inc. Modular packet classification
US20020023089A1 (en) * 2000-02-24 2002-02-21 Woo Thomas Y. Modular packet classification
US6643269B1 (en) * 2000-03-03 2003-11-04 Luminous Networks, Inc. Routing switch automatically identifying network topology
US9077554B1 (en) 2000-03-21 2015-07-07 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US9647954B2 (en) 2000-03-21 2017-05-09 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
US20010037387A1 (en) * 2000-03-21 2001-11-01 F5 Networks, Inc., Method and system for optimizing a network by independently scaling control segments and data flow
US8380854B2 (en) 2000-03-21 2013-02-19 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US8447871B1 (en) 2000-03-21 2013-05-21 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US8788665B2 (en) 2000-03-21 2014-07-22 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
US20020138618A1 (en) * 2000-03-21 2002-09-26 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US7343413B2 (en) * 2000-03-21 2008-03-11 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
US20080256239A1 (en) * 2000-03-21 2008-10-16 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
US7574522B2 (en) * 2000-04-04 2009-08-11 Fujitsu Limited Communication data relay system
US20020023152A1 (en) * 2000-04-04 2002-02-21 Naoki Oguchi Communication data relay system
US6574195B2 (en) * 2000-04-19 2003-06-03 Caspian Networks, Inc. Micro-flow management
US7113581B2 (en) * 2000-04-21 2006-09-26 Tekelec Methods and systems for providing dynamic routing key registration
US20010055380A1 (en) * 2000-04-21 2001-12-27 Benedyk Robby Darren Methods and systems for providing dynamic routing key registration
US20050071501A1 (en) * 2000-05-22 2005-03-31 Broadcom Corporation Method and apparatus for performing a binary search on an expanded tree
US7072885B2 (en) * 2000-05-22 2006-07-04 Broadcom Corporation Method and apparatus for performing a binary search on an expanded tree
US6813645B1 (en) * 2000-05-24 2004-11-02 Hewlett-Packard Development Company, L.P. System and method for determining a customer associated with a range of IP addresses by employing a configurable rule engine with IP address range matching
US20080075115A1 (en) * 2000-06-01 2008-03-27 Tekelec Methods and systems for providing converged network management functionality in a gateway routing node
US8224928B2 (en) 2000-06-01 2012-07-17 Tekelec, Inc. Methods and systems for distributing operating status information within a converged network
US7743131B2 (en) 2000-06-01 2010-06-22 Tekelec Methods and systems for managing status audit messages in a gateway routing node
US6954459B1 (en) * 2000-06-16 2005-10-11 International Business Machines Corporation Method for forwarding broadcast packets in a bridged IP network
US20110082866A1 (en) * 2000-06-21 2011-04-07 Brown David A Method and apparatus for logically expanding the length of a search key
US7966421B2 (en) * 2000-06-21 2011-06-21 SAtech Group, A.B. Limited Liability Company Method and apparatus for logically expanding the length of a search key
US7913060B2 (en) 2000-06-21 2011-03-22 SAtech Group, A.B. Limited Liability Company Method and apparatus for physical width expansion of a longest prefix match lookup table
US6697363B1 (en) * 2000-06-28 2004-02-24 Alcatel Canada Inc. Method and apparatus for longest matching prefix determination in a communication network
US7111071B1 (en) * 2000-06-29 2006-09-19 Intel Corporation Longest prefix match for IP routers
US7373425B2 (en) * 2000-08-22 2008-05-13 Conexant Systems, Inc. High-speed MAC address search engine
US20040205234A1 (en) * 2000-08-22 2004-10-14 Craig Barrack High-speed MAC address search engine
US20090031044A1 (en) * 2000-08-22 2009-01-29 Conexant Systems, Inc. High-Speed MAC Address Search Engine
US20060041682A1 (en) * 2000-08-23 2006-02-23 Johnson Jeremy T Sharing IP network resources
US8463920B2 (en) 2000-08-23 2013-06-11 At Home Bondholders' Liquidating Trust Sharing IP network resources
US20140153576A1 (en) * 2000-08-23 2014-06-05 At Home Bondholders' Liquidating Trust Sharing IP Network Resources
US6985963B1 (en) * 2000-08-23 2006-01-10 At Home Corporation Sharing IP network resources
US9276872B2 (en) * 2000-08-23 2016-03-01 At Home Bondholders'Liquidating Trust Sharing IP network resources
US7539744B2 (en) 2000-09-13 2009-05-26 Fortinet, Inc. Network operating system for maintaining redundant master control blade management information
US20110176552A1 (en) * 2000-09-13 2011-07-21 Fortinet, Inc. Managing interworking communications protocols
US9391964B2 (en) 2000-09-13 2016-07-12 Fortinet, Inc. Tunnel interface for securing traffic over a network
US20110032942A1 (en) * 2000-09-13 2011-02-10 Fortinet, Inc. Fast path complex flow processing
US7444398B1 (en) 2000-09-13 2008-10-28 Fortinet, Inc. System and method for delivering security services
US20070121579A1 (en) * 2000-09-13 2007-05-31 Fortinet, Inc. Packet routing system and method
US8250357B2 (en) 2000-09-13 2012-08-21 Fortinet, Inc. Tunnel interface for securing traffic over a network
US8260918B2 (en) 2000-09-13 2012-09-04 Fortinet, Inc. Packet routing system and method
US9853948B2 (en) 2000-09-13 2017-12-26 Fortinet, Inc. Tunnel interface for securing traffic over a network
US9667604B2 (en) 2000-09-13 2017-05-30 Fortinet, Inc. Tunnel interface for securing traffic over a network
US9258280B1 (en) 2000-09-13 2016-02-09 Fortinet, Inc. Tunnel interface for securing traffic over a network
US9124555B2 (en) 2000-09-13 2015-09-01 Fortinet, Inc. Tunnel interface for securing traffic over a network
US8320279B2 (en) 2000-09-13 2012-11-27 Fortinet, Inc. Managing and provisioning virtual routers
US9160716B2 (en) 2000-09-13 2015-10-13 Fortinet, Inc. Tunnel interface for securing traffic over a network
US8069233B2 (en) 2000-09-13 2011-11-29 Fortinet, Inc. Switch management system and method
US7978709B1 (en) 2000-11-16 2011-07-12 Netlogic Microsystems, Inc. Packet matching method and system
US20020089937A1 (en) * 2000-11-16 2002-07-11 Srinivasan Venkatachary Packet matching method and system
US20020075874A1 (en) * 2000-12-15 2002-06-20 Takahiro Yamashita Datagram transmission device
US7007100B1 (en) * 2000-12-20 2006-02-28 Nortel Networks Limited Method for synchronization of multicast routing table changes with a plurality of multicast routing protocols
US20070115968A1 (en) * 2000-12-27 2007-05-24 Brown David A Default route coding
US20020091856A1 (en) * 2000-12-27 2002-07-11 Mosaid Technologies Default route coding
US7106732B2 (en) * 2000-12-27 2006-09-12 Mosaid Technologies Incorporated Default route coding
US7715385B2 (en) 2000-12-27 2010-05-11 Brown David A Default route coding
US6680916B2 (en) 2001-01-22 2004-01-20 Tut Systems, Inc. Method for using a balanced tree as a base for a routing table
WO2002058340A1 (en) * 2001-01-22 2002-07-25 Tut Systems, Inc. A method for using a balanced tree as a base for a routing table
US7009974B1 (en) * 2001-04-18 2006-03-07 Force10 Networks, Inc. Method and apparatus for updating addresses in network processing device
US20020161920A1 (en) * 2001-04-19 2002-10-31 International Business Machines Corporation Router search system, router search method and router search program
US7159033B2 (en) * 2001-04-19 2007-01-02 International Business Machines Corporation Router search system, router search method and router search program
US20020161823A1 (en) * 2001-04-25 2002-10-31 Fabio Casati Dynamically defining workflow processes using generic nodes
US20030009584A1 (en) * 2001-06-20 2003-01-09 International Business Machines Corporation Robust NP-based data forwarding techniques that tolerate failure of control-based applications
US7003582B2 (en) * 2001-06-20 2006-02-21 International Business Machines Corporation Robust NP-based data forwarding techniques that tolerate failure of control-based applications
US20060265519A1 (en) * 2001-06-28 2006-11-23 Fortinet, Inc. Identifying nodes in a ring network
US20100189016A1 (en) * 2001-06-28 2010-07-29 Fortinet, Inc. Identifying nodes in a ring network
US7580373B2 (en) 2001-06-28 2009-08-25 Fortinet, Inc. Identifying nodes in a ring network
US9143351B2 (en) 2001-06-28 2015-09-22 Fortinet, Inc. Identifying nodes in a ring network
US8208409B2 (en) 2001-06-28 2012-06-26 Fortinet, Inc. Identifying nodes in a ring network
US9998337B2 (en) 2001-06-28 2018-06-12 Fortinet, Inc. Identifying nodes in a ring network
US20070058648A1 (en) * 2001-06-28 2007-03-15 Fortinet, Inc. Identifying nodes in a ring network
US7890663B2 (en) 2001-06-28 2011-02-15 Fortinet, Inc. Identifying nodes in a ring network
US9602303B2 (en) 2001-06-28 2017-03-21 Fortinet, Inc. Identifying nodes in a ring network
KR100421414B1 (en) * 2001-07-23 2004-03-09 한국전자통신연구원 Method for searching and updating using node structure of multiway search tree
US20030091043A1 (en) * 2001-07-31 2003-05-15 Pronita Mehrotra Methods and systems for fast packet forwarding
US6985483B2 (en) 2001-07-31 2006-01-10 North Carolina State University Methods and systems for fast packet forwarding
US20030033428A1 (en) * 2001-08-13 2003-02-13 Satyendra Yadav Apparatus and method for scalable server load balancing
US7290059B2 (en) * 2001-08-13 2007-10-30 Intel Corporation Apparatus and method for scalable server load balancing
KR20030018269A (en) * 2001-08-27 2003-03-06 한국전자통신연구원 Apparatus of IP lookup using cache forwarding table in router system, its method
US7315516B2 (en) * 2001-09-06 2008-01-01 Ghizi Soft Co., Ltd. Method for generating casting path among participants for multicasting
US20040213168A1 (en) * 2001-09-06 2004-10-28 Ghi-Birm Byun Method for generating casting path among participants for multicasting
US8532127B2 (en) 2001-10-19 2013-09-10 Juniper Networks, Inc. Network routing using indirect next hop data
US9391873B1 (en) 2001-10-19 2016-07-12 Juniper Networks, Inc. Network routing using indirect next hop data
US20100296517A1 (en) * 2001-10-19 2010-11-25 Juniper Networks, Inc. Network routing using indirect next hop data
US8953626B2 (en) 2001-10-19 2015-02-10 Juniper Networks, Inc. Network routing using indirect next hop data
US7035256B1 (en) * 2001-10-31 2006-04-25 Redback Networks Inc. Method and apparatus for a routing information base
US7058724B1 (en) * 2001-11-02 2006-06-06 Cisco Technology, Inc. Arrangement for routing a received signaling message based on a selected summary route in an SS7 network
US20110055425A1 (en) * 2001-11-05 2011-03-03 Juniper Networks, Inc. Context switched route look up key engine
US20030088539A1 (en) * 2001-11-05 2003-05-08 Andrus Don Nielsen Method and apparatus for preferred roaming list compression
US7389360B1 (en) * 2001-11-05 2008-06-17 Juniper Networks, Inc. Context switched route lookup key engine
US6901395B2 (en) * 2001-11-05 2005-05-31 Qualcomm Incorporated Method and apparatus for preferred roaming list compression
US20050096046A1 (en) * 2001-11-05 2005-05-05 Andrus Don N. Method and apparatus for preferred roaming list compression
US8099515B2 (en) 2001-11-05 2012-01-17 Juniper Networks, Inc. Context switched route look up key engine
US7856510B1 (en) 2001-11-05 2010-12-21 Juniper Networks, Inc. Context switched route lookup key engine
US8996724B2 (en) 2001-11-05 2015-03-31 Juniper Networks, Inc. Context switched route look up key engine
US20070038613A1 (en) * 2001-11-05 2007-02-15 Andrus Don N Method and apparatus for preferred roaming list compression
US8209332B2 (en) 2001-11-05 2012-06-26 Qualcomm Incorporated Method and apparatus for preferred roaming list compression
US7127447B2 (en) 2001-11-05 2006-10-24 Qualcomm, Inc. Method and apparatus for preferred roaming list compression
US7007101B1 (en) * 2001-11-09 2006-02-28 Radisys Microware Communications Software Division, Inc. Routing and forwarding table management for network processor architectures
US8045565B1 (en) 2001-11-20 2011-10-25 Brookline Flolmstead Llc Method and apparatus for an environmentally hardened ethernet network system
US20100284407A1 (en) * 2002-01-02 2010-11-11 Juniper Networks, Inc. Nexthop to a forwarding table
US7787466B1 (en) * 2002-01-02 2010-08-31 Juniper Networks, Inc. Nexthop to a forwarding table
US7221684B1 (en) 2002-01-08 2007-05-22 Cisco Technology, Inc. Increasing network efficiency using packet compression and decompression
US7742459B2 (en) * 2002-01-24 2010-06-22 Alcatel-Lucent Canada Inc. Method for distributing aggregate route information
US20030137974A1 (en) * 2002-01-24 2003-07-24 Connie Kwan Method for distributing aggregate route information
WO2003075527A1 (en) * 2002-03-04 2003-09-12 Operax Ab A method for providing topology awareness information within an ip network
US7706300B2 (en) 2002-03-04 2010-04-27 Netsocket, Inc. Method for providing topology awareness information within an IP network
US20050105475A1 (en) * 2002-03-04 2005-05-19 Joakim Norrgard Method for providing topology awareness information within an ip network
US7190696B1 (en) * 2002-03-05 2007-03-13 Force10 Networks, Inc. System and method for distributing packets among a plurality of paths to a destination
US7187694B1 (en) 2002-03-29 2007-03-06 Pmc-Sierra, Inc. Generic packet parser
US20030210688A1 (en) * 2002-05-13 2003-11-13 International Business Machines Corporation Logically grouping physical ports into logical interfaces to expand bandwidth
US7280527B2 (en) * 2002-05-13 2007-10-09 International Business Machines Corporation Logically grouping physical ports into logical interfaces to expand bandwidth
US8638802B2 (en) 2002-06-04 2014-01-28 Cisco Technology, Inc. Network packet steering via configurable association of packet processing resources and network interfaces
US7203192B2 (en) 2002-06-04 2007-04-10 Fortinet, Inc. Network packet steering
US20030223418A1 (en) * 2002-06-04 2003-12-04 Sachin Desai Network packet steering
US20030223361A1 (en) * 2002-06-04 2003-12-04 Zahid Hussain System and method for hierarchical metering in a virtual router based network switch
US8542595B2 (en) 2002-06-04 2013-09-24 Fortinet, Inc. Service processing switch
US9215178B2 (en) 2002-06-04 2015-12-15 Cisco Technology, Inc. Network packet steering via configurable association of packet processing resources and network interfaces
US7668087B2 (en) 2002-06-04 2010-02-23 Fortinet, Inc. Hierarchical metering in a virtual router-based network switch
US20070127382A1 (en) * 2002-06-04 2007-06-07 Fortinet, Inc. Routing traffic through a virtual router-based network switch
US8068503B2 (en) 2002-06-04 2011-11-29 Fortinet, Inc. Network packet steering via configurable association of processing resources and netmods or line interface ports
US8064462B2 (en) 2002-06-04 2011-11-22 Fortinet, Inc. Service processing switch
US20070109968A1 (en) * 2002-06-04 2007-05-17 Fortinet, Inc. Hierarchical metering in a virtual router-based network switch
US20100220732A1 (en) * 2002-06-04 2010-09-02 Fortinet, Inc. Service processing switch
US7177311B1 (en) 2002-06-04 2007-02-13 Fortinet, Inc. System and method for routing traffic through a virtual router-based network switch
US7161904B2 (en) 2002-06-04 2007-01-09 Fortinet, Inc. System and method for hierarchical metering in a virtual router based network switch
US7522604B2 (en) 2002-06-04 2009-04-21 Fortinet, Inc. Routing traffic through a virtual router-based network switch
US9967200B2 (en) 2002-06-04 2018-05-08 Fortinet, Inc. Service processing switch
US7340535B1 (en) 2002-06-04 2008-03-04 Fortinet, Inc. System and method for controlling routing in a virtual router system
US7376125B1 (en) 2002-06-04 2008-05-20 Fortinet, Inc. Service processing switch
US8014293B1 (en) 2002-07-17 2011-09-06 Juniper Networks, Inc. Scalable route resolution
US7746790B1 (en) 2002-07-17 2010-06-29 Juniper Networks, Inc. Scalable route resolution
US7184437B1 (en) * 2002-07-17 2007-02-27 Juniper Networks, Inc. Scalable route resolution
US8045547B2 (en) 2002-07-20 2011-10-25 Ericsson Ab Method and apparatus for routing and forwarding between virtual routers within a single network element
US20040240429A1 (en) * 2002-07-20 2004-12-02 Naiming Shen Method and apparatus for routing and forwarding between virtual routers within a single network element
US8472451B2 (en) 2002-07-20 2013-06-25 Ericsson Ab Method and apparatus for routing and forwarding between virtual routers within a single network element
US20040013120A1 (en) * 2002-07-20 2004-01-22 Naiming Shen Method and apparatus for routing and forwarding between virtual routers within a single network element
US20040233913A1 (en) * 2002-07-20 2004-11-25 Naiming Shen Method and apparatus for routing and forwarding between virtual routers within a single network element
US20040240455A1 (en) * 2002-07-20 2004-12-02 Naiming Shen Method and apparatus for routing and forwarding between virtual routers within a single network element
US20110194567A1 (en) * 2002-07-20 2011-08-11 Naiming Shen Method and apparatus for routing and forwarding between virtual routers within a single network element
US7715381B2 (en) 2002-07-20 2010-05-11 Ericsson Ab Method and apparatus for routing and forwarding between virtual routers within a single network element
US7948994B2 (en) 2002-07-20 2011-05-24 Ericsson Ab Method and apparatus for routing and forwarding between virtual routers within a single network element
US6907039B2 (en) * 2002-07-20 2005-06-14 Redback Networks Inc. Method and apparatus for routing and forwarding between virtual routers within a single network element
US9246791B2 (en) 2002-07-20 2016-01-26 Ericsson Ab Method and apparatus for routing and forwarding between virtual routers within a single network element
US10116556B2 (en) 2002-07-20 2018-10-30 Ericsson Ab Techniques for routing and forwarding between multiple virtual routers implemented by a single device
US20040136407A1 (en) * 2002-07-23 2004-07-15 Nec Corporation Address retrieval apparatus
US7272140B2 (en) * 2002-07-23 2007-09-18 Nec Corporation Address retrieval apparatus
US8819486B2 (en) 2002-08-29 2014-08-26 Google Inc. Fault tolerant routing in a non-hot-standby configuration of a network routing system
US20070162783A1 (en) * 2002-08-29 2007-07-12 Fortinet, Inc. System and method for virtual router failover in a network routing system
US20040078621A1 (en) * 2002-08-29 2004-04-22 Cosine Communications, Inc. System and method for virtual router failover in a network routing system
US7278055B2 (en) 2002-08-29 2007-10-02 Fortinet, Inc. System and method for virtual router failover in a network routing system
US7096383B2 (en) 2002-08-29 2006-08-22 Cosine Communications, Inc. System and method for virtual router failover in a network routing system
US8412982B2 (en) 2002-08-29 2013-04-02 Google Inc. Fault tolerant routing in a non-hot-standby configuration of a network routing system
US10200275B2 (en) 2002-11-18 2019-02-05 Fortinet, Inc. Hardware-accelerated packet multicasting
US9407449B2 (en) * 2002-11-18 2016-08-02 Fortinet, Inc. Hardware-accelerated packet multicasting
US7266120B2 (en) 2002-11-18 2007-09-04 Fortinet, Inc. System and method for hardware accelerated packet multicast in a virtual routing system
US20150195098A1 (en) * 2002-11-18 2015-07-09 Fortinet, Inc. Hardware-accelerated packet multicasting
US9014186B2 (en) 2002-11-18 2015-04-21 Fortinet, Inc. Hardware-accelerated packet multicasting
US8644311B2 (en) 2002-11-18 2014-02-04 Fortinet, Inc. Hardware-accelerated packet multicasting in a virtual routing system
US20110200044A1 (en) * 2002-11-18 2011-08-18 Fortinet, Inc. Hardware-accelerated packet multicasting in a virtual routing system
WO2004047365A1 (en) * 2002-11-18 2004-06-03 Cosine Communications, Inc. Virtual router with hardware accelerated packet multicast
US20040095934A1 (en) * 2002-11-18 2004-05-20 Cosine Communications, Inc. System and method for hardware accelerated packet multicast in a virtual routing system
US20040100960A1 (en) * 2002-11-22 2004-05-27 Mehta Ashish K. Method and apparatus for performing an address lookup using a multi-bit trie with backtracking
US7339930B2 (en) * 2002-11-22 2008-03-04 Sun Microsystems, Inc. Method and apparatus for performing an address lookup using a multi-bit trie with backtracking
US20040153573A1 (en) * 2003-01-30 2004-08-05 Byoung-Chul Kim Distributed router for dynamically managing forwarding information and method thereof
US20040179555A1 (en) * 2003-03-11 2004-09-16 Cisco Technology, Inc. System and method for compressing data in a communications environment
US7330467B2 (en) 2003-03-26 2008-02-12 Altera Corporation System and method for centralized, intelligent proxy driver for a switch fabric
US7571156B1 (en) 2003-03-28 2009-08-04 Netlogic Microsystems, Inc. Network device, storage medium and methods for incrementally updating a forwarding database
US20080275872A1 (en) * 2003-03-28 2008-11-06 Srinivasan Venkatachary System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size
US7426518B2 (en) 2003-03-28 2008-09-16 Netlogic Microsystems, Inc. System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size
US8073856B2 (en) 2003-03-28 2011-12-06 Netlogic Microsystems, Inc. System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size
US20040193619A1 (en) * 2003-03-28 2004-09-30 Srinivasan Venkatachary System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size
US20040230696A1 (en) * 2003-05-15 2004-11-18 Barach David Richard Bounded index extensible hash-based IPv6 address lookup method
US7325059B2 (en) * 2003-05-15 2008-01-29 Cisco Technology, Inc. Bounded index extensible hash-based IPv6 address lookup method
US7437354B2 (en) 2003-06-05 2008-10-14 Netlogic Microsystems, Inc. Architecture for network search engines with fixed latency, high capacity, and high throughput
US20040249803A1 (en) * 2003-06-05 2004-12-09 Srinivasan Vankatachary Architecture for network search engines with fixed latency, high capacity, and high throughput
US20040260814A1 (en) * 2003-06-18 2004-12-23 Utah State University Efficient unicast-based multicast tree construction and maintenance for multimedia transmission
US7596595B2 (en) 2003-06-18 2009-09-29 Utah State University Efficient unicast-based multicast tree construction and maintenance for multimedia transmission
US20050018683A1 (en) * 2003-07-21 2005-01-27 Zhao Yigiang Q. IP address storage technique for longest prefix match
US7460516B1 (en) 2003-07-30 2008-12-02 Cisco Technology, Inc. System and method for compressing communication flows in a network environment
US7487255B2 (en) * 2003-08-14 2009-02-03 Hewlett-Packard Development Company, L.P. Routing cache management with route fragmentation
US20050038907A1 (en) * 2003-08-14 2005-02-17 Roeder Michael T. Routing cache management with route fragmentation
US20110235649A1 (en) * 2003-08-27 2011-09-29 Fortinet, Inc. Heterogeneous media packet bridging
US9331961B2 (en) 2003-08-27 2016-05-03 Fortinet, Inc. Heterogeneous media packet bridging
US8503463B2 (en) 2003-08-27 2013-08-06 Fortinet, Inc. Heterogeneous media packet bridging
US9509638B2 (en) 2003-08-27 2016-11-29 Fortinet, Inc. Heterogeneous media packet bridging
US9853917B2 (en) 2003-08-27 2017-12-26 Fortinet, Inc. Heterogeneous media packet bridging
US7702882B2 (en) * 2003-09-10 2010-04-20 Samsung Electronics Co., Ltd. Apparatus and method for performing high-speed lookups in a routing table
US20050055457A1 (en) * 2003-09-10 2005-03-10 Samsung Electronics Co., Ltd. Apparatus and method for performing high-speed lookups in a routing table
US7372843B1 (en) 2003-09-23 2008-05-13 Cisco Technology, Inc. System and method for compressing information flows in a network environment
US8223778B2 (en) * 2003-11-19 2012-07-17 Intel Corporation Routing table architecture
US20080123679A1 (en) * 2003-11-19 2008-05-29 Cray Inc. Routing table architecture
US7733793B1 (en) 2003-12-10 2010-06-08 Cisco Technology, Inc. System and method for suppressing silence data in a network environment
US7774496B2 (en) 2003-12-17 2010-08-10 International Business Machines Corporation System and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US7308505B2 (en) * 2003-12-17 2007-12-11 International Business Machines Corporation Method, system and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US20070248096A1 (en) * 2003-12-17 2007-10-25 International Business Machines Corporation System and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US20050149600A1 (en) * 2003-12-17 2005-07-07 International Business Machines Corporation Method, system and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US7539772B2 (en) 2003-12-17 2009-05-26 Lnternational Business Machines Corporation Method for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US20070280248A1 (en) * 2003-12-17 2007-12-06 International Business Machines Corporation Method for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US7457315B1 (en) 2003-12-23 2008-11-25 Cisco Technology, Inc. System and method for compressing information in a communications environment
US7590070B1 (en) 2004-02-03 2009-09-15 Cisco Technology, Inc. System and method for discretionary multiplexing and compressing in a communications environment
US7564381B1 (en) 2004-02-16 2009-07-21 Cisco Technology, Inc. System and method for code-based compression in a communications environment
US20050195812A1 (en) * 2004-03-05 2005-09-08 Samsung Electronics Co., Ltd. Apparatus and method for performing forwarding table searches using consecutive symbols tables
US7440460B2 (en) * 2004-03-05 2008-10-21 Samsung Electronics Co., Ltd. Apparatus and method for forwarding mixed data packet types in a high-speed router
US20050195831A1 (en) * 2004-03-05 2005-09-08 Samsung Electronics Co., Ltd. Apparatus and method for forwarding mixed data packet types in a high-speed router
US7564841B2 (en) * 2004-03-05 2009-07-21 Samsung Electronics Co., Ltd. Apparatus and method for performing forwarding table searches using consecutive symbols tables
US8300824B1 (en) 2004-04-08 2012-10-30 Cisco Technology, Inc. System and method for encrypting data using a cipher text in a communications environment
US7941390B2 (en) 2004-04-27 2011-05-10 International Business Machines Corporation System for managing multi-field classification rules relating to ingress contexts and egress contexts
US20050240604A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Method and system for compressing a search tree structure used in rule classification
US7412431B2 (en) 2004-04-27 2008-08-12 International Business Machines Corporation Method for managing multi-field classification rules relating to ingress
US20080285454A1 (en) * 2004-04-27 2008-11-20 International Business Machines Corporation System for compressing multi-field rule specifications
US7752155B2 (en) * 2004-04-27 2010-07-06 International Business Machines Corporation System and computer program for compressing multi-field classification rules
US20050237938A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Method and system for compressing multi-field rule specifications
US7366728B2 (en) * 2004-04-27 2008-04-29 International Business Machines Corporation System for compressing a search tree structure used in rule classification
US20080249973A1 (en) * 2004-04-27 2008-10-09 International Business Machines Corporation System for managing multi-field classification rules relating to ingress contexts and egress contexts
US7454396B2 (en) 2004-04-27 2008-11-18 International Business Machines Corporation Method for compressing multi-field rule specifications
US20050237939A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Method and system for managing multi-field classification rules relating to ingress contexts and egress contexts
US8005869B2 (en) 2004-04-27 2011-08-23 International Business Machines Corporation System for defining data mappings between data structures
US7599371B1 (en) 2004-06-09 2009-10-06 Cisco Technology, Inc. System and method for optimizing data transport in a communications system
US20060013264A1 (en) * 2004-07-14 2006-01-19 Tekelec Methods and systems for auto-correlating message transfer part (MTP) priority and internet protocol (IP) type of service in converged networks
US7362721B1 (en) 2004-07-28 2008-04-22 Cisco Technology, Inc. System and method for providing fault and error tolerant communications in a network environment
US20060023724A1 (en) * 2004-08-02 2006-02-02 Jing Na Forwarding database in a network switch device
US7646773B2 (en) * 2004-08-02 2010-01-12 Extreme Networks Forwarding database in a network switch device
US7764673B1 (en) 2004-08-04 2010-07-27 Cisco Technology, Inc. System and method for implementing a variable size codebook for compression in a communications environment
US7363316B2 (en) 2004-08-30 2008-04-22 Mendocino Software, Inc. Systems and methods for organizing and mapping data
US7664983B2 (en) 2004-08-30 2010-02-16 Symantec Corporation Systems and methods for event driven recovery management
US20060047714A1 (en) * 2004-08-30 2006-03-02 Mendocino Software, Inc. Systems and methods for rapid presentation of historical views of stored data
US20060047997A1 (en) * 2004-08-30 2006-03-02 Mendocino Software, Inc. Systems and methods for event driven recovery management
US7570662B2 (en) 2004-09-21 2009-08-04 Cisco Technology, Inc. System and method for multiplexing, fragmenting, and interleaving in a communications environment
US20060062253A1 (en) * 2004-09-21 2006-03-23 Cisco Technology, Inc. System and method for multiplexing, fragmenting, and interleaving in a communications environment
US9166805B1 (en) 2004-09-24 2015-10-20 Fortinet, Inc. Scalable IP-services enabled multicast forwarding with efficient resource utilization
US9319303B2 (en) 2004-09-24 2016-04-19 Fortinet, Inc. Scalable IP-services enabled multicast forwarding with efficient resource utilization
US20110122872A1 (en) * 2004-09-24 2011-05-26 Fortinet, Inc. Scalable ip-services enabled multicast forwarding with efficient resource utilization
US9167016B2 (en) 2004-09-24 2015-10-20 Fortinet, Inc. Scalable IP-services enabled multicast forwarding with efficient resource utilization
US10038567B2 (en) 2004-09-24 2018-07-31 Fortinet, Inc. Scalable IP-services enabled multicast forwarding with efficient resource utilization
US8369258B2 (en) 2004-09-24 2013-02-05 Fortinet, Inc. Scalable IP-services enabled multicast forwarding with efficient resource utilization
US20120131215A1 (en) * 2004-11-18 2012-05-24 Fortinet, Inc. Managing hierarchically organized subscriber profiles
US20070115979A1 (en) * 2004-11-18 2007-05-24 Fortinet, Inc. Method and apparatus for managing subscriber profiles
US7808904B2 (en) 2004-11-18 2010-10-05 Fortinet, Inc. Method and apparatus for managing subscriber profiles
US8374088B2 (en) * 2004-11-18 2013-02-12 Fortinet, Inc. Managing hierarchically organized subscriber profiles
US20080117917A1 (en) * 2004-11-18 2008-05-22 Fortinet, Inc. Method and apparatus for managing subscriber profiles
US7606967B2 (en) * 2005-03-18 2009-10-20 Fujitsu Limited Frame transfer method and apparatus
US20060212598A1 (en) * 2005-03-18 2006-09-21 Fujitsu Limited Frame transfer method and apparatus
US7778278B2 (en) 2005-03-28 2010-08-17 Cisco Technology, Inc. System and method for implementing dynamic suppression and recreation of suppressed data in a communications environment
US20060215635A1 (en) * 2005-03-28 2006-09-28 Cisco Technology, Inc. System and method for implementing dynamic suppression and recreation of suppressed data in a communications environment
US8089964B2 (en) * 2005-04-05 2012-01-03 Cisco Technology, Inc. Transporting multicast over MPLS backbone using virtual interfaces to perform reverse-path forwarding checks
US20060221975A1 (en) * 2005-04-05 2006-10-05 Alton Lo Transporting multicast over MPLS backbone using virtual interfaces to perform reverse-path forwarding checks
US8774180B2 (en) 2005-04-05 2014-07-08 Cisco Technology, Inc. Transporting multicast over MPLS backbone using virtual interfaces to perform reverse-path forwarding checks
US7403501B2 (en) 2005-05-03 2008-07-22 Cisco Technology, Inc. System and method for implementing suppression in a communications environment
US20060251063A1 (en) * 2005-05-03 2006-11-09 Cisco Technology, Inc. System and method for implementing suppression in a communications environment
US20060268761A1 (en) * 2005-05-24 2006-11-30 Cisco Technology, Inc. System and method for determining whether to dynamically suppress data in a communications environment
US7642936B2 (en) 2005-05-24 2010-01-05 Cisco Technology, Inc. System and method for determining whether to dynamically suppress data in a communications environment
US7630998B2 (en) * 2005-06-10 2009-12-08 Microsoft Corporation Performing a deletion of a node in a tree data storage structure
US20060282438A1 (en) * 2005-06-10 2006-12-14 Microsoft Corporation Performing a deletion of a node in a tree data storage structure
US7477651B2 (en) 2005-07-01 2009-01-13 Cisco Technology, Inc. System and method for implementing quality of service in a backhaul communications environment
US20070002788A1 (en) * 2005-07-01 2007-01-04 Cisco Technology, Inc. System and method for implementing quality of service in a backhaul communications environment
US20070058539A1 (en) * 2005-08-17 2007-03-15 Cisco Technology, Inc. System and method for implementing suppression for asynchronous transfer mode (ATM) adaptation layer 2 (AAL2) traffic in a communications environment
US20070047463A1 (en) * 2005-08-23 2007-03-01 Jarvis Neil Alasdair J Method of constructing a forwarding database for a data communications network
US8223666B2 (en) * 2005-08-23 2012-07-17 Cisco Technology, Inc. Method of constructing a forwarding database for a data communications network
US7969995B2 (en) * 2005-08-23 2011-06-28 Cisco Technology, Inc. Method and apparatus for constructing a forwarding database for a data communications network
US20070047462A1 (en) * 2005-08-23 2007-03-01 Collins Matthew J Method and apparatus for constructing a forwarding database for a data communications network
US20070091899A1 (en) * 2005-10-21 2007-04-26 Cisco Technology, Inc., A California Corporation Data structure for storing and accessing multiple independent sets of forwarding information
US7551609B2 (en) * 2005-10-21 2009-06-23 Cisco Technology, Inc. Data structure for storing and accessing multiple independent sets of forwarding information
US7675851B2 (en) 2005-11-16 2010-03-09 Cisco Technology, Inc. System and method for synchronizing a back-up device in a communications environment
US20070109959A1 (en) * 2005-11-16 2007-05-17 Cisco Technology, Inc. System and method for synchronizing a back-up device in a communications environment
US7694068B1 (en) 2005-12-08 2010-04-06 Netlogic Microsystems, Inc. Re-entrant processing in a content addressable memory
US20070159967A1 (en) * 2006-01-12 2007-07-12 Cisco Technology, Inc. System and method for implementing a preemptive retransmit for error recovery in a communications environment
US7929571B2 (en) 2006-01-12 2011-04-19 Cisco Technology, Inc. System and method for implementing a preemptive retransmit for error recovery in a communications environment
US20070171825A1 (en) * 2006-01-20 2007-07-26 Anagran, Inc. System, method, and computer program product for IP flow routing
US8547843B2 (en) 2006-01-20 2013-10-01 Saisei Networks Pte Ltd System, method, and computer program product for controlling output port utilization
US20070171826A1 (en) * 2006-01-20 2007-07-26 Anagran, Inc. System, method, and computer program product for controlling output port utilization
US20110219086A1 (en) * 2006-03-01 2011-09-08 Fortinet, Inc. Electronic message and data tracking system
US20070217415A1 (en) * 2006-03-16 2007-09-20 Ijsbrand Wijnands System and method for implementing multicast over a label-switched core network
US20070217346A1 (en) * 2006-03-16 2007-09-20 Samsung Electronics Co., Ltd. Tree-guided distributed link state routing method
KR101255857B1 (en) 2006-03-16 2013-04-17 리서치 파운데이션 오브 더 시티 유니버시티 오브 뉴욕 Tree-guided distributed link state routing method
US8638695B2 (en) 2006-03-16 2014-01-28 Samsung Electronics Co., Ltd. Tree-guided distributed link state routing method
US8934486B2 (en) 2006-03-16 2015-01-13 Cisco Technology, Inc. System and method for implementing multicast over a label-switched core network
US20070263619A1 (en) * 2006-05-12 2007-11-15 Munoz Robert J Methods and Apparatus for Performing Network Operations in Network Devices
US7817629B2 (en) * 2006-05-12 2010-10-19 Agere Systems Inc. Methods and apparatus for performing network operations on packets of data in response to content of particular user-specified protocol header fields
US8000238B2 (en) 2006-08-04 2011-08-16 Cisco Technology, Inc. System and method for detecting and regulating congestion in a communications environment
US20080031131A1 (en) * 2006-08-04 2008-02-07 Bordonaro Frank G System and method for detecting and regulating congestion in a communications environment
US7944823B1 (en) 2006-09-01 2011-05-17 Cisco Technology, Inc. System and method for addressing dynamic congestion abatement for GSM suppression/compression
US20080118007A1 (en) * 2006-11-16 2008-05-22 Cisco Technology, Inc. System and Method for Mitigating the Effects of Bit Insertion in a Communications Environment
US8005116B2 (en) 2006-11-16 2011-08-23 Cisco Technology, Inc. System and method for mitigating the effects of bit insertion in a communications environment
EP1944926A2 (en) 2007-01-08 2008-07-16 Industrial Technology Research Institute Method and system for network data trasmitting
US20090028069A1 (en) * 2007-01-08 2009-01-29 Industrial Technology Research Institute Method and system for network data transmitting
US8040823B2 (en) 2007-01-08 2011-10-18 Industrial Technology Research Institute Method and system for network data transmitting
US7830873B1 (en) * 2007-01-09 2010-11-09 Marvell Israel (M.I.S.L.) Ltd. Implementation of distributed traffic rate limiters
US7933282B1 (en) 2007-02-08 2011-04-26 Netlogic Microsystems, Inc. Packet classification device for storing groups of rules
US7904642B1 (en) 2007-02-08 2011-03-08 Netlogic Microsystems, Inc. Method for combining and storing access control lists
US10027582B2 (en) 2007-06-29 2018-07-17 Amazon Technologies, Inc. Updating routing information based on client location
US9021127B2 (en) 2007-06-29 2015-04-28 Amazon Technologies, Inc. Updating routing information based on client location
US9021129B2 (en) 2007-06-29 2015-04-28 Amazon Technologies, Inc. Request routing utilizing client location information
US9992303B2 (en) 2007-06-29 2018-06-05 Amazon Technologies, Inc. Request routing utilizing client location information
US8024634B2 (en) 2007-08-07 2011-09-20 Cisco Technology, Inc. System and method for implementing a subrate recovery for lost packets in a communications environment
US20090044066A1 (en) * 2007-08-07 2009-02-12 Cisco Technology, Inc. System and Method for Implementing a Subrate Recovery for Lost Packets in a Communications Environment
US20110072110A1 (en) * 2008-03-31 2011-03-24 Swaminathan Sivasubramanian Content management
US9210235B2 (en) 2008-03-31 2015-12-08 Amazon Technologies, Inc. Client side cache management
US10645149B2 (en) 2008-03-31 2020-05-05 Amazon Technologies, Inc. Content delivery reconciliation
US8438263B2 (en) 2008-03-31 2013-05-07 Amazon Technologies, Inc. Locality based content distribution
US9621660B2 (en) 2008-03-31 2017-04-11 Amazon Technologies, Inc. Locality based content distribution
US10554748B2 (en) 2008-03-31 2020-02-04 Amazon Technologies, Inc. Content management
US11909639B2 (en) 2008-03-31 2024-02-20 Amazon Technologies, Inc. Request routing based on class
US10530874B2 (en) 2008-03-31 2020-01-07 Amazon Technologies, Inc. Locality based content distribution
US9009286B2 (en) 2008-03-31 2015-04-14 Amazon Technologies, Inc. Locality based content distribution
US10771552B2 (en) 2008-03-31 2020-09-08 Amazon Technologies, Inc. Content management
US9571389B2 (en) 2008-03-31 2017-02-14 Amazon Technologies, Inc. Request routing based on class
US10797995B2 (en) 2008-03-31 2020-10-06 Amazon Technologies, Inc. Request routing based on class
US9544394B2 (en) 2008-03-31 2017-01-10 Amazon Technologies, Inc. Network resource identification
US9887915B2 (en) 2008-03-31 2018-02-06 Amazon Technologies, Inc. Request routing based on class
US9479476B2 (en) 2008-03-31 2016-10-25 Amazon Technologies, Inc. Processing of DNS queries
US9407699B2 (en) 2008-03-31 2016-08-02 Amazon Technologies, Inc. Content management
US9888089B2 (en) 2008-03-31 2018-02-06 Amazon Technologies, Inc. Client side cache management
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8930544B2 (en) 2008-03-31 2015-01-06 Amazon Technologies, Inc. Network resource identification
US11194719B2 (en) 2008-03-31 2021-12-07 Amazon Technologies, Inc. Cache optimization
US20090248787A1 (en) * 2008-03-31 2009-10-01 Swaminathan Sivasubramanian Content management
US20090248858A1 (en) * 2008-03-31 2009-10-01 Swaminathan Sivasubramanian Content management
US9894168B2 (en) 2008-03-31 2018-02-13 Amazon Technologies, Inc. Locality based content distribution
US20090248697A1 (en) * 2008-03-31 2009-10-01 Richardson David R Cache optimization
US8402137B2 (en) 2008-03-31 2013-03-19 Amazon Technologies, Inc. Content management
US9332078B2 (en) 2008-03-31 2016-05-03 Amazon Technologies, Inc. Locality based content distribution
US8275874B2 (en) 2008-03-31 2012-09-25 Amazon Technologies, Inc. Locality based content distribution
US10511567B2 (en) 2008-03-31 2019-12-17 Amazon Technologies, Inc. Network resource identification
US8386596B2 (en) 2008-03-31 2013-02-26 Amazon Technologies, Inc. Request routing based on class
US8601090B1 (en) * 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US7903666B1 (en) * 2008-03-31 2011-03-08 Extreme Networks, Inc. Method and system for compressing route entries in a route table based on equal-cost multi-paths (ECMPs) matches
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US11451472B2 (en) 2008-03-31 2022-09-20 Amazon Technologies, Inc. Request routing based on class
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US9208097B2 (en) 2008-03-31 2015-12-08 Amazon Technologies, Inc. Cache optimization
US10305797B2 (en) 2008-03-31 2019-05-28 Amazon Technologies, Inc. Request routing based on class
US20110072134A1 (en) * 2008-03-31 2011-03-24 Swaminathan Sivasubramanian Content management
US9954934B2 (en) 2008-03-31 2018-04-24 Amazon Technologies, Inc. Content delivery reconciliation
US8639817B2 (en) 2008-03-31 2014-01-28 Amazon Technologies, Inc. Content management
US8352613B2 (en) 2008-03-31 2013-01-08 Amazon Technologies, Inc. Content management
US8352614B2 (en) 2008-03-31 2013-01-08 Amazon Technologies, Inc. Content management
US8352615B2 (en) 2008-03-31 2013-01-08 Amazon Technologies, Inc. Content management
US8346937B2 (en) 2008-03-31 2013-01-01 Amazon Technologies, Inc. Content management
US9026616B2 (en) 2008-03-31 2015-05-05 Amazon Technologies, Inc. Content delivery reconciliation
US10157135B2 (en) 2008-03-31 2018-12-18 Amazon Technologies, Inc. Cache optimization
US20110072140A1 (en) * 2008-03-31 2011-03-24 Swaminathan Sivasubramanian Content management
US20110078240A1 (en) * 2008-03-31 2011-03-31 Swaminathan Sivasubramanian Content management
US8713156B2 (en) 2008-03-31 2014-04-29 Amazon Technologies, Inc. Request routing based on class
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US11245770B2 (en) 2008-03-31 2022-02-08 Amazon Technologies, Inc. Locality based content distribution
US10158729B2 (en) 2008-03-31 2018-12-18 Amazon Technologies, Inc. Locality based content distribution
US8756325B2 (en) 2008-03-31 2014-06-17 Amazon Technologies, Inc. Content management
US8806053B1 (en) 2008-04-29 2014-08-12 F5 Networks, Inc. Methods and systems for optimizing network traffic using preemptive acknowledgment signals
US8539100B2 (en) * 2008-05-29 2013-09-17 Huawei Technologies Co., Ltd. Method, device, and communications system for managing querying mapping information
US20110072157A1 (en) * 2008-05-29 2011-03-24 Ya Liu Method, device, and communications system for managing querying mapping information
US8458250B2 (en) 2008-06-30 2013-06-04 Amazon Technologies, Inc. Request routing using network computing components
US9608957B2 (en) 2008-06-30 2017-03-28 Amazon Technologies, Inc. Request routing using network computing components
US9021128B2 (en) 2008-06-30 2015-04-28 Amazon Technologies, Inc. Request routing using network computing components
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8392613B2 (en) * 2008-07-03 2013-03-05 Nokia Corporation Network address assignment
US20100005158A1 (en) * 2008-07-03 2010-01-07 Teemu Ilmari Savolainen Network address assignment
US8687638B2 (en) 2008-07-10 2014-04-01 At&T Intellectual Property I, L.P. Methods and apparatus to distribute network IP traffic
US20100008233A1 (en) * 2008-07-10 2010-01-14 Cheng Tien Ee Methods and apparatus to deploy and monitor network layer functionalities
US8031627B2 (en) 2008-07-10 2011-10-04 At&T Intellectual Property I, L.P. Methods and apparatus to deploy and monitor network layer functionalities
US20100008363A1 (en) * 2008-07-10 2010-01-14 Cheng Tien Ee Methods and apparatus to distribute network ip traffic
US20100008240A1 (en) * 2008-07-10 2010-01-14 Cheng Tien Ee Methods and apparatus to monitor network layer functionalities
US8331369B2 (en) 2008-07-10 2012-12-11 At&T Intellectual Property I, L.P. Methods and apparatus to distribute network IP traffic
US7944844B2 (en) 2008-07-10 2011-05-17 At&T Intellectual Property I, L.P. Methods and apparatus to monitor network layer functionalities
US8489737B2 (en) 2008-09-29 2013-07-16 Amazon Technologies, Inc. Monitoring performance and operation of data exchanges
US9088460B2 (en) 2008-09-29 2015-07-21 Amazon Technologies, Inc. Managing resource consolidation configurations
US9160641B2 (en) 2008-09-29 2015-10-13 Amazon Technologies, Inc. Monitoring domain allocation performance
US8307078B2 (en) 2008-09-29 2012-11-06 Amazon Technologies, Inc. Service provider optimization of content management
US8631129B2 (en) 2008-09-29 2014-01-14 Amazon Technologies, Inc. Service provider optimization of content management
US10284446B2 (en) 2008-09-29 2019-05-07 Amazon Technologies, Inc. Optimizing content management
US8296429B2 (en) 2008-09-29 2012-10-23 Amazon Technologies, Inc. Optimizing content management
US10462025B2 (en) 2008-09-29 2019-10-29 Amazon Technologies, Inc. Monitoring performance and operation of data exchanges
US9210099B2 (en) 2008-09-29 2015-12-08 Amazon Technologies, Inc. Optimizing resource configurations
US8286176B1 (en) 2008-09-29 2012-10-09 Amazon Technologies, Inc. Optimizing resource configurations
US8549531B2 (en) 2008-09-29 2013-10-01 Amazon Technologies, Inc. Optimizing resource configurations
US9071502B2 (en) 2008-09-29 2015-06-30 Amazon Technologies, Inc. Service provider optimization of content management
US9660890B2 (en) 2008-09-29 2017-05-23 Amazon Technologies, Inc. Service provider optimization of content management
US8429265B2 (en) 2008-09-29 2013-04-23 Amazon Technologies, Inc. Managing resource consolidation configurations
US8762526B2 (en) 2008-09-29 2014-06-24 Amazon Technologies, Inc. Optimizing content management
US8843625B2 (en) 2008-09-29 2014-09-23 Amazon Technologies, Inc. Managing network data display
US8452870B2 (en) 2008-09-29 2013-05-28 Amazon Technologies, Inc. Monitoring domain allocation performance
US8767734B1 (en) * 2008-10-07 2014-07-01 BCK Networks, Inc. Stream basis set division multiplexing
US8566444B1 (en) 2008-10-30 2013-10-22 F5 Networks, Inc. Methods and system for simultaneous multiple rules checking
US9515949B2 (en) 2008-11-17 2016-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8458360B2 (en) 2008-11-17 2013-06-04 Amazon Technologies, Inc. Request routing utilizing client location information
US8301748B2 (en) 2008-11-17 2012-10-30 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8423667B2 (en) 2008-11-17 2013-04-16 Amazon Technologies, Inc. Updating routing information based on client location
US9451046B2 (en) 2008-11-17 2016-09-20 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US9985927B2 (en) 2008-11-17 2018-05-29 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US9590946B2 (en) 2008-11-17 2017-03-07 Amazon Technologies, Inc. Managing content delivery network service providers
US9444759B2 (en) 2008-11-17 2016-09-13 Amazon Technologies, Inc. Service provider registration by a content broker
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US11811657B2 (en) 2008-11-17 2023-11-07 Amazon Technologies, Inc. Updating routing information based on client location
US9734472B2 (en) 2008-11-17 2017-08-15 Amazon Technologies, Inc. Request routing utilizing cost information
US8510448B2 (en) 2008-11-17 2013-08-13 Amazon Technologies, Inc. Service provider registration by a content broker
US10742550B2 (en) 2008-11-17 2020-08-11 Amazon Technologies, Inc. Updating routing information based on client location
US9787599B2 (en) 2008-11-17 2017-10-10 Amazon Technologies, Inc. Managing content delivery network service providers
US8495220B2 (en) 2008-11-17 2013-07-23 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US10523783B2 (en) 2008-11-17 2019-12-31 Amazon Technologies, Inc. Request routing utilizing client location information
US8788671B2 (en) 2008-11-17 2014-07-22 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US11115500B2 (en) 2008-11-17 2021-09-07 Amazon Technologies, Inc. Request routing utilizing client location information
US8583776B2 (en) 2008-11-17 2013-11-12 Amazon Technologies, Inc. Managing content delivery network service providers
US9251112B2 (en) 2008-11-17 2016-02-02 Amazon Technologies, Inc. Managing content delivery network service providers
US8321588B2 (en) 2008-11-17 2012-11-27 Amazon Technologies, Inc. Request routing utilizing client location information
US11283715B2 (en) 2008-11-17 2022-03-22 Amazon Technologies, Inc. Updating routing information based on client location
US10116584B2 (en) 2008-11-17 2018-10-30 Amazon Technologies, Inc. Managing content delivery network service providers
US8301778B2 (en) 2008-11-17 2012-10-30 Amazon Technologies, Inc. Service provider registration by a content broker
US8667127B2 (en) 2009-03-24 2014-03-04 Amazon Technologies, Inc. Monitoring web site content
US20110109643A1 (en) * 2009-03-24 2011-05-12 Amazon Technologies, Inc. Monitoring web site content
US10264062B2 (en) 2009-03-27 2019-04-16 Amazon Technologies, Inc. Request routing using a popularity identifier to identify a cache component
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8521885B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US9191458B2 (en) 2009-03-27 2015-11-17 Amazon Technologies, Inc. Request routing using a popularity identifier at a DNS nameserver
US10491534B2 (en) 2009-03-27 2019-11-26 Amazon Technologies, Inc. Managing resources and entries in tracking information in resource cache components
US10601767B2 (en) 2009-03-27 2020-03-24 Amazon Technologies, Inc. DNS query processing based on application information
US9083675B2 (en) 2009-03-27 2015-07-14 Amazon Technologies, Inc. Translation of resource identifiers using popularity information upon client request
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8463877B1 (en) 2009-03-27 2013-06-11 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularitiy information
US8996664B2 (en) 2009-03-27 2015-03-31 Amazon Technologies, Inc. Translation of resource identifiers using popularity information upon client request
US10230819B2 (en) 2009-03-27 2019-03-12 Amazon Technologies, Inc. Translation of resource identifiers using popularity information upon client request
US9237114B2 (en) 2009-03-27 2016-01-12 Amazon Technologies, Inc. Managing resources in resource cache components
US10574787B2 (en) 2009-03-27 2020-02-25 Amazon Technologies, Inc. Translation of resource identifiers using popularity information upon client request
US10521348B2 (en) 2009-06-16 2019-12-31 Amazon Technologies, Inc. Managing resources using resource expiration data
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US10783077B2 (en) 2009-06-16 2020-09-22 Amazon Technologies, Inc. Managing resources using resource expiration data
US9176894B2 (en) 2009-06-16 2015-11-03 Amazon Technologies, Inc. Managing resources using resource expiration data
US8543702B1 (en) 2009-06-16 2013-09-24 Amazon Technologies, Inc. Managing resources using resource expiration data
US20110044351A1 (en) * 2009-08-19 2011-02-24 Brocade Communications Systems, Inc. Techniques for efficiently updating routing information upon shortest path tree computation
US9106512B2 (en) 2009-08-19 2015-08-11 Brocade Communications Systems, Inc. Techniques for efficiently updating routing information upon shortest path tree computation
US8565247B2 (en) 2009-08-19 2013-10-22 Brocade Communications Systems, Inc. Techniques for efficiently updating routing information upon shortest path tree computation
US9130756B2 (en) 2009-09-04 2015-09-08 Amazon Technologies, Inc. Managing secure content in a content delivery network
US10785037B2 (en) 2009-09-04 2020-09-22 Amazon Technologies, Inc. Managing secure content in a content delivery network
US10135620B2 (en) 2009-09-04 2018-11-20 Amazon Technologis, Inc. Managing secure content in a content delivery network
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9712325B2 (en) 2009-09-04 2017-07-18 Amazon Technologies, Inc. Managing secure content in a content delivery network
US20110069706A1 (en) * 2009-09-21 2011-03-24 Brocade Communications Systems, Inc. Techniques for next-hop optimization
US8873563B2 (en) * 2009-09-21 2014-10-28 Brocade Communications Systems, Inc. Techniques for next-hop optimization
US10157280B2 (en) 2009-09-23 2018-12-18 F5 Networks, Inc. System and method for identifying security breach attempts of a website
US9246776B2 (en) 2009-10-02 2016-01-26 Amazon Technologies, Inc. Forward-based resource delivery network management techniques
US10218584B2 (en) 2009-10-02 2019-02-26 Amazon Technologies, Inc. Forward-based resource delivery network management techniques
US9893957B2 (en) 2009-10-02 2018-02-13 Amazon Technologies, Inc. Forward-based resource delivery network management techniques
US8868961B1 (en) 2009-11-06 2014-10-21 F5 Networks, Inc. Methods for acquiring hyper transport timing and devices thereof
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US11108815B1 (en) 2009-11-06 2021-08-31 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8331370B2 (en) * 2009-12-17 2012-12-11 Amazon Technologies, Inc. Distributed routing architecture
US8331371B2 (en) * 2009-12-17 2012-12-11 Amazon Technologies, Inc. Distributed routing architecture
US8902897B2 (en) 2009-12-17 2014-12-02 Amazon Technologies, Inc. Distributed routing architecture
US20150172178A1 (en) * 2009-12-17 2015-06-18 Amazon Technologies, Inc. Distributed routing architecture
US10063459B2 (en) 2009-12-17 2018-08-28 Amazon Technologies, Inc. Distributed routing architecture
US20110149964A1 (en) * 2009-12-17 2011-06-23 Judge Alan M Distributed routing architecture
CN102771094A (en) * 2009-12-17 2012-11-07 亚马逊技术有限公司 Distributed routing architecture
US20110149965A1 (en) * 2009-12-17 2011-06-23 Judge Alan M Distributed routing architecture
US8971328B2 (en) 2009-12-17 2015-03-03 Amazon Technologies, Inc. Distributed routing architecture
US20110149963A1 (en) * 2009-12-17 2011-06-23 Hamilton James R Distributed routing architecture
CN102771094B (en) * 2009-12-17 2015-11-25 亚马逊技术有限公司 Distributed routing framework
US9282032B2 (en) * 2009-12-17 2016-03-08 Amazon Technologies, Inc. Distributed routing architecture
US8325730B2 (en) * 2009-12-17 2012-12-04 Amazon Technologies, Inc. Distributed routing architecture
US11205037B2 (en) 2010-01-28 2021-12-21 Amazon Technologies, Inc. Content distribution network
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US10506029B2 (en) 2010-01-28 2019-12-10 Amazon Technologies, Inc. Content distribution network
US8438330B2 (en) 2010-05-17 2013-05-07 Netlogic Microsystems, Inc. Updating cam arrays using prefix length distribution prediction
US9893994B2 (en) 2010-05-24 2018-02-13 At&T Intellectual Property I, L.P. Methods and apparatus to route control packets based on address partitioning
US9491085B2 (en) 2010-05-24 2016-11-08 At&T Intellectual Property I, L.P. Methods and apparatus to route control packets based on address partitioning
US8699484B2 (en) 2010-05-24 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to route packets in a network
US9141625B1 (en) 2010-06-22 2015-09-22 F5 Networks, Inc. Methods for preserving flow state during virtual machine migration and devices thereof
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US8908545B1 (en) 2010-07-08 2014-12-09 F5 Networks, Inc. System and method for handling TCP performance in network access with driver initiated application tunnel
USRE47019E1 (en) 2010-07-14 2018-08-28 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US9083760B1 (en) 2010-08-09 2015-07-14 F5 Networks, Inc. Dynamic cloning and reservation of detached idle connections
US9288153B2 (en) 2010-08-26 2016-03-15 Amazon Technologies, Inc. Processing encoded content
US8630174B1 (en) 2010-09-14 2014-01-14 F5 Networks, Inc. System and method for post shaping TCP packetization
US8463909B1 (en) 2010-09-15 2013-06-11 F5 Networks, Inc. Systems and methods for managing server resources
US8886981B1 (en) 2010-09-15 2014-11-11 F5 Networks, Inc. Systems and methods for idle driven scheduling
US8804504B1 (en) 2010-09-16 2014-08-12 F5 Networks, Inc. System and method for reducing CPU load in processing PPP packets on a SSL-VPN tunneling device
US10931738B2 (en) 2010-09-28 2021-02-23 Amazon Technologies, Inc. Point of presence management in request routing
US11336712B2 (en) 2010-09-28 2022-05-17 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US9160703B2 (en) 2010-09-28 2015-10-13 Amazon Technologies, Inc. Request routing management based on network components
US10225322B2 (en) 2010-09-28 2019-03-05 Amazon Technologies, Inc. Point of presence management in request routing
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US9787775B1 (en) 2010-09-28 2017-10-10 Amazon Technologies, Inc. Point of presence management in request routing
US9794216B2 (en) 2010-09-28 2017-10-17 Amazon Technologies, Inc. Request routing in a networked environment
US10778554B2 (en) 2010-09-28 2020-09-15 Amazon Technologies, Inc. Latency measurement in resource requests
US9800539B2 (en) 2010-09-28 2017-10-24 Amazon Technologies, Inc. Request routing management based on network components
US8676918B2 (en) 2010-09-28 2014-03-18 Amazon Technologies, Inc. Point of presence management in request routing
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US10079742B1 (en) 2010-09-28 2018-09-18 Amazon Technologies, Inc. Latency measurement in resource requests
US9253065B2 (en) 2010-09-28 2016-02-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US11632420B2 (en) 2010-09-28 2023-04-18 Amazon Technologies, Inc. Point of presence management in request routing
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US9497259B1 (en) 2010-09-28 2016-11-15 Amazon Technologies, Inc. Point of presence management in request routing
US10015237B2 (en) 2010-09-28 2018-07-03 Amazon Technologies, Inc. Point of presence management in request routing
US9106701B2 (en) 2010-09-28 2015-08-11 Amazon Technologies, Inc. Request routing management based on network components
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US11108729B2 (en) 2010-09-28 2021-08-31 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US9185012B2 (en) 2010-09-28 2015-11-10 Amazon Technologies, Inc. Latency measurement in resource requests
US9191338B2 (en) 2010-09-28 2015-11-17 Amazon Technologies, Inc. Request routing in a networked environment
US9554276B2 (en) 2010-10-29 2017-01-24 F5 Networks, Inc. System and method for on the fly protocol conversion in obtaining policy enforcement information
US8959571B2 (en) 2010-10-29 2015-02-17 F5 Networks, Inc. Automated policy builder
WO2012068579A2 (en) 2010-11-19 2012-05-24 Extreme Networks, Inc. Methods, systems, and computer readable media for next hop scaling with link aggregation
CN103370910B (en) * 2010-11-19 2016-05-18 极进网络公司 Utilize link aggregation to carry out method, system and the computer-readable medium of down hop convergent-divergent
US20120127999A1 (en) * 2010-11-19 2012-05-24 Grosser Jr Donald B Methods, systems, and computer readable media for next hop scaling with link aggregation
CN103370910A (en) * 2010-11-19 2013-10-23 极进网络公司 Methods, systems, and computer readable media for next hop scaling with link aggregation
EP2641360A4 (en) * 2010-11-19 2016-11-02 Extreme Networks Inc Methods, systems, and computer readable media for next hop scaling with link aggregation
US20120127996A1 (en) * 2010-11-19 2012-05-24 Grosser Donald B Methods, systems, and computer readable media for next hop scaling
US8605726B2 (en) * 2010-11-19 2013-12-10 Extreme Networks, Inc. Methods, systems, and computer readable media for next hop scaling with link aggregation
US8660118B2 (en) * 2010-11-19 2014-02-25 Extreme Networks, Inc. Methods, systems, and computer readable media for next hop scaling
US9930131B2 (en) 2010-11-22 2018-03-27 Amazon Technologies, Inc. Request routing processing
US9003040B2 (en) 2010-11-22 2015-04-07 Amazon Technologies, Inc. Request routing processing
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10951725B2 (en) 2010-11-22 2021-03-16 Amazon Technologies, Inc. Request routing processing
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
US8627467B2 (en) 2011-01-14 2014-01-07 F5 Networks, Inc. System and method for selectively storing web objects in a cache memory based on policy decisions
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
US11604667B2 (en) 2011-04-27 2023-03-14 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9007918B2 (en) 2011-05-20 2015-04-14 Brocade Communications Systems, Inc. Techniques for efficiently updating routing information
US8503464B2 (en) 2011-05-20 2013-08-06 Brocade Communications Systems, Inc. Techniques for efficiently updating routing information
US20120320067A1 (en) * 2011-06-17 2012-12-20 Konstantine Iourcha Real time on-chip texture decompression using shader processors
US11043010B2 (en) 2011-06-17 2021-06-22 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US12080032B2 (en) 2011-06-17 2024-09-03 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US10510164B2 (en) 2011-06-17 2019-12-17 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9246819B1 (en) 2011-06-20 2016-01-26 F5 Networks, Inc. System and method for performing message-based load balancing
US9237124B2 (en) * 2011-07-14 2016-01-12 Marvell Israel (M.I.S.L) Ltd. Scaling of virtual machine addresses in datacenters
US20130016723A1 (en) * 2011-07-14 2013-01-17 Carmi Arad Scaling of virtual machine addresses in datacenters
US9270766B2 (en) 2011-12-30 2016-02-23 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
US9985976B1 (en) 2011-12-30 2018-05-29 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
US9628554B2 (en) 2012-02-10 2017-04-18 Amazon Technologies, Inc. Dynamic content delivery
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9172753B1 (en) 2012-02-20 2015-10-27 F5 Networks, Inc. Methods for optimizing HTTP header based authentication and devices thereof
US9231879B1 (en) 2012-02-20 2016-01-05 F5 Networks, Inc. Methods for policy-based network traffic queue management and devices thereof
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US9172674B1 (en) 2012-03-21 2015-10-27 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US10097616B2 (en) 2012-04-27 2018-10-09 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US9338095B2 (en) 2012-05-01 2016-05-10 F5 Networks, Inc. Data flow segment optimized for hot flows
US9154423B1 (en) 2012-05-01 2015-10-06 F5 Networks, Inc. Minimize SYN-flood issues with flow cache while maintaining performance
US9525632B1 (en) 2012-05-01 2016-12-20 F5 Networks, Inc. Minimize recycle SYN issues for split TCP hot flows to improve system reliability and performance
US9762492B2 (en) 2012-05-01 2017-09-12 F5 Networks, Inc. Data flow segment optimized for hot flows
US10225362B2 (en) 2012-06-11 2019-03-05 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US11729294B2 (en) 2012-06-11 2023-08-15 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US11303717B2 (en) 2012-06-11 2022-04-12 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9596184B1 (en) 2012-07-23 2017-03-14 F5 Networks, Inc. Hot service flow hardware offloads based on service priority and resource usage
US9203771B1 (en) 2012-07-23 2015-12-01 F5 Networks, Inc. Hot service flow hardware offloads based on service priority and resource usage
US9525659B1 (en) * 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US10015241B2 (en) 2012-09-20 2018-07-03 Amazon Technologies, Inc. Automated profiling of resource usage
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10542079B2 (en) 2012-09-20 2020-01-21 Amazon Technologies, Inc. Automated profiling of resource usage
US9049148B1 (en) 2012-09-28 2015-06-02 Juniper Networks, Inc. Dynamic forwarding plane reconfiguration in a network device
US10645056B2 (en) 2012-12-19 2020-05-05 Amazon Technologies, Inc. Source-dependent address resolution
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9929959B2 (en) 2013-06-04 2018-03-27 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US10374955B2 (en) 2013-06-04 2019-08-06 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US20150195262A1 (en) * 2014-01-08 2015-07-09 Cavium, Inc. Processing request keys based on a key size supported by underlying processing elements
US9268855B2 (en) * 2014-01-08 2016-02-23 Cavium, Inc. Processing request keys based on a key size supported by underlying processing elements
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
WO2015191751A1 (en) * 2014-06-11 2015-12-17 Level 3 Communcations, Llc Multi-peer routing in a network
US9667535B2 (en) * 2014-06-11 2017-05-30 Level 3 Communications, Llc Multi-peer routing in a network
US20150365321A1 (en) * 2014-06-11 2015-12-17 Level 3 Communications, Llc Multi-peer routing in a network
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10122630B1 (en) 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US20170316048A1 (en) * 2014-12-08 2017-11-02 Nec Europe Ltd. Method and system for filtering data series
US11381487B2 (en) 2014-12-18 2022-07-05 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US11863417B2 (en) 2014-12-18 2024-01-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10728133B2 (en) 2014-12-18 2020-07-28 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US11297140B2 (en) 2015-03-23 2022-04-05 Amazon Technologies, Inc. Point of presence based data uploading
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US10469355B2 (en) 2015-03-30 2019-11-05 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10180993B2 (en) 2015-05-13 2019-01-15 Amazon Technologies, Inc. Routing based request correlation
US11461402B2 (en) 2015-05-13 2022-10-04 Amazon Technologies, Inc. Routing based request correlation
US10691752B2 (en) 2015-05-13 2020-06-23 Amazon Technologies, Inc. Routing based request correlation
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US10200402B2 (en) 2015-09-24 2019-02-05 Amazon Technologies, Inc. Mitigating network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US11134134B2 (en) 2015-11-10 2021-09-28 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10666756B2 (en) 2016-06-06 2020-05-26 Amazon Technologies, Inc. Request management for hierarchical cache
US11463550B2 (en) 2016-06-06 2022-10-04 Amazon Technologies, Inc. Request management for hierarchical cache
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US11457088B2 (en) 2016-06-29 2022-09-27 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10284457B2 (en) * 2016-07-12 2019-05-07 Dell Products, L.P. System and method for virtual link trunking
US10516590B2 (en) 2016-08-23 2019-12-24 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10469442B2 (en) 2016-08-24 2019-11-05 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US11968286B2 (en) 2016-08-31 2024-04-23 Viavi Solutions Inc. Packet filtering using binary search trees
US20180062998A1 (en) * 2016-08-31 2018-03-01 Viavi Solutions Inc. Packet filtering using binary search trees
US11770463B2 (en) 2016-08-31 2023-09-26 Viavi Solutions Inc. Packet filtering using binary search trees
US11005977B2 (en) * 2016-08-31 2021-05-11 Viavi Solutions Inc. Packet filtering using binary search trees
US11330008B2 (en) 2016-10-05 2022-05-10 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US10505961B2 (en) 2016-10-05 2019-12-10 Amazon Technologies, Inc. Digitally signed network address
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10616250B2 (en) 2016-10-05 2020-04-07 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US11762703B2 (en) 2016-12-27 2023-09-19 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US12052310B2 (en) 2017-01-30 2024-07-30 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US11496438B1 (en) 2017-02-07 2022-11-08 F5, Inc. Methods for improved network security using asymmetric traffic delivery and devices thereof
US10791119B1 (en) 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US10931662B1 (en) 2017-04-10 2021-02-23 F5 Networks, Inc. Methods for ephemeral authentication screening and devices thereof
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US11294920B2 (en) * 2017-06-30 2022-04-05 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for accessing time series data in memory
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
US11290418B2 (en) 2017-09-25 2022-03-29 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof
US11570106B2 (en) 2018-07-23 2023-01-31 Huawei Technologies Co., Ltd. Address processing method and network device
CN110753133A (en) * 2018-07-23 2020-02-04 华为技术有限公司 Method for processing address and network equipment
US11159418B2 (en) * 2018-10-29 2021-10-26 Telia Company Ab Method and an apparatus for routing data packets in a network topology
US11362986B2 (en) 2018-11-16 2022-06-14 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
CN113661723B (en) * 2019-05-17 2023-11-10 腾讯美国有限责任公司 Method and apparatus for interconnecting local area networks in device-to-device communication
WO2020236634A1 (en) * 2019-05-17 2020-11-26 Tencent Technology (Shenzhen) Company Limited Method and apparatus for device-to-device interconnected local area network
US11102700B2 (en) 2019-05-17 2021-08-24 Tencent America LLC Method and apparatus for device-to-device interconnected local area network
CN113661723A (en) * 2019-05-17 2021-11-16 腾讯美国有限责任公司 Method and apparatus for interconnecting local area networks for device-to-device communication
US11288244B2 (en) * 2019-06-10 2022-03-29 Akamai Technologies, Inc. Tree deduplication

Also Published As

Publication number Publication date
CN1148917C (en) 2004-05-05
AU759929B2 (en) 2003-05-01
EP1155537A1 (en) 2001-11-21
CA2363963A1 (en) 2000-08-31
EP1155537B1 (en) 2018-10-03
WO2000051298A1 (en) 2000-08-31
WO2000051298B1 (en) 2000-11-16
IL144795A0 (en) 2002-06-30
EP1155537A4 (en) 2006-09-20
WO2000051298A8 (en) 2001-03-29
CN1341314A (en) 2002-03-20
CA2363963C (en) 2007-04-24
AU3705000A (en) 2000-09-14

Similar Documents

Publication Publication Date Title
US6192051B1 (en) Network router search engine using compressed tree forwarding table
McAuley et al. Fast routing table lookup using CAMs
US6546391B1 (en) High-speed lookup method and high-speed lookup apparatus
US6661787B1 (en) Integrated data table in a network
US6678269B1 (en) Network switching device with disparate database formats
JP3735471B2 (en) Packet relay device and LSI
EP1635519B1 (en) Optimization of routing database in a network processor
US5909440A (en) High speed variable length best match look-up in a switching device
CA2274962C (en) High speed variable length best match look-up in a switching device
JP4482259B2 (en) Method and apparatus for a 4-way hash table
US7031320B2 (en) Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables
US7260096B2 (en) Method and router for forwarding internet data packets
Nilsson et al. IP-address lookup using LC-tries
US6243720B1 (en) Address translation method and system having a forwarding table data structure
US6553029B1 (en) Link aggregation in ethernet frame switches
US7016352B1 (en) Address modification within a switching device in a packet-switched network
US6449256B1 (en) Fast level four switching using crossproducting
US20050171937A1 (en) Memory efficient hashing algorithm
US20030026246A1 (en) Cached IP routing tree for longest prefix search
CA2326928C (en) Route lookup engine
US7624226B1 (en) Network search engine (NSE) and method for performing interval location using prefix matching
US6658003B1 (en) Network relaying apparatus and network relaying method capable of high-speed flow detection
JPH06261078A (en) Table retrieval method and router
US20050038907A1 (en) Routing cache management with route fragmentation
US7330469B2 (en) Internet protocol address lookup system and method using three-layer table architecture

Legal Events

Date Code Title Description
AS Assignment

Owner name: REDSTONE COMMUNICATIONS, INC., MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LIPMAN, MICHAEL E.;HEYDA, RUSSELL L.;REEL/FRAME:009896/0794

Effective date: 19990408

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: JUNIPER NETWORKS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:REDSTONE COMMUNICATIONS, INC.;REEL/FRAME:013352/0780

Effective date: 20020924

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 4

SULP Surcharge for late payment
FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12