US20010028651A1 - Cache table management device for router and program recording medium thereof - Google Patents

Cache table management device for router and program recording medium thereof Download PDF

Info

Publication number
US20010028651A1
US20010028651A1 US09/828,160 US82816001A US2001028651A1 US 20010028651 A1 US20010028651 A1 US 20010028651A1 US 82816001 A US82816001 A US 82816001A US 2001028651 A1 US2001028651 A1 US 2001028651A1
Authority
US
United States
Prior art keywords
entry
hit
entries
cache table
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/828,160
Other versions
US6993031B2 (en
Inventor
Tutomu Murase
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Assigned to NEC CORPORATION reassignment NEC CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MURASE, TUTOMU
Publication of US20010028651A1 publication Critical patent/US20010028651A1/en
Application granted granted Critical
Publication of US6993031B2 publication Critical patent/US6993031B2/en
Adjusted expiration legal-status Critical
Expired - Fee Related 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Definitions

  • the present invention relates to a cache table management technique for routers and relates in particular to management of a cache table when entries are entered or extracted in groups between the forwarding table and cache table.
  • Routers connected to a plurality of networks carry out communications over different networks. To perform this task, the routers connecting the plurality of networks must transfer (or forward) clusters of communication information (packets)
  • Routers receive packets input from connected networks at a network interface (hereafter, referred to as “interface”). Based on the transmit destination address contained in the header portion of the received packet, the router searches the forwarding table held by each router, and determines a interface number for transmitting the packet, and forwards the packet to the determined interface.
  • interface a network interface
  • the interface for each router contains a routing table and a cache memory for searching the routing table.
  • the routing table in the router is written with information indicating whether packets can arrive to the destination network via an interface of the router.
  • Each of entries in the routing table stores the destination network address, the mask corresponding to each destination network address, the destination network address within the transmission network and the transmission interface number.
  • the cache memory contains a CAM (Content Addressable Memory) and a correspondence table.
  • the destination network address acquired by the pointer to the applicable entry on the routing table is stored in the CAM.
  • This correspondence table holds entries linked to the CAM entries, and stores pointers for the applicable entry of the routing table.
  • the network address is first collated with CAM destination network addresses, and when an applicable address is found, a pointer is acquired for a routing table from entries for tables matching links to entries stored in the applicable CAM network address.
  • this technology utilized the complete match search method containing a host address as the search key for making table searches of the cache memory. Consequently, this technology had the problems that too much time was required for searches, and that a huge cache memory was required for raising the hit rate.
  • EP-A-1035687 describes a router including a forwarding table capable of being longest prefix match searched and a cache table capable of being longest prefix match searched.
  • a forwarding table has entries containing all paths needed in the routing, and a cache table stores a portion of the forwarding table entries.
  • a cache memory stores a portion of the forwarding table entries and the forwarding table stores all required entries except for those stored in the cache table.
  • a long search time is required for searching the large quantity of data in the forwarding table.
  • the cache table requires only a short search time though it has only a small data storage capacity.
  • the cache is first searched for a longest prefix match. If an entry is found in the cache (called “hit”) then the search ends here. However, if an entry is not found (called “mishit”), then a longest prefix match search is then made in the forwarding table.
  • the forwarding table contains all entries, so a search will always find a hit and the search then ends.
  • the longest prefix match is search for matching prefixes from among possible entry candidates and the entry having the longest matching prefix is the hit entry.
  • a network address of “100.120.140.5” is a match for any of the prefixes (A) (B) and (C) so that (A) (B) and (C) all become search candidates.
  • the entry having the longest prefix length is selected so that in this case, the longest prefix length equals 24 so that the search result (C) 100.120.140.0/24 is a hit.
  • the entries input to the cache table are described.
  • the insertion and extraction of entries from the cache table is not the copy or deletion of particular single entries but instead the movement of a plurality or in some cases single entries under specified rules.
  • the short part of the prefix length for an entry having the same prefix is called the parent and the long part of the prefix length is called the child, and when input to a cache, all of its children are always input together into the cache, and during output from a caches all of its parents are always extracted together from the cache.
  • the plurality of entries for movement complying with this system are referred to as entry groups.
  • the LRU(Least Recently Used) method was utilized as a selection method in the forwarding technology in the above two examples.
  • the LRU method is effective in inputting and extracting individual entries
  • the LRU has a first problem in that in contrast to the individual entries as in EP-A-1035687, the LRU is not effective for use with entry groups or in other words, under the restriction of inputting and extracting a plurality of related entries in clusters. As shown in FIG.
  • An algorithm such as the LRU tends to handle data mechanically according the number of times the data is referred to for making a selection, creating a second problem that a criticality (or importance) level cannot be assigned to data as needed or more specifically, that the extent of line connections cannot be easily assigned according to policy or a fee system.
  • a criticality (or importance) level cannot be assigned to data as needed or more specifically, that the extent of line connections cannot be easily assigned according to policy or a fee system.
  • the conventional LRU method treats the input and output of all entries from the cache in the same way, so that data cannot be handled according to its level of importance.
  • the present invention has the object of providing a management device and program recording medium for input and output of entry groups from the cache to improve router packet processing time by raising the cache hit rate in routers having caches, and lower the probability of having to search the forwarding table which requires more time than searching the cache and also reduce the router packet processing time.
  • Another object of the invention is selection of an entry group for assigning a weight to the search process, according to the criticality (importance) of the entry, or in other words to provide a method for selecting entry groups to input or extract from the cache.
  • the cache table management device used in the router of this invention is comprised of:
  • a forwarding table having a plurality of entries, each of said entries having a set of information showing a collection of addresses comprised of prefix bits and prefix lengths, information showing packet output paths for the address collection, the priority level information, and said forwarding table being searched by a longest prefix match search;
  • hit record database containing hit information added to the contents of the applicable entry among all entries of the forwarding table, contents of said hit record database being updated when a hit occurs in the forwarding table or the cache table;
  • an entry selection circuit to select entry groups to be interchanged when needed while taking the information from the bit data base and priority level information into account.
  • entries with a high hit probability can be placed in the cache so that searches can be made successful with high probability, and the overall search processing speed is improved.
  • the applicable entries are input into the cache according to their order of priority so that the cache contents have a high hit probability.
  • entries with a low hit probability can be given a lower priority level and largely eliminated from the cache so that the cache can be effectively used.
  • the hit probability can be raised because a typical value for the entry group can be obtained utilizing a total figure for the average, maximum value and minimum value of the entry group.
  • the entry group is comprised of a large number of entries, and when known that some entries are rarely used, the typical value can be determined by utilizing just a portion of that entry group, and that typical value is near the true value of that entry group.
  • the search speed can be adjusted according to the criticality (importance level), by establishing a priority level to the entry or cache area according to the criticality assigned by means of the policy or the fee system.
  • FIG. 1 is a block diagram of the first embodiment of the invention.
  • FIG. 2 is a detailed block diagram of the packet processing circuit 101 in FIG. 1.
  • FIG. 3 is a detailed block diagram of the cache table 102 in FIG. 1.
  • FIG. 4 is a detailed block diagram of the hit record database 104 in FIG. 1.
  • FIG. 5 is a detailed block diagram of the entry selection circuit 105 in FIG. 1.
  • FIG. 6 is a process flowchart of the entry group typical value circuit 1057 in FIG. 5.
  • FIG. 7 is a detailed block diagram of the arbitration circuit 1052 in FIG. 5.
  • FIG. 8 is a block diagram of the second embodiment of the invention.
  • FIG. 9 is a detailed block diagram of the packet processing circuit 101 in FIG. 8.
  • FIG. 10 is a detailed block diagram of the hit record database in FIG. 8.
  • FIG. 11 is a detailed block diagram of the entry selection circuit in FIG. 8.
  • FIG. 12 is a figure for specifically describing the invention.
  • FIG. 13 is a process flowchart for the program achieved in the router of the cache table management device of the invention.
  • FIG. 14 is a detailed flowchart of the entry select circuit step 1305 in FIG. 13.
  • FIG. 1 is a block diagram of the entire structure of the first embodiment of the router of the invention.
  • the router is comprised of a packet processing circuit 101 , a cache table 102 , a forwarding table 103 , a hit record database 104 and an entry selection circuit 105 .
  • Each component of the router is described next.
  • the description assumes use of the first structural example. In other words, entries containing all paths necessary for routing are input into the forwarding table 103 , and a portion of entries of the forwarding table 103 is input into the cache table 102 .
  • the packet processing circuit 101 is connected to the cache table 102 and the forwarding table 103 .
  • the cache table 102 is connected to the forwarding table 103 and the hit record database 104 and the entry selection circuit 105 .
  • the hit record database 104 is further connected to the forwarding table 103 and the entry selection circuit 105 .
  • the entry selection circuit 105 is connected to the cache table 102 and the forwarding table 103 . Unless stated otherwise, the longest prefix search is hereafter referred to simply as search.
  • the forwarding table 103 contains a plurality of stored entries each of which stores the following information: (a)information showing a collection of addresses including prefix bits and prefix lengths, (b)information showing packet output paths for the address collection, and (c)priority level information for selecting entries when interchanging entries in the forwarding table 103 and the cache table 102 .
  • the cache table 102 is stored with contents for all entries (entry groups) of forwarding table 103 found as “parent” hit entries when the forwarding table 103 was searched using the transmission destination address of the received packet as the key. Referring here to cache tables and forwarding tables, also includes their related search devices as well as the tables themselves.
  • the packet processing circuit 101 extracts the destination network address (hereafter “address”) from the packet and uses that destination network address as a key to search the cache table 102 .
  • the cache table 102 is searched with this key and if an entry hit is found, the information that a hit entry was found is notified to the packet processing circuit 101 along with the address of the cache table 102 holding the hit entry.
  • a mishit is reported to the packet processing circuit 101 .
  • the packet processing circuit 101 ends the search processing when notified with the hit address, or performs a search of the forwarding table 103 when notified of a mishit.
  • a destination network address is input as the key to the forwarding table 103 .
  • the forwarding table 103 is then searched by means of the destination network address (key) that was input, and the packet processing circuit 101 is notified with the hit address of the forwarding table 103 .
  • the hit record database 104 is written with information for all forwarding table entries such as the entry number, the hit address in the cache table 102 , the hit address in the forwarding table 103 , the priority level of each entry, the time of the hit, and what entry is affiliated with the same entry of an entry group.
  • the entry priority level signifies what entry of the entries of forwarding table 103 should be input to the cache table 102 , or what entry should be extracted, according to the priority level, and as described later on, is determined by priority level information such as the entry characteristic threshold value, entry characteristic range, number of hits stored also in the forwarding table, and the hit time stored only in the hit data base, etc.
  • the forwarding table 103 copies the contents of the entries in the forwarding table 103 to the cache table 102 according to instructions from the entry selection circuit 105 .
  • the entries input from the cache table 103 are stored (or written) according to instructions from the entry selection circuit 105 , and the entry contents are erased (deleted) according to instructions from the entry selection circuit 105 .
  • the entry selection circuit 105 determines the entry present in the cache table 102 based on the priority level of each entry, after referring to the hit database 104 , and commands the moving (storing or deletion) of data to the cache table 102 and the forwarding table 103 .
  • FIG. 2 is a block diagram showing the packet processing circuit 101 in detail.
  • the packet processor circuit 101 shown in FIG. 2 is comprised of a header copy circuit 1011 , an address extractor circuit 1012 , a hit address or output port information converter circuit 1013 , and an output port transration circuit 1014 .
  • the header copy circuit 1011 receives the packet, copies the header containing the IP address from this packet, and sends it to the address extractor circuit 1012 .
  • the packet itself is sent to the output port transration circuit 1014 .
  • the address extractor circuit 1012 extracts the IP address from the copied header, and sends it to the cache table 102 and the forwarding table 103 .
  • the hit address or output port information converter circuit 1013 receives the hit address information from either of the cache table 102 or the forwarding table 103 , converts the hit address information to output port information and sends the information to the output port transration circuit 1014 .
  • the output port transration circuit 1014 receives the packet from the header copy circuit 1011 , and receives the output port information from hit address or output port information converter circuit 1013 , and links them.
  • the conversion in the hit address or output port information converter circuit 1013 is implemented by searching the table.
  • the table consists of a combination of the hit addresses and the output port interface numbers.
  • the cache table 102 is shown in detail in FIG. 3.
  • the cache table 102 according to FIG. 3 is comprised of a search key register 1021 , a longest prefix search circuit 1022 , a result information circuit 1023 , an entry circuit 1024 , and a memory with bit mask capability 1025 .
  • the search key register 1021 receives the IP address from the address extractor circuit 1012 in the packet processing circuit 101 .
  • the longest prefix search circuit 1022 compares the IP address and the contents of each entry of the memory with bit mask capability 1025 , and determines the entry constituting the longest prefix match.
  • the longest prefix search circuit 1022 sends the determined entry address (memory address) or in other words the hit address or information that there is no match, to the packet processing circuit 101 and the result information circuit 1023 .
  • the result information circuit 1023 sends the time of the hit in the address, or in other words, information on the current time, to the hit database 104 .
  • the entry circuit 1024 receives the information sent from the entry selection circuit 105 and the forwarding table 103 , and deletes, rewrites (updates) or reads out each entry of the memory with bit mask capability 1025 based on the received information.
  • the forwarding table 103 is of course on a larger scale than the cache table 102 but that structure is identical to the block diagram of the cache table 102 shown in FIG. 3.
  • the hit record database 104 is shown in detail in FIG. 4.
  • the hit record database 104 of FIG. 4 is comprised of a read/write controller 1041 and a status table 1042 .
  • the read/write controller 1041 receives the hit address and hit address time information from the cache table 102 or the forwarding table 103 , and writes a hit address from the status table 1042 and corresponding hit time information for that entry.
  • hit information is received from the forwarding table 103
  • the read/write controller 1041 sends all entry information of a entry group comprised of the hit entry and the child entry (or entries), to the entry selection device 105 .
  • the status table 1042 stores in each entry, the number of that entry, the hit address in the cache table 102 , the hit address in the forwarding table 103 , the entry zone for the cache table 102 , the threshold value in the cache table 102 , the threshold value in the forwarding table 103 , the number (count) of cache hits, the hit time, the entry number when input to the entry group in the cache table 102 and the entry number when input to the entry group in the forwarding table 103 .
  • FIG. 5 is a detailed block diagram of the entry selection circuit 105 .
  • the entry selection circuit 105 shown in FIG. 5 is comprised of an entry determiner circuit 1051 , an arbitration circuit 1052 , a threshold register 1053 , a zone register 1054 , a hit count comparator 1055 , a hit time comparator 1056 , and an entry group typical value circuit 1057 .
  • the entry group typical value circuit 1057 receives all (N pieces) entry information of all above mentioned entry groups. As shown by the flowchart in FIG. 6, the entry group typical value circuit 1057 excludes the entry having the maximum value and entry having the minimum value, per each threshold value, zone, hit count and hit time from all this entry information, and extracts the (N ⁇ 2) entry. The four typical values of threshold value, zone, hit count and hit time are then determined from the extracted entry. The threshold and zone values as shown in FIG. 6 are the highest values within the extracted entry, the hit count is the average value, and the hit time is the most recent value. Each of the typical values are sent to the threshold register 1053 , zone register 1054 , hit count comparator 1055 and hit time comparator 1056 .
  • the threshold value here is a reference value for other attributes determining the priority level for entry group selection, or in other words, a reference value for comparing the zone, hit count and hit time.
  • the zone value here is that entry characteristic priority level and is acquired from the policy or the fee system.
  • the comparators 1055 and 1056 hold a table linking the entry groups already present in the cachetable 102 and the typical values for those entry groups.
  • the typical value for the entry groups in that table are compared with values sent from the entry group typical value circuit 1057 and a comparison made while taking the zone and threshold value into account.
  • the hit count and the hit time are compared to the threshold value, and only entry groups exceeding the threshold value are selected.
  • the hit count and hit time for all entry groups held in the comparators 1055 and 1056 are multiplied by the priority level.
  • a priority level is assigned to each entry group in the order of the size of the calculated value.
  • the order of the comparison results, typical values sent from the entry group typical value circuit 1057 , and typical values of the entry group already present in the cache table 102 are sent to the arbitration circuit 1052 .
  • the arbitration circuit 1052 when there is a difference in the rank of the data sent from the respective circuits, these differences are referred to and a final rank determined as shown in the process flowchart in FIG. 7.
  • a random number from 0 to 1 is generated as shown in FIG. 7, that random number divided into two parts and hit count and hit time allotted to each parts, the rank of the allotted attributes is sent to the entry determiner circuit 1051 as the final rank.
  • the entry determiner circuit 1051 monitors the available space in the cache table 102 , and checks whether or not space is available so N entries can be added. When empty space is available., the entry determiner circuit 1051 writes the N entries as is. However, when no empty space is available, the entry determiner circuit 1051 deletes the lowest ranking entry group from the cache table 102 and repeats the deletions until sufficient space is available. Finally, the information on the deleted entry groups are sent to each of the circuits 1053 through 1056 . The circuits 1053 through 1056 receive the information on the deleted entry groups and delete those entry groups from the table.
  • the priority level is determined by the four attributes of threshold value, zone, hit count and hit time as described above however the invention is not limited to this method and may use at least one additional attribute for determining the priority level.
  • the interior of the cache table 102 is divided into two zones, and an example is described setting these zone respectively as A and B.
  • a hit count is recorded in each entry in the hit record database 104 .
  • the entry selection circuit 105 marks for erasure from the cache table 102 , hit count typical values for entry groups in zone A that are lower than a threshold value M.
  • hit count typical values for entry groups that less than half the threshold value M are marked for erasure.
  • entry groups marked for erasure are assigned a weight of 2 to 1 for zone A and zone Band the entry group for erasure selected from the cache table 102 .
  • the threshold value of zone A is 10, and for zone B is 5, and entry groups below these threshold values are selected from zone A and zone B.
  • entry groups are further selected for erasure based on a probability variable N.
  • a probability variable N According to weighting entry groups in zone A are set as N, and the weighted entry groups in zone B are set as 2 N. Entry groups with the highest probability are therefore selected for erasure. This process is repeated if further deletions are required.
  • the weighting for A can also be set to 0 (zero) and A eliminated as a candidate for erasure regardless of the probability for A.
  • the threshold can be set to infinity so that typical values of hit counts for all entries are less than the threshold value, in other words, no effective threshold value is used.
  • a method not utilizing a hit count may also be used.
  • the threshold and the typical values for the hit count were utilized in zones A and B.
  • a different optional combination can also be used for zones A and B.
  • Thresholds with different values for example can be assigned to the zones A and B, and in zones a and b completely separate from zones A and B, separate typical values for respectively an average value of the respective hit count and maximum value can also be utilized.
  • the entry selection circuit 105 may also perform operations in the cache table 102 , and perform the same operations in the forwarding table 103 , and select entries from the forwarding table 103 for input to the cache table 102 .
  • each entry possesses zone information and threshold values showing what zone in the forwarding table the entries can be input (what zone the entries can belong to) as attributes for determining the entry priority level.
  • the attributes in this embodiment are fixed, but dynamically changing attributes can also be used. In the case of dynamic changes for example, changes in the attribute can be made according to the policy server instructions.
  • Rules for the policy server to run the network are listed by the network supervisor. When a rule is listed in the policy server for example that entries in the daytime have high priority but entries at nighttime have low priority, the policy server must switch priority levels each day and night to conform to that rule, and switch the priority level of each entry.
  • FIG. 8 is an overall block diagram of the router of the third embodiment of the invention installed with a policy server 301 .
  • a policy server 301 defines the entry zone and threshold values in the hit record database 104 and the entry selection circuit 105 , and reflects these values in priority control by way of the mapping circuit 1043 and the mapping circuit 1058 .
  • the policy server 301 receives from a terminal 302 , values for zones and thresholds defined for each entry by the user in the forwarding table, and retains these values. When a change occurs in the information being retained, the policy server 301 sends that information by way of the header copy circuit 1011 and the address extractor circuit 1012 within the packet processing circuit 101 , to the hit record database 104 and the entry selection circuit 105 (see FIG. 9).
  • the mapping circuit 1043 writes the values for the zone and threshold that were changed, into the status table 1042 by way of the read/write controller 1041 (see FIG. 10).
  • the mapping circuit 1058 changes (rewrites) the threshold value and zone for each entry present in the threshold register 1053 and zone register 1054 (see FIG. 11).
  • the fourth embodiment of the invention is next explained.
  • the attribute possessed by each entry is changed and obtained by means of the packet that was input.
  • the packet header holds a value determining the attribute and the attribute of the entry that was a hit, is changed according to this value.
  • the address extractor circuit 1012 extracts the address from the copied packet header and sends that address to the cache table 102 and the forwarding table 103 .
  • the zone value and threshold value are determined by the packet header address or a portion of header other than the packet header address (a value of the Time To Live (TTL) value of the IP version 4 packet header, for instance), and are sent to the mapping circuit 1043 and the mapping circuit 1058 .
  • TTL Time To Live
  • the zone value and threshold values is for example 32 or more, the zone has low priority and the threshold is 50, and when the TTL is less than 32, the zone value has high priority and the threshold value is 100.
  • the operation of the mapping circuit 1043 and the mapping circuit 1058 is the same as the operation in the third embodiment.
  • the entry selection circuit 105 during evaluation (rating) of typical values of the entry group, the entry selection circuit 105 , first of all selects an entry according to the specified rules from all the entries comprising the entry group. The typical values of the entry group are then found based on the selected entries (entries to be calculated). The average values from among all values except for the minimum and maximum values of the entry comprising the entry group are then set as the typical values. Alternatively, the average values for the entry time excluding the most recent (most recent past) time of the hit entries comprising the entry group are set as the typical values.
  • the program for implementing the cache management device explained above may be recorded on a recording medium such as a semiconductor memory, CD-ROM or floppy disk, loaded into the router and implemented.
  • the router contains a recording device to implement the cache and hit database.
  • the loaded program has the same functions as the packet processing circuit and entry selection circuit.
  • the forwarding table 103 is implemented (step 301 ) in the recording device contained in the router.
  • the cache table 103 is implemented (step 1302 ) in the recording device contained in the router.
  • the hit record database is implemented (step 1303 ) in the recording device contained in the router.
  • the forwarding table 103 , the cache table 102 , and the hit record database 104 are implemented on the recording device in FIG. 1 and FIG. 8.
  • the packet processing circuit 101 is implemented (step 1304 ) in the router, and further, the entry determiner circuit is implemented (step 1305 ) in the router.
  • the entry determiner circuit 1057 is implemented (step 1401 ).
  • the comparator circuits (threshold register 1053 , zone register 1054 , hit comparator circuit 1055 , and hit time comparator 1056 ) are implemented (step 1402 ).
  • the arbitration circuit 1052 is next implemented (step 1403 ). Further, the entry determiner circuit is implemented (step 1404 ).
  • the above described cache management device is and operated and run in the router.
  • the cache hit probability can be improved even if the entries are inserted and removed from the cache in groups.
  • the reason this effect can be achieved is that often used entries are placed in the cache. Often used entries are selected by utilizing a priority level determined by factors such as the frequency of usage and the overall use count.
  • the cache hit rate is clearly improved by selecting entries with a high frequency of usage compared to selecting entries at random.
  • the attributes of an entry to have improved processing performance can be specified based on a certain policy so that a level of priority can be attached.
  • a level of priority can be attached.
  • a fee system for example that applies different fees to each customer, by raising the priority level of entries containing addresses of clients from whom high fees are obtained, the packets exchanged with those clients can be processed at high speed and can be discriminated from clients paying low fees.

Abstract

A cache table management device for raising the cache hit probability for entries inserted in groups between a forwarding table 103 and cache 102. A forwarding table 103 stores the priority level of entries inserted and extracted in a cache 102. A packet processing circuit 101 extracts the destination address from the received packet, searches the packet using the destination address, and searches the forwarding table if no hits occur. The hit database 104 stores the contents of the forwarding table for all forwarding table entries, as well as rating values for the cache usage status. An entry selection device 105 refers to the hit database when an entry must be added or deleted between the forwarding table and the cache, and selects the corresponding entry group. That determination is made utilizing typical values for attributes of the priority level such as the average bit rate of each entry group.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0001]
  • The present invention relates to a cache table management technique for routers and relates in particular to management of a cache table when entries are entered or extracted in groups between the forwarding table and cache table. [0002]
  • 2. Description of the Related Art [0003]
  • Routers connected to a plurality of networks, carry out communications over different networks. To perform this task, the routers connecting the plurality of networks must transfer (or forward) clusters of communication information (packets) [0004]
  • Routers receive packets input from connected networks at a network interface (hereafter, referred to as “interface”). Based on the transmit destination address contained in the header portion of the received packet, the router searches the forwarding table held by each router, and determines a interface number for transmitting the packet, and forwards the packet to the determined interface. [0005]
  • When a large number of networks are connected to the router and a large number of terminals connected to the network, the forwarding table held by router is on a vast scale so the router forwarding process slows down. [0006]
  • A technology was disclosed in the related art for forwarding and high speed packet processing using cache tables. [0007]
  • In Japanese Patent Laid-Open No. 6-261078, the interface for each router contains a routing table and a cache memory for searching the routing table. [0008]
  • The routing table in the router is written with information indicating whether packets can arrive to the destination network via an interface of the router. Each of entries in the routing table, stores the destination network address, the mask corresponding to each destination network address, the destination network address within the transmission network and the transmission interface number. [0009]
  • The cache memory contains a CAM (Content Addressable Memory) and a correspondence table. The destination network address acquired by the pointer to the applicable entry on the routing table is stored in the CAM. This correspondence table holds entries linked to the CAM entries, and stores pointers for the applicable entry of the routing table. [0010]
  • When searching a routing table once again for the same network address, the network address is first collated with CAM destination network addresses, and when an applicable address is found, a pointer is acquired for a routing table from entries for tables matching links to entries stored in the applicable CAM network address. [0011]
  • Searching of tables is speeded up since destination network addresses having a large search count are stored in the cache memory, and the use of correspondence tables allows reducing the CAM entry size. [0012]
  • However, this technology utilized the complete match search method containing a host address as the search key for making table searches of the cache memory. Consequently, this technology had the problems that too much time was required for searches, and that a huge cache memory was required for raising the hit rate. [0013]
  • Whereupon, in EP-A-1035687 describes a router including a forwarding table capable of being longest prefix match searched and a cache table capable of being longest prefix match searched. [0014]
  • The respective table structures and search methods for this technology are first explained. In a first structural example, a forwarding table has entries containing all paths needed in the routing, and a cache table stores a portion of the forwarding table entries. In a second structural example, a cache memory stores a portion of the forwarding table entries and the forwarding table stores all required entries except for those stored in the cache table. [0015]
  • An operation to enter and extract entries from the cache table and forwarding table is necessary in order to raise the cache hit rate. In the first structural example, the entry is copied from the forwarding table to the cache table, and the entry is discarded (deleted) from the cache table to the forwarding table. In the second structural example however, the entry is moved from the forwarding table to the cache table, the entry is also of course, moved from the cache table to the forwarding table. In the following explanation, the copy and delete operations in the first structural example are described. In the case of the second structural example however, the copying in the first structural example is equivalent to moving (operation), while the deletion operation in the first structural example is equivalent to moving. Copying is referred to simply as “input”. [0016]
  • A long search time is required for searching the large quantity of data in the forwarding table. The cache table on the other hand, requires only a short search time though it has only a small data storage capacity. When a search request is made, the cache is first searched for a longest prefix match. If an entry is found in the cache (called “hit”) then the search ends here. However, if an entry is not found (called “mishit”), then a longest prefix match search is then made in the forwarding table. The forwarding table contains all entries, so a search will always find a hit and the search then ends. As also described in, in EP-A-1035687, the longest prefix match is search for matching prefixes from among possible entry candidates and the entry having the longest matching prefix is the hit entry. [0017]
  • When there are for example, four entries having network addresses shown by the prefixes (A) 100.120.0.0/16 (B) 100.0.0 0/8 (C) 100.120.140.0/24 and (D) 100.120.180.0/24, a network address of “100.120.140.5” is assigned as a search key. Here, the 100.120. 0. 0 are called the prefix bits and numbers punctuated by periods are respectively [0018] 8 bits expressed in decimal notation. When a decimal number comprised of these 8 bits is 0 (zero) it signifies an optional (don't care) number. The number after the signifies the prefix length. A network address of “100.120.140.5” is a match for any of the prefixes (A) (B) and (C) so that (A) (B) and (C) all become search candidates. However, in a longest matching prefix search, the entry having the longest prefix length is selected so that in this case, the longest prefix length equals 24 so that the search result (C) 100.120.140.0/24 is a hit.
  • Next, the entries input to the cache table are described. In the invention disclosed in EP-A-1035687, the insertion and extraction of entries from the cache table is not the copy or deletion of particular single entries but instead the movement of a plurality or in some cases single entries under specified rules. In other words, the short part of the prefix length for an entry having the same prefix is called the parent and the long part of the prefix length is called the child, and when input to a cache, all of its children are always input together into the cache, and during output from a caches all of its parents are always extracted together from the cache. In the following description, the plurality of entries for movement complying with this system are referred to as entry groups. [0019]
  • A specific example for making an entry group is described next. In the four entries (A) (B) (C) (D) for example, when the entry called (A) 100.120.0.0/16 is moved to the cache from the forwarding table, (A) (C) and (D) become an entry group. Next, when (A) is moved from the cache table to the forwarding table, only (A) becomes an entry group. [0020]
  • When the interface numbers serving as the output path numbers for the above (A) 100.120.0.0/16 (C) 100.120.140.0/24 and (D) 100.120.180.0/24 are different. If only (A) and 100.120.0.0/16 is placed in the cache and a search key of “1100.120.140.5” is then applied, the interface number matching (C) should be obtained at the longest prefix match searching result. In this case, however, the interface number matching with (A) is instead obtained from the entries in the cache. Also, when (C) is taken out of the cache and (A) is left in the cache, and the search key of “100.120.140.5” is applied, instead of the interface number matching (C), the interface number matching (A) will be a hit in the cache. [0021]
  • In the cache system, however, since the data to be entered in the cache is a portion of the entire data in the forwarding table, an entry must be selected from the forwarding table and input to the cache. At this time, the cache hit probability must be raised in order to perform a high speed search, so selection of the entry to be placed in the cache is a critical issue. Also, when dynamic changes occur in the contents of the cache entries, the selection of entries to be extracted from the cache also becomes a critical issue. [0022]
  • The LRU(Least Recently Used) method was utilized as a selection method in the forwarding technology in the above two examples. However, even though the LRU method is effective in inputting and extracting individual entries, the LRU has a first problem in that in contrast to the individual entries as in EP-A-1035687, the LRU is not effective for use with entry groups or in other words, under the restriction of inputting and extracting a plurality of related entries in clusters. As shown in FIG. 12 for example, when extracting (C) from a cache containing prefix (A) 100.120.0.0/16 with time sequence “3:00” “2:00”, and prefix (C) 100.120.140.0/24 with time base “1:00” and“0:30”, the (A) or parent is extracted but the (D) prefix having a older time usage than (A) will still remain in the cache. [0023]
  • An algorithm such as the LRU tends to handle data mechanically according the number of times the data is referred to for making a selection, creating a second problem that a criticality (or importance) level cannot be assigned to data as needed or more specifically, that the extent of line connections cannot be easily assigned according to policy or a fee system. For example even in cases where entries have different levels of importance (criticality), the conventional LRU method treats the input and output of all entries from the cache in the same way, so that data cannot be handled according to its level of importance. [0024]
  • SUMMARY OF THE INVENTION
  • The present invention has the object of providing a management device and program recording medium for input and output of entry groups from the cache to improve router packet processing time by raising the cache hit rate in routers having caches, and lower the probability of having to search the forwarding table which requires more time than searching the cache and also reduce the router packet processing time. [0025]
  • Another object of the invention is selection of an entry group for assigning a weight to the search process, according to the criticality (importance) of the entry, or in other words to provide a method for selecting entry groups to input or extract from the cache. [0026]
  • The cache table management device used in the router of this invention is comprised of: [0027]
  • (a) a forwarding table having a plurality of entries, each of said entries having a set of information showing a collection of addresses comprised of prefix bits and prefix lengths, information showing packet output paths for the address collection, the priority level information, and said forwarding table being searched by a longest prefix match search; [0028]
  • (b) a cache table for, when entries are substituted, being written the entry group containing the entry to be substituted and the applicable child of the substituted entry from the forwarding table, and for being deleted on moved, when deleting or moving entries, the entry group containing the applicable entry and the applicable parent of the deleted on moved entry; [0029]
  • (c) hit record database containing hit information added to the contents of the applicable entry among all entries of the forwarding table, contents of said hit record database being updated when a hit occurs in the forwarding table or the cache table; [0030]
  • (d) a packet processing circuit to extract the destination network address from an input packet, to search the forwarding table or the cache table using the destination network address as a key, and to transmit the packet on the acquired output paths ;and [0031]
  • (e) an entry selection circuit to select entry groups to be interchanged when needed while taking the information from the bit data base and priority level information into account. [0032]
  • In the invention, entries with a high hit probability can be placed in the cache so that searches can be made successful with high probability, and the overall search processing speed is improved. In other words, when entries having a high hit probability are known, the applicable entries are input into the cache according to their order of priority so that the cache contents have a high hit probability. Conversely, entries with a low hit probability can be given a lower priority level and largely eliminated from the cache so that the cache can be effectively used. [0033]
  • The hit probability can be raised because a typical value for the entry group can be obtained utilizing a total figure for the average, maximum value and minimum value of the entry group. The entry group is comprised of a large number of entries, and when known that some entries are rarely used, the typical value can be determined by utilizing just a portion of that entry group, and that typical value is near the true value of that entry group. [0034]
  • The search speed can be adjusted according to the criticality (importance level), by establishing a priority level to the entry or cache area according to the criticality assigned by means of the policy or the fee system.[0035]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of the first embodiment of the invention. [0036]
  • FIG. 2 is a detailed block diagram of the [0037] packet processing circuit 101 in FIG. 1.
  • FIG. 3 is a detailed block diagram of the cache table [0038] 102 in FIG. 1.
  • FIG. 4 is a detailed block diagram of the [0039] hit record database 104 in FIG. 1.
  • FIG. 5 is a detailed block diagram of the [0040] entry selection circuit 105 in FIG. 1.
  • FIG. 6 is a process flowchart of the entry group [0041] typical value circuit 1057 in FIG. 5.
  • FIG. 7 is a detailed block diagram of the [0042] arbitration circuit 1052 in FIG. 5.
  • FIG. 8 is a block diagram of the second embodiment of the invention. [0043]
  • FIG. 9is a detailed block diagram of the [0044] packet processing circuit 101 in FIG. 8.
  • FIG. 10 is a detailed block diagram of the hit record database in FIG. 8. [0045]
  • FIG. 11 is a detailed block diagram of the entry selection circuit in FIG. 8. [0046]
  • FIG. 12 is a figure for specifically describing the invention. [0047]
  • FIG. 13 is a process flowchart for the program achieved in the router of the cache table management device of the invention. [0048]
  • FIG. 14 is a detailed flowchart of the entry [0049] select circuit step 1305 in FIG. 13.
  • DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The preferred embodiments of the invention are hereafter described while referring to the accompanying drawings. [0050]
  • FIG. 1 is a block diagram of the entire structure of the first embodiment of the router of the invention. The router is comprised of a [0051] packet processing circuit 101, a cache table 102, a forwarding table 103, a hit record database 104 and an entry selection circuit 105. Each component of the router is described next. Here, the description assumes use of the first structural example. In other words, entries containing all paths necessary for routing are input into the forwarding table 103, and a portion of entries of the forwarding table 103 is input into the cache table 102.
  • In FIG. 1, the [0052] packet processing circuit 101 is connected to the cache table 102 and the forwarding table 103. The cache table 102 is connected to the forwarding table 103 and the hit record database 104 and the entry selection circuit 105. The hit record database 104 is further connected to the forwarding table 103 and the entry selection circuit 105. The entry selection circuit 105 is connected to the cache table 102 and the forwarding table 103. Unless stated otherwise, the longest prefix search is hereafter referred to simply as search.
  • The forwarding table [0053] 103 contains a plurality of stored entries each of which stores the following information: (a)information showing a collection of addresses including prefix bits and prefix lengths, (b)information showing packet output paths for the address collection, and (c)priority level information for selecting entries when interchanging entries in the forwarding table 103 and the cache table 102.
  • The cache table [0054] 102 is stored with contents for all entries (entry groups) of forwarding table 103 found as “parent” hit entries when the forwarding table 103 was searched using the transmission destination address of the received packet as the key. Referring here to cache tables and forwarding tables, also includes their related search devices as well as the tables themselves.
  • When a packet is input, the [0055] packet processing circuit 101 extracts the destination network address (hereafter “address”) from the packet and uses that destination network address as a key to search the cache table 102. The cache table 102 is searched with this key and if an entry hit is found, the information that a hit entry was found is notified to the packet processing circuit 101 along with the address of the cache table 102 holding the hit entry. However, when no hit is found in the cache table 102, a mishit is reported to the packet processing circuit 101. The packet processing circuit 101 ends the search processing when notified with the hit address, or performs a search of the forwarding table 103 when notified of a mishit.
  • In the search of the forwarding table [0056] 103, a destination network address is input as the key to the forwarding table 103. The forwarding table 103 is then searched by means of the destination network address (key) that was input, and the packet processing circuit 101 is notified with the hit address of the forwarding table 103.
  • At this time, either one of the cache table [0057] 102 or forwarding table 103 having a hit, rewrites the hit record database 104. The hit record database 104 is written with information for all forwarding table entries such as the entry number, the hit address in the cache table 102, the hit address in the forwarding table 103, the priority level of each entry, the time of the hit, and what entry is affiliated with the same entry of an entry group. The entry priority level here, signifies what entry of the entries of forwarding table 103 should be input to the cache table 102, or what entry should be extracted, according to the priority level, and as described later on, is determined by priority level information such as the entry characteristic threshold value, entry characteristic range, number of hits stored also in the forwarding table, and the hit time stored only in the hit data base, etc.
  • The forwarding table [0058] 103 copies the contents of the entries in the forwarding table 103 to the cache table 102 according to instructions from the entry selection circuit 105. The entries input from the cache table 103 are stored (or written) according to instructions from the entry selection circuit 105, and the entry contents are erased (deleted) according to instructions from the entry selection circuit 105.
  • The [0059] entry selection circuit 105 determines the entry present in the cache table 102 based on the priority level of each entry, after referring to the hit database 104, and commands the moving (storing or deletion) of data to the cache table 102 and the forwarding table 103.
  • The [0060] elements 101 through 105 comprising the above packet processing circuit 101 are next explained in detail while referring to FIG. 2, FIG. 3, FIG. 4 and FIG. 5.
  • FIG. 2 is a block diagram showing the [0061] packet processing circuit 101 in detail. The packet processor circuit 101 shown in FIG. 2, is comprised of a header copy circuit 1011, an address extractor circuit 1012, a hit address or output port information converter circuit 1013, and an output port transration circuit 1014.
  • The [0062] header copy circuit 1011 receives the packet, copies the header containing the IP address from this packet, and sends it to the address extractor circuit 1012. The packet itself is sent to the output port transration circuit 1014. The address extractor circuit 1012 extracts the IP address from the copied header, and sends it to the cache table 102 and the forwarding table 103. The hit address or output port information converter circuit 1013 receives the hit address information from either of the cache table 102 or the forwarding table 103, converts the hit address information to output port information and sends the information to the output port transration circuit 1014. The output port transration circuit 1014 receives the packet from the header copy circuit 1011, and receives the output port information from hit address or output port information converter circuit 1013, and links them. The conversion in the hit address or output port information converter circuit 1013 is implemented by searching the table. The table consists of a combination of the hit addresses and the output port interface numbers.
  • The cache table [0063] 102 is shown in detail in FIG. 3. The cache table 102 according to FIG. 3 is comprised of a search key register 1021, a longest prefix search circuit 1022, a result information circuit 1023, an entry circuit 1024, and a memory with bit mask capability 1025. The search key register 1021 receives the IP address from the address extractor circuit 1012 in the packet processing circuit 101. The longest prefix search circuit 1022 compares the IP address and the contents of each entry of the memory with bit mask capability 1025, and determines the entry constituting the longest prefix match. The longest prefix search circuit 1022 sends the determined entry address (memory address) or in other words the hit address or information that there is no match, to the packet processing circuit 101 and the result information circuit 1023. The result information circuit 1023 sends the time of the hit in the address, or in other words, information on the current time, to the hit database 104. The entry circuit 1024 receives the information sent from the entry selection circuit 105 and the forwarding table 103, and deletes, rewrites (updates) or reads out each entry of the memory with bit mask capability 1025 based on the received information.
  • The forwarding table [0064] 103 is of course on a larger scale than the cache table 102 but that structure is identical to the block diagram of the cache table 102 shown in FIG. 3.
  • The [0065] hit record database 104 is shown in detail in FIG. 4. The hit record database 104 of FIG. 4 is comprised of a read/write controller 1041 and a status table 1042.
  • The read/[0066] write controller 1041 receives the hit address and hit address time information from the cache table 102 or the forwarding table 103, and writes a hit address from the status table 1042 and corresponding hit time information for that entry. When hit information is received from the forwarding table 103, the read/write controller 1041 sends all entry information of a entry group comprised of the hit entry and the child entry (or entries), to the entry selection device 105.
  • The status table [0067] 1042 stores in each entry, the number of that entry, the hit address in the cache table 102, the hit address in the forwarding table 103, the entry zone for the cache table 102, the threshold value in the cache table 102, the threshold value in the forwarding table 103, the number (count) of cache hits, the hit time, the entry number when input to the entry group in the cache table 102 and the entry number when input to the entry group in the forwarding table 103.
  • FIG. 5 is a detailed block diagram of the [0068] entry selection circuit 105. The entry selection circuit 105 shown in FIG. 5 is comprised of an entry determiner circuit 1051, an arbitration circuit 1052, a threshold register 1053, a zone register 1054, a hit count comparator 1055, a hit time comparator 1056, and an entry group typical value circuit 1057.
  • The entry group [0069] typical value circuit 1057 receives all (N pieces) entry information of all above mentioned entry groups. As shown by the flowchart in FIG. 6, the entry group typical value circuit 1057 excludes the entry having the maximum value and entry having the minimum value, per each threshold value, zone, hit count and hit time from all this entry information, and extracts the (N−2) entry. The four typical values of threshold value, zone, hit count and hit time are then determined from the extracted entry. The threshold and zone values as shown in FIG. 6 are the highest values within the extracted entry, the hit count is the average value, and the hit time is the most recent value. Each of the typical values are sent to the threshold register 1053, zone register 1054, hit count comparator 1055 and hit time comparator 1056.
  • The threshold value here, is a reference value for other attributes determining the priority level for entry group selection, or in other words, a reference value for comparing the zone, hit count and hit time. The zone value here, is that entry characteristic priority level and is acquired from the policy or the fee system. [0070]
  • The [0071] comparators 1055 and 1056 hold a table linking the entry groups already present in the cachetable 102 and the typical values for those entry groups. The typical value for the entry groups in that table are compared with values sent from the entry group typical value circuit 1057 and a comparison made while taking the zone and threshold value into account. In this embodiment, the hit count and the hit time are compared to the threshold value, and only entry groups exceeding the threshold value are selected. The hit count and hit time for all entry groups held in the comparators 1055 and 1056 are multiplied by the priority level. A priority level is assigned to each entry group in the order of the size of the calculated value. The order of the comparison results, typical values sent from the entry group typical value circuit 1057, and typical values of the entry group already present in the cache table 102 are sent to the arbitration circuit 1052.
  • In the [0072] arbitration circuit 1052 when there is a difference in the rank of the data sent from the respective circuits, these differences are referred to and a final rank determined as shown in the process flowchart in FIG. 7. A random number from 0 to 1 is generated as shown in FIG. 7, that random number divided into two parts and hit count and hit time allotted to each parts, the rank of the allotted attributes is sent to the entry determiner circuit 1051 as the final rank.
  • The [0073] entry determiner circuit 1051 monitors the available space in the cache table 102, and checks whether or not space is available so N entries can be added. When empty space is available., the entry determiner circuit 1051 writes the N entries as is. However, when no empty space is available, the entry determiner circuit 1051 deletes the lowest ranking entry group from the cache table 102 and repeats the deletions until sufficient space is available. Finally, the information on the deleted entry groups are sent to each of the circuits 1053 through 1056. The circuits 1053 through 1056 receive the information on the deleted entry groups and delete those entry groups from the table.
  • The priority level is determined by the four attributes of threshold value, zone, hit count and hit time as described above however the invention is not limited to this method and may use at least one additional attribute for determining the priority level. [0074]
  • Next, in the second embodiment of the invention is described In this embodiment the interior of the cache table [0075] 102 is divided into two zones, and an example is described setting these zone respectively as A and B. In this example, a hit count is recorded in each entry in the hit record database 104. The entry selection circuit 105 marks for erasure from the cache table 102, hit count typical values for entry groups in zone A that are lower than a threshold value M. In the zone B, hit count typical values for entry groups that less than half the threshold value M are marked for erasure. Further, entry groups marked for erasure are assigned a weight of 2 to 1 for zone A and zone Band the entry group for erasure selected from the cache table 102. For example, the threshold value of zone A is 10, and for zone B is 5, and entry groups below these threshold values are selected from zone A and zone B. In these selected entry groups, entry groups are further selected for erasure based on a probability variable N. According to weighting entry groups in zone A are set as N, and the weighted entry groups in zone B are set as 2N. Entry groups with the highest probability are therefore selected for erasure. This process is repeated if further deletions are required.
  • The weighting for A can also be set to 0 (zero) and A eliminated as a candidate for erasure regardless of the probability for A. Conversely, the threshold can be set to infinity so that typical values of hit counts for all entries are less than the threshold value, in other words, no effective threshold value is used. [0076]
  • A method not utilizing a hit count may also be used. In the above example, the threshold and the typical values for the hit count, were utilized in zones A and B. However a different optional combination can also be used for zones A and B. Thresholds with different values for example, can be assigned to the zones A and B, and in zones a and b completely separate from zones A and B, separate typical values for respectively an average value of the respective hit count and maximum value can also be utilized. [0077]
  • The [0078] entry selection circuit 105 may also perform operations in the cache table 102, and perform the same operations in the forwarding table 103, and select entries from the forwarding table 103 for input to the cache table 102.
  • The third embodiment of the invention is next explained. In this embodiment, each entry possesses zone information and threshold values showing what zone in the forwarding table the entries can be input (what zone the entries can belong to) as attributes for determining the entry priority level. The attributes in this embodiment are fixed, but dynamically changing attributes can also be used. In the case of dynamic changes for example, changes in the attribute can be made according to the policy server instructions. Rules for the policy server to run the network are listed by the network supervisor. When a rule is listed in the policy server for example that entries in the daytime have high priority but entries at nighttime have low priority, the policy server must switch priority levels each day and night to conform to that rule, and switch the priority level of each entry. [0079]
  • FIG. 8 is an overall block diagram of the router of the third embodiment of the invention installed with a [0080] policy server 301. A policy server 301 defines the entry zone and threshold values in the hit record database 104 and the entry selection circuit 105, and reflects these values in priority control by way of the mapping circuit 1043 and the mapping circuit 1058.
  • The [0081] policy server 301 in other words, receives from a terminal 302, values for zones and thresholds defined for each entry by the user in the forwarding table, and retains these values. When a change occurs in the information being retained, the policy server 301 sends that information by way of the header copy circuit 1011 and the address extractor circuit 1012 within the packet processing circuit 101, to the hit record database 104 and the entry selection circuit 105 (see FIG. 9).
  • In the [0082] hit record database 104, the mapping circuit 1043 writes the values for the zone and threshold that were changed, into the status table 1042 by way of the read/write controller 1041 (see FIG. 10). In the entry selection circuit 105, the mapping circuit 1058 changes (rewrites) the threshold value and zone for each entry present in the threshold register 1053 and zone register 1054 (see FIG. 11).
  • The fourth embodiment of the invention is next explained. In this embodiment, the attribute possessed by each entry is changed and obtained by means of the packet that was input. The packet header holds a value determining the attribute and the attribute of the entry that was a hit, is changed according to this value. [0083]
  • The [0084] address extractor circuit 1012 extracts the address from the copied packet header and sends that address to the cache table 102 and the forwarding table 103. Also, the zone value and threshold value are determined by the packet header address or a portion of header other than the packet header address (a value of the Time To Live (TTL) value of the IP version 4 packet header, for instance), and are sent to the mapping circuit 1043 and the mapping circuit 1058. When the TTL for the zone value and threshold values is for example 32 or more, the zone has low priority and the threshold is 50, and when the TTL is less than 32, the zone value has high priority and the threshold value is 100. The operation of the mapping circuit 1043 and the mapping circuit 1058 is the same as the operation in the third embodiment.
  • The fifth embodiment of the invention is next explained. In this embodiment, during evaluation (rating) of typical values of the entry group, the [0085] entry selection circuit 105, first of all selects an entry according to the specified rules from all the entries comprising the entry group. The typical values of the entry group are then found based on the selected entries (entries to be calculated). The average values from among all values except for the minimum and maximum values of the entry comprising the entry group are then set as the typical values. Alternatively, the average values for the entry time excluding the most recent (most recent past) time of the hit entries comprising the entry group are set as the typical values.
  • The sixth embodiment of the invention is next explained. In this embodiment, during evaluation (rating) of typical values of the entry group by the [0086] entry selection circuit 105, a selected value is utilized from among all entry values to be calculated according to the specified rules. The most recent (most recent past) time for example of the entry hit times is set as the typical value.
  • The program for implementing the cache management device explained above may be recorded on a recording medium such as a semiconductor memory, CD-ROM or floppy disk, loaded into the router and implemented. The router contains a recording device to implement the cache and hit database. The loaded program has the same functions as the packet processing circuit and entry selection circuit. [0087]
  • The program processing for implementing the cache management device is described while referring to FIG. 13 and FIG. 14. [0088]
  • The forwarding table [0089] 103 is implemented (step 301) in the recording device contained in the router. Next, the cache table 103 is implemented (step 1302) in the recording device contained in the router. Then, the hit record database is implemented (step 1303) in the recording device contained in the router. In other words, the forwarding table 103, the cache table 102, and the hit record database 104 are implemented on the recording device in FIG. 1 and FIG. 8.
  • Next, the [0090] packet processing circuit 101 is implemented (step 1304) in the router, and further, the entry determiner circuit is implemented (step 1305) in the router.
  • The step for implementing the entry determiner circuit is next described while referring to FIG. 14. [0091]
  • First, the [0092] entry determiner circuit 1057 is implemented (step 1401). Next, the comparator circuits (threshold register 1053, zone register 1054, hit comparator circuit 1055, and hit time comparator 1056) are implemented (step 1402). The arbitration circuit 1052 is next implemented (step 1403). Further, the entry determiner circuit is implemented (step 1404).
  • By implementing the above steps, the above described cache management device is and operated and run in the router. [0093]
  • In a first effect of the invention, the cache hit probability can be improved even if the entries are inserted and removed from the cache in groups. The reason this effect can be achieved is that often used entries are placed in the cache. Often used entries are selected by utilizing a priority level determined by factors such as the frequency of usage and the overall use count. The cache hit rate is clearly improved by selecting entries with a high frequency of usage compared to selecting entries at random. [0094]
  • In a second effect of the invention, the attributes of an entry to have improved processing performance can be specified based on a certain policy so that a level of priority can be attached. In a fee system for example that applies different fees to each customer, by raising the priority level of entries containing addresses of clients from whom high fees are obtained, the packets exchanged with those clients can be processed at high speed and can be discriminated from clients paying low fees. [0095]

Claims (11)

What is claimed is:
1. A cache table management device used in a router wherein the device comprising:
a forwarding table having a plurality of entries, each of said entries having a set of information showing a collection of addresses comprised of prefix bits and prefix lengths, information showing packet output paths for the address collection, the priority level information, and said forwarding table being searched by a longest prefix match search;
a cache table for, when entries are substituted, being written the entry group containing the entry to be substituted and the applicable child of the substituted entry from the forwarding table, and for being deleted on moved, when deleting or moving entries, the entry group containing the applicable entry and the applicable parent of the deleted on moved entry;
a hit record database containing hit information added to the contents of the applicable entry among all entries of the forwarding table, contents of said hit record database being updated when a hit occurs in the forwarding table or the cache table;;
a packet processing circuit to extract the destination network address from an input packet, to search the forwarding table or the cache table using the destination network address as a key, and to transmit the packet on the acquired output paths; and
an entry selection circuit to select entry groups to be interchanged when needed while taking the information from the bit data base and priority level information into account.
2. A cache table management device used in a router according to
claim 1
, wherein the cache table is divided into a plurality of zones, and the interchanging, deletion or movement of entry groups is performed in the respective zones.
3. A cache table management device used in a router according to
claim 1
, wherein the router entry selection device comprising:
an entry group typical value circuit to receive entry group information from the hit database, and determining from the entry group information a typical value for evaluating entry usage status, and a typical zone value and/or typical threshold value in the entry priority level;
a comparator circuit, having a table linking the entry groups already present in the cache table 102 and the typical values for those entry groups, for comparing the typical values of the entry group and the typical values sent from the entry group typical value circuit, and for sending the priority rankings of the entry groups present in the cache table;
an arbitrator circuit to determine the final interchanging ranking of the entry group based on the priority rankings sent from the comparator circuit; and
an entry determiner circuit to monitor available space in the cache table and to delete cache table entries from low ranking entries determined by the arbitrator circuit and to send information to the comparator circuit on the deleted entry groups for deletion from the cache table when no empty space is available after checking for available space to add an entry group.
4. A cache table management device used in a router according to
claim 3
, wherein the values for evaluating the entry usage status are the hit count and the hit time.
5. A cache table management device used in a router according to
claim 3
, wherein the typical values are the maximum value among the threshold value and zone, the average value among the hit counts, and the most recent value among the hit times.
6. A cache table management device used in a router according to
claim 3
, wherein said attributor circuit generates a random number from 0 to 1, divides the random number into two parts, and allots each part of a hit count and hit time, and has the ranking of the allotted attribute the final ranking.
7. A cache table management device used in a router according to
claim 3
, wherein the cache table management device is further comprising a means for setting the entry priority level according to information acquired from the received packet.
8. A cache table management device used in a router according to
claim 5
, wherein the priority level within entries of the forwarding table is rewritten according to the policy server.
9. A medium for recording programs implemented in a router, wherein the program comprising the steps of:
(a) implementing on a recording device, a forwarding table containing a plurality of entries each of which includes information showing the collection of addresses comprised of prefix bits and prefix lengths, information showing the output paths of packets for the collection of addresses and priority level information, said entries being searched by longest prefix method;
(b) implementing the cache table on a recording device, when an entry of said cache table is interchanged, the entry group comprised of the entry to be added and the child entry of the applicable entry is written from the forwarding table, or when an entry is to be deleted or moved, the entry group comprised of the entry for interchanging and the parent entry of the applicable entry is deleted or moved;
(c) implementing the hit database of all entries of said forwarding table on a recording device wherein said hit database or said hit information of said all entries and are update when a hit occurred in the forwarding table or cache table;
(d) implementing the packet processing circuit in said router extracting the destination network address from the applicable packet header of the input packet, searching the cache table or forwarding table using the destination network address as a key, and for sending the packet on the acquired output path;
(e)implementing entry selection circuit on the router for selecting the entry group to be interchanged by taking into account the priority level information and the information from the hit database when interchanging an entry group.
10. A recording medium recorded on a program for implementing the router according to
claim 5
, wherein the entry selection circuit is implemented on the router in an operation comprising the steps of:
(a) implementing a function of an entry group typical value circuit which receives entry group information from the hit record database, and determines typical values of entry usage ratings, and typical and/or threshold values for zones constituting entry priority levels;
(b) implementing a function of a comparator circuit having a table which has entry groups linked with entry group typical values for entry groups present in the cache table, comparing the typical values of each entry group on the table with typical values sent from the entry group typical value circuit, and sending the priority rankings of the entry groups present in the cache table;
(c) implementing a function of an arbitration circuit to determine the final interchange ranking of the entry groups based on the priority rankings sent from the comparator circuits; and
(d) implementing a function of an entry determiner circuit for monitoring the available space in the cache table and for deleting, in case of no available apace, the cache table entries of low ranking entry groups determined by the arbitrator circuit and sending information to the comparator circuit on the deleted entry groups for deletion from the cache table.
11. A cache table management device used in a router comprising:
a forwarding table for being used to perform longest prefix match searches of all entries, and
a cache table for being used to perform longest prefix match searches of a portion of the total entries,
wherein when an entry in the forwarding table is input to the cache table, an entry group is selected along with all child entries of the input entry, and when an entry is extracted from the cache table, an entry group is selected along with all parent entries of the extracted entry.
US09/828,160 2000-04-07 2001-04-09 Cache table management device for router and program recording medium thereof Expired - Fee Related US6993031B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP106744/2000 2000-04-07
JP2000106744A JP3591420B2 (en) 2000-04-07 2000-04-07 Cache table management device and program recording medium in router

Publications (2)

Publication Number Publication Date
US20010028651A1 true US20010028651A1 (en) 2001-10-11
US6993031B2 US6993031B2 (en) 2006-01-31

Family

ID=18619862

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/828,160 Expired - Fee Related US6993031B2 (en) 2000-04-07 2001-04-09 Cache table management device for router and program recording medium thereof

Country Status (2)

Country Link
US (1) US6993031B2 (en)
JP (1) JP3591420B2 (en)

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002076042A1 (en) * 2001-03-19 2002-09-26 International Business Machines Corporation Cache entry selection method and apparatus
US20030041169A1 (en) * 2000-08-26 2003-02-27 Samsung Electronics Co., Ltd. Method for forming a database to route a data packet and method for routing and a router using the method thereof
US20030048785A1 (en) * 2001-08-28 2003-03-13 International Business Machines Corporation Network processor with single interface supporting tree search engine and CAM
WO2003044998A2 (en) * 2001-11-15 2003-05-30 University Of Southern California Optically boosted router
US20030147394A1 (en) * 2002-02-07 2003-08-07 Kevin Jennings Network switch with parallel working of look-up engine and network processor
US6717946B1 (en) * 2002-10-31 2004-04-06 Cisco Technology Inc. Methods and apparatus for mapping ranges of values into unique values of particular use for range matching operations using an associative memory
US20060023724A1 (en) * 2004-08-02 2006-02-02 Jing Na Forwarding database in a network switch device
US7114026B1 (en) * 2002-06-17 2006-09-26 Sandeep Khanna CAM device having multiple index generators
US7184437B1 (en) * 2002-07-17 2007-02-27 Juniper Networks, Inc. Scalable route resolution
US20070153808A1 (en) * 2005-12-30 2007-07-05 Parker David K Method of providing virtual router functionality
US20070223487A1 (en) * 2006-03-22 2007-09-27 Cisco Technology, Inc. Method and system for removing dead access control entries (ACEs)
WO2007115484A1 (en) * 2006-03-29 2007-10-18 Huawei Technologies Co., Ltd. Method and device of learning forwarding feature information
US20080240098A1 (en) * 2007-03-26 2008-10-02 James Uttaro Method and apparatus for providing flexible virtual forwarding table
US20090164651A1 (en) * 2007-12-19 2009-06-25 Canon Kabushiki Kaisha Communication apparatus, timer control apparatus, and timer control method
US7590076B2 (en) * 2002-12-13 2009-09-15 Fujitsu Limited Switching apparatus
US7822033B1 (en) 2005-12-30 2010-10-26 Extreme Networks, Inc. MAC address detection device for virtual routers
US20100296517A1 (en) * 2001-10-19 2010-11-25 Juniper Networks, Inc. Network routing using indirect next hop data
US7894480B1 (en) * 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
US20110258335A1 (en) * 2007-11-23 2011-10-20 Juniper Networks, Inc. Identification fragment handling
US20130132503A1 (en) * 2002-08-27 2013-05-23 Hewlett-Packard Development Company, L.P. Computer system and network interface supporting class of service queues
EP2627047A1 (en) * 2012-02-13 2013-08-14 Juniper Networks, Inc. Flow cache mechanism for performing packet flow lookups in a network device
US8605732B2 (en) 2011-02-15 2013-12-10 Extreme Networks, Inc. Method of providing virtual router functionality
US8630294B1 (en) 2011-05-11 2014-01-14 Juniper Networks, Inc. Dynamic bypass mechanism to alleviate bloom filter bank contention
US20140023018A1 (en) * 2010-06-22 2014-01-23 Blackberry Limited Information Selection in a Wireless Communication System
US20140233392A1 (en) * 2011-09-21 2014-08-21 Nec Corporation Communication apparatus, communication system, communication control method, and program
US8954609B1 (en) 2012-04-25 2015-02-10 Juniper Networks, Inc. Time adjustment using time-to-live values
US20150092781A1 (en) * 2008-09-09 2015-04-02 At&T Intellectual Property I, L.P. Systems and Methods for Optimized Route Caching
US9049148B1 (en) 2012-09-28 2015-06-02 Juniper Networks, Inc. Dynamic forwarding plane reconfiguration in a network device
US20150326477A1 (en) * 2012-12-19 2015-11-12 Nec Corporation Packet processing apparatus, flow entry configuration method and program
US9253019B1 (en) 2012-03-09 2016-02-02 Juniper Networks, Inc. Fault tolerance for authentication, authorization, and accounting (AAA) functionality
US20160072696A1 (en) * 2014-09-05 2016-03-10 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in sdn
US9385938B2 (en) 2010-06-22 2016-07-05 Blackberry Limited Information distribution in a wireless communication system
US9614761B1 (en) 2011-11-04 2017-04-04 Juniper Networks, Inc. Deterministic network address and port translation
EP3258657A1 (en) * 2016-06-19 2017-12-20 Mellanox Technologies TLV Ltd. Ip route caching with two search stages on prefix length
US10129207B1 (en) 2015-07-20 2018-11-13 Juniper Networks, Inc. Network address translation within network device having multiple service units
US10148571B2 (en) 2016-06-20 2018-12-04 Mellanox Technologies Tlv Ltd. Jump on a match optimization for longest prefix match using a binary search tree
US10469446B1 (en) 2016-09-27 2019-11-05 Juniper Networks, Inc. Subscriber-aware network address translation
US10491521B2 (en) 2017-03-26 2019-11-26 Mellanox Technologies Tlv Ltd. Field checking based caching of ACL lookups to ease ACL lookup search
US10515015B2 (en) 2018-03-20 2019-12-24 Mellanox Technologies Tlv Ltd. Hash table-based mask length computation for longest prefix match caching
US10616113B2 (en) 2018-07-19 2020-04-07 Mellanox Technologies Tlv Ltd. Longest prefix match using a binary search tree with compressed hash tables
US10684960B2 (en) 2017-12-04 2020-06-16 Mellanox Technologies Tlv Ltd. Managing cache memory in a network element based on costs associated with fetching missing cache entries
US11502957B2 (en) 2020-05-14 2022-11-15 Mellanox Technologies, Ltd. Avoiding markers for longest prefix match based on binary search tree algorithm
CN116016432A (en) * 2022-12-30 2023-04-25 迈普通信技术股份有限公司 Message forwarding method, device, network equipment and computer readable storage medium

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3936883B2 (en) 2002-04-08 2007-06-27 株式会社日立製作所 Flow detection apparatus and packet transfer apparatus having flow detection function
US7277399B1 (en) * 2002-04-08 2007-10-02 Cisco Technology, Inc. Hardware-based route cache using prefix length
KR100429904B1 (en) * 2002-05-18 2004-05-03 한국전자통신연구원 Router providing differentiated quality-of-service and fast internet protocol packet classification method for the same
US7647414B2 (en) * 2002-07-26 2010-01-12 Broadcom Corporation System and method for managing multiple stack environments
JP4154213B2 (en) * 2002-11-01 2008-09-24 富士通株式会社 Packet processing device
KR100541846B1 (en) * 2002-11-27 2006-01-11 한국전자통신연구원 Internet Protocol address lookup system based on 3 layer table architecture and method thereof
US7425735B2 (en) * 2003-02-24 2008-09-16 Samsung Electronics Co., Ltd. Multi-layer phase-changeable memory devices
JP4556761B2 (en) * 2005-05-06 2010-10-06 株式会社日立製作所 Packet transfer device
EP1900163B1 (en) * 2005-05-23 2021-04-07 XC Technology Holdings Limited Efficient address caching for packet telephony services
US20070140241A1 (en) * 2005-12-16 2007-06-21 General Instrument Corporation Fast processing of multicast data
JP4646823B2 (en) * 2006-02-17 2011-03-09 エスアイアイ・ネットワーク・システムズ株式会社 Router device and route determination method in router device
JP4940824B2 (en) * 2006-08-18 2012-05-30 富士通セミコンダクター株式会社 Nonvolatile semiconductor memory
CN101822002B (en) * 2007-10-10 2012-02-29 上海贝尔股份有限公司 Method for forwarding packets via group of cooperative network elements and network element
JP4994302B2 (en) * 2008-05-30 2012-08-08 Kddi株式会社 Information retrieval device, data processing device, communication traffic measurement device, database survey device, and computer program
FR2934108B1 (en) * 2008-07-21 2010-09-17 Commissariat Energie Atomique METHOD OF ORDERING PACKETS
US8750144B1 (en) * 2010-10-20 2014-06-10 Google Inc. System and method for reducing required memory updates
US8948177B2 (en) * 2012-07-30 2015-02-03 Hewlett-Packard Development Company, L.P. Policy based routing
CN107579916B (en) 2016-07-04 2021-03-23 新华三技术有限公司 Forwarding table entry access method and device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6104701A (en) * 1996-12-13 2000-08-15 International Business Machines Corporation Method and system for performing a least cost routing function for data communications between end users in a multi-network environment
US6295296B1 (en) * 1998-09-08 2001-09-25 Cisco Technology, Inc. Use of a single data structure for label forwarding and imposition
US6522632B1 (en) * 1998-05-06 2003-02-18 Avici Systems Apparatus and method for efficient prefix search
US6665297B1 (en) * 1999-12-09 2003-12-16 Mayan Networks Corporation Network routing table
US6697363B1 (en) * 2000-06-28 2004-02-24 Alcatel Canada Inc. Method and apparatus for longest matching prefix determination in a communication network
US6768739B1 (en) * 1999-02-10 2004-07-27 Nec Corporation Router with a cache having a high hit probability

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3371006B2 (en) 1993-03-03 2003-01-27 株式会社日立製作所 Table search method and router device
JP3232023B2 (en) * 1997-04-16 2001-11-26 日本電信電話株式会社 Packet processing method and apparatus
US6266706B1 (en) * 1997-09-15 2001-07-24 Effnet Group Ab Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams
JP3301359B2 (en) * 1997-09-30 2002-07-15 日本電気株式会社 List management system, method and storage medium
JP4044226B2 (en) * 1997-12-26 2008-02-06 株式会社東芝 ATM relay device and router device
JP3239836B2 (en) * 1998-04-03 2001-12-17 日本電気株式会社 Router device and transmission route setting method
JP2000076168A (en) * 1998-08-28 2000-03-14 Nec Corp Distribution method of cache updating notice and system therefor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104701A (en) * 1996-12-13 2000-08-15 International Business Machines Corporation Method and system for performing a least cost routing function for data communications between end users in a multi-network environment
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
US6522632B1 (en) * 1998-05-06 2003-02-18 Avici Systems Apparatus and method for efficient prefix search
US6295296B1 (en) * 1998-09-08 2001-09-25 Cisco Technology, Inc. Use of a single data structure for label forwarding and imposition
US6768739B1 (en) * 1999-02-10 2004-07-27 Nec Corporation Router with a cache having a high hit probability
US6665297B1 (en) * 1999-12-09 2003-12-16 Mayan Networks Corporation Network routing table
US6697363B1 (en) * 2000-06-28 2004-02-24 Alcatel Canada Inc. Method and apparatus for longest matching prefix determination in a communication network

Cited By (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041169A1 (en) * 2000-08-26 2003-02-27 Samsung Electronics Co., Ltd. Method for forming a database to route a data packet and method for routing and a router using the method thereof
US6967959B2 (en) * 2000-08-26 2005-11-22 Samsung Electronics Co., Ltd. Method for forming a database to route a data packet and method for routing and a router using the method thereof
WO2002076042A1 (en) * 2001-03-19 2002-09-26 International Business Machines Corporation Cache entry selection method and apparatus
US20060265363A1 (en) * 2001-08-28 2006-11-23 Calvignac Jean L Network processor with single interface supporting tree search engine and cam
US20030048785A1 (en) * 2001-08-28 2003-03-13 International Business Machines Corporation Network processor with single interface supporting tree search engine and CAM
US7953077B2 (en) 2001-08-28 2011-05-31 International Business Machines Corporation Network processor with single interface supporting tree search engine and CAM
US7167471B2 (en) * 2001-08-28 2007-01-23 International Business Machines Corporation Network processor with single interface supporting tree search engine and CAM
US8532127B2 (en) 2001-10-19 2013-09-10 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
US9391873B1 (en) 2001-10-19 2016-07-12 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
WO2003044998A3 (en) * 2001-11-15 2004-02-19 Univ Southern California Optically boosted router
US7369766B2 (en) 2001-11-15 2008-05-06 University Of Southern California Optically boosted router
WO2003044998A2 (en) * 2001-11-15 2003-05-30 University Of Southern California Optically boosted router
US7042889B2 (en) 2002-02-07 2006-05-09 3Com Corporation Network switch with parallel working of look-up engine and network processor
GB2385233B (en) * 2002-02-07 2004-04-21 3Com Corp Network switch with parallel working of look-up engine and network processor
US20030147394A1 (en) * 2002-02-07 2003-08-07 Kevin Jennings Network switch with parallel working of look-up engine and network processor
GB2385233A (en) * 2002-02-07 2003-08-13 3Com Corp Network switch with look up of forwarding information and possible additional processing of the look up result
US7114026B1 (en) * 2002-06-17 2006-09-26 Sandeep Khanna CAM device having multiple index generators
US7184437B1 (en) * 2002-07-17 2007-02-27 Juniper Networks, Inc. Scalable route resolution
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
US20130132503A1 (en) * 2002-08-27 2013-05-23 Hewlett-Packard Development Company, L.P. Computer system and network interface supporting class of service queues
US9348789B2 (en) * 2002-08-27 2016-05-24 Hewlett Packard Enterprise Development Lp Computer system and network interface supporting class of service queues
US7894480B1 (en) * 2002-08-27 2011-02-22 Hewlett-Packard Company Computer system and network interface with hardware based rule checking for embedded firewall
US6717946B1 (en) * 2002-10-31 2004-04-06 Cisco Technology Inc. Methods and apparatus for mapping ranges of values into unique values of particular use for range matching operations using an associative memory
US7590076B2 (en) * 2002-12-13 2009-09-15 Fujitsu Limited Switching apparatus
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
US7894451B2 (en) * 2005-12-30 2011-02-22 Extreme Networks, Inc. Method of providing virtual router functionality
US7822033B1 (en) 2005-12-30 2010-10-26 Extreme Networks, Inc. MAC address detection device for virtual routers
US20070153808A1 (en) * 2005-12-30 2007-07-05 Parker David K Method of providing virtual router functionality
US8824482B2 (en) * 2006-03-22 2014-09-02 Cisco Technology, Inc. Method and system for removing dead access control entries (ACEs)
US8040895B2 (en) * 2006-03-22 2011-10-18 Cisco Technology, Inc. Method and system for removing dead access control entries (ACEs)
US20120008508A1 (en) * 2006-03-22 2012-01-12 Cisco Technology, Inc. Method and System for Removing Dead Access Control Entries (ACEs)
US20070223487A1 (en) * 2006-03-22 2007-09-27 Cisco Technology, Inc. Method and system for removing dead access control entries (ACEs)
WO2007115484A1 (en) * 2006-03-29 2007-10-18 Huawei Technologies Co., Ltd. Method and device of learning forwarding feature information
US20090028154A1 (en) * 2006-03-29 2009-01-29 Huawei Technologies Co., Ltd. Method And Device For Learning Forwarding Feature Information
US20080240098A1 (en) * 2007-03-26 2008-10-02 James Uttaro Method and apparatus for providing flexible virtual forwarding table
US20110258335A1 (en) * 2007-11-23 2011-10-20 Juniper Networks, Inc. Identification fragment handling
US9100270B2 (en) * 2007-11-23 2015-08-04 Juniper Networks, Inc. Identification fragment handling
US8886815B2 (en) * 2007-12-19 2014-11-11 Canon Kabushiki Kaisha Communication apparatus, timer control apparatus, and timer control method
US20090164651A1 (en) * 2007-12-19 2009-06-25 Canon Kabushiki Kaisha Communication apparatus, timer control apparatus, and timer control method
US9413663B2 (en) 2008-09-09 2016-08-09 At&T Intellectual Property I, L.P. Systems and methods for optimized route caching
US10700975B2 (en) 2008-09-09 2020-06-30 At&T Intellectual Property I, L.P. Systems and methods for optimized route caching
US20150092781A1 (en) * 2008-09-09 2015-04-02 At&T Intellectual Property I, L.P. Systems and Methods for Optimized Route Caching
US9559955B2 (en) * 2008-09-09 2017-01-31 At&T Intellectual Property I, L.P. Systems and methods for optimized route caching
US9210084B2 (en) * 2008-09-09 2015-12-08 At&T Intellectual Property I, L.P. Systems and methods for optimized route caching
US10367716B2 (en) 2010-06-22 2019-07-30 Blackberry Limited Information distribution in a wireless communication system
US20140023018A1 (en) * 2010-06-22 2014-01-23 Blackberry Limited Information Selection in a Wireless Communication System
US9155001B2 (en) * 2010-06-22 2015-10-06 Blackberry Limited Information selection in a wireless communication system
US9385938B2 (en) 2010-06-22 2016-07-05 Blackberry Limited Information distribution in a wireless communication system
US8605732B2 (en) 2011-02-15 2013-12-10 Extreme Networks, Inc. Method of providing virtual router functionality
US8630294B1 (en) 2011-05-11 2014-01-14 Juniper Networks, Inc. Dynamic bypass mechanism to alleviate bloom filter bank contention
US20140233392A1 (en) * 2011-09-21 2014-08-21 Nec Corporation Communication apparatus, communication system, communication control method, and program
US9614761B1 (en) 2011-11-04 2017-04-04 Juniper Networks, Inc. Deterministic network address and port translation
EP2627047A1 (en) * 2012-02-13 2013-08-14 Juniper Networks, Inc. Flow cache mechanism for performing packet flow lookups in a network device
US8886827B2 (en) 2012-02-13 2014-11-11 Juniper Networks, Inc. Flow cache mechanism for performing packet flow lookups in a network device
US9253019B1 (en) 2012-03-09 2016-02-02 Juniper Networks, Inc. Fault tolerance for authentication, authorization, and accounting (AAA) functionality
US10020986B1 (en) 2012-03-09 2018-07-10 Juniper Networks, Inc. Fault tolerance for authentication, authorization, and accounting (AAA) functionality
US8954609B1 (en) 2012-04-25 2015-02-10 Juniper Networks, Inc. Time adjustment using time-to-live values
US9049148B1 (en) 2012-09-28 2015-06-02 Juniper Networks, Inc. Dynamic forwarding plane reconfiguration in a network device
US20150326477A1 (en) * 2012-12-19 2015-11-12 Nec Corporation Packet processing apparatus, flow entry configuration method and program
US9876716B2 (en) * 2012-12-19 2018-01-23 Nec Corporation Packet processing apparatus, flow entry configuration method and program
US20160072696A1 (en) * 2014-09-05 2016-03-10 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in sdn
US9692684B2 (en) * 2014-09-05 2017-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in SDN
US10129207B1 (en) 2015-07-20 2018-11-13 Juniper Networks, Inc. Network address translation within network device having multiple service units
US10171419B2 (en) 2016-06-19 2019-01-01 Mellanox Technologies TLC Ltd. IP route caching with two search stages on prefix length
CN107528783A (en) * 2016-06-19 2017-12-29 迈络思科技Tlv有限公司 Utilize the IP route-cachings that two search phases are carried out to prefix length
EP3258657A1 (en) * 2016-06-19 2017-12-20 Mellanox Technologies TLV Ltd. Ip route caching with two search stages on prefix length
US10148571B2 (en) 2016-06-20 2018-12-04 Mellanox Technologies Tlv Ltd. Jump on a match optimization for longest prefix match using a binary search tree
US10469446B1 (en) 2016-09-27 2019-11-05 Juniper Networks, Inc. Subscriber-aware network address translation
US10491521B2 (en) 2017-03-26 2019-11-26 Mellanox Technologies Tlv Ltd. Field checking based caching of ACL lookups to ease ACL lookup search
US10684960B2 (en) 2017-12-04 2020-06-16 Mellanox Technologies Tlv Ltd. Managing cache memory in a network element based on costs associated with fetching missing cache entries
US10515015B2 (en) 2018-03-20 2019-12-24 Mellanox Technologies Tlv Ltd. Hash table-based mask length computation for longest prefix match caching
US10616113B2 (en) 2018-07-19 2020-04-07 Mellanox Technologies Tlv Ltd. Longest prefix match using a binary search tree with compressed hash tables
US11502957B2 (en) 2020-05-14 2022-11-15 Mellanox Technologies, Ltd. Avoiding markers for longest prefix match based on binary search tree algorithm
CN116016432A (en) * 2022-12-30 2023-04-25 迈普通信技术股份有限公司 Message forwarding method, device, network equipment and computer readable storage medium

Also Published As

Publication number Publication date
JP2001290718A (en) 2001-10-19
US6993031B2 (en) 2006-01-31
JP3591420B2 (en) 2004-11-17

Similar Documents

Publication Publication Date Title
US6993031B2 (en) Cache table management device for router and program recording medium thereof
US6768739B1 (en) Router with a cache having a high hit probability
CN110301120B (en) Stream classification device, method and system
CA2274962C (en) High speed variable length best match look-up in a switching device
US5909440A (en) High speed variable length best match look-up in a switching device
CN1316390C (en) Performance and memory bandwidth utilization for tree searches using tree fragmentation
US6842791B2 (en) Method and apparatus for memory efficient fast VLAN lookups and inserts in hardware-based packet switches
JP4482259B2 (en) Method and apparatus for a 4-way hash table
US6570877B1 (en) Search engine for forwarding table content addressable memory
CN107528783B (en) IP route caching with two search phases for prefix length
US20070168377A1 (en) Method and apparatus for classifying Internet Protocol data packets
US6618760B1 (en) Forwarding information retrieval technique
US7313138B2 (en) Router device and routing method
KR20140067881A (en) Method for transmitting packet of node and content owner in content centric network
WO2020181820A1 (en) Data cache method and apparatus, computer device and storage medium
US7330469B2 (en) Internet protocol address lookup system and method using three-layer table architecture
US20030023581A1 (en) Method and system for performing a longest prefix match search
US7590112B2 (en) Packet forwarding apparatus of high speed routing system and routing lookup method using the same
JP4646823B2 (en) Router device and route determination method in router device
CN114710444B (en) Data center flow statistics method and system based on tower type abstract and evictable flow table
CN113810298B (en) OpenFlow virtual flow table elastic acceleration searching method supporting network flow jitter
JP2009017439A (en) Packet transfer device and method
US7159019B2 (en) Information collection apparatus and method
EP1657859B1 (en) Protocol speed increasing device
JP3660311B2 (en) Table search apparatus and method, program, and recording medium

Legal Events

Date Code Title Description
AS Assignment

Owner name: NEC CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MURASE, TUTOMU;REEL/FRAME:011718/0945

Effective date: 20010327

FEPP Fee payment procedure

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

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.)

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.)

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20180131