EP4278583A1 - Longest-prefix matching dynamic allocation in communications network - Google Patents
Longest-prefix matching dynamic allocation in communications networkInfo
- Publication number
- EP4278583A1 EP4278583A1 EP21836687.0A EP21836687A EP4278583A1 EP 4278583 A1 EP4278583 A1 EP 4278583A1 EP 21836687 A EP21836687 A EP 21836687A EP 4278583 A1 EP4278583 A1 EP 4278583A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- longest
- prefix match
- node
- communications network
- metrics
- 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.)
- Withdrawn
Links
- 238000004891 communication Methods 0.000 title claims abstract description 119
- 238000000034 method Methods 0.000 claims abstract description 238
- 230000008569 process Effects 0.000 claims abstract description 186
- 230000009471 action Effects 0.000 claims abstract description 34
- 230000015654 memory Effects 0.000 claims description 58
- 230000006870 function Effects 0.000 claims description 25
- 238000010586 diagram Methods 0.000 description 14
- 238000005457 optimization Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
Definitions
- the present application is concerned with communications networks such as telecommunications networks, data communication networks and other types of communications networks which are packet-based.
- communications networks such as telecommunications networks, data communication networks and other types of communications networks which are packet-based.
- one or more nodes in such communications networks have at least one longest-prefix match process which, given an example, searches for an item amongst a plurality of items.
- the search aims to find an item with a prefix that matches a prefix of the example and so that the matching prefix is as long as possible.
- the results of the search influence control of one or more processes in the communications network.
- a method performed by a node of a communications network.
- the method comprises receiving at least one packet having an associated address and obtaining one or more metrics.
- the method involves dynamically configuring a longest-prefix match process on the basis of at least the metric(s).
- the dynamically configured longest-prefix match process is used with the associated address to identify an action and the identified action is applied to the packet.
- FIG. 1 is a schematic diagram of a communications network with at least one node having a longest-prefix match process and a dynamic allocation process;
- FIG. 2 is a schematic diagram of a longest-prefix match process component of a communications network node in more detail
- FIG. 2B is a schematic diagram of use of a library of longest-prefix match processes
- FIG. 3 is a schematic diagram of a routing information base and a forward information base
- FIG. 4 is a schematic diagram of the communications network of FIG. 1 and showing a management node in more detail;
- FIG. 5 is a schematic diagram of a plurality of virtual routing functions and a management node
- FIG. 6 is a flow diagram of a method performed by a communications network node
- FIG. 7 is a schematic diagram of a communications network node.
- Longest-prefix match processes are used in a wide variety of communications network nodes including but not limited to: firewalls, policy enforcement nodes, forward information bases, routers, access control lists, virtual routing functions.
- a longest-prefix match process takes as input an example and searches a plurality of items to find one or more items which have a match between a prefix of the input example and a prefix of an individual one of the items. The search aims to find such a match where the prefix is as long as possible.
- Longest-prefix match processes are known to be resource intensive in terms of memory related resources (capacity, memory bandwidth, cache, ternary content addressable memory (TC M) capacity, etc.), and/or compute cycles. Thus longest- prefix match processes influence performance and costs of communications networks.
- Dynamically configuring a longest-prefix match process is achieved by one or more of: selecting from a plurality of different longest-prefix match algorithms, selecting different ratios of hardware to software implementation for the longest-prefix match process, selecting values of one or more parameters of a longest-prefix match process, selecting different priorities to be given to individual longest-prefix match processes, selecting different amounts of resources shared between a plurality of longest-prefix match processes. Selecting different ratios of hardware to software implementation for a longest- prefix match process comprises determining how much hardware resource to use for executing the longest-prefix match process as compared with how much software resource to use. Hardware resources for executing a longest-prefix match process include but are not limited to: hardware routers, application specific integrated circuits (ASICs) and ternary content addressable memory (TCAM).
- ASICs application specific integrated circuits
- TCAM ternary content addressable memory
- FIG. 1 is a schematic diagram of a communications network 100 which is a packet-based communications network such as an intranet, the internet, a telecommunications network, or other packet-based communications network.
- the communications network 100 comprises a plurality of nodes 102 in communication with one another via edges which are physical connections or wireless connections. One of the nodes 102 is shown exploded to reveal some but not all of the components in the node 102.
- the node has a dynamic allocation process 106, metrics 108, a longest-prefix match process 110 and a packet processor 112. More details about the node are given later with reference to FIG. 7.
- the dynamic allocation process 106 is implemented using any one or more of: software, hardware, firmware.
- the metrics 108 are stored in memory at the node 102 and comprise any one or more of: system metrics observed from the node 102, system metrics observed from the communications network 100, constraints.
- the longest-prefix match process 110 is implemented using any one or more of: software, hardware, firmware.
- the packet processor 112 is also implemented using any one or more of: software, hardware, firmware and it acts to receive packets incoming at the node 102 and process the incoming packets, such as by routing, filtering, wrapping, extracting payloads, or other actions according to the function of the node.
- two nodes 102 are shown as having a dynamic allocation process 106 and longest-prefix match process 110. However, in practice a plurality of the nodes 102 have one or more longest-prefix match processes 110.
- FIG. 1 also shows a node 104 of the communications network which is optional and is a management node. More detail about the management node is described later with reference to FIG. 4.
- a node 102 has a plurality of longest-prefix match processes within it as indicated in FIG. 1 at 114.
- dynamically configuring the longest- prefix match process comprises selecting the longest-prefix match process from a plurality of available longest-prefix match processes using information about resource requirements and performance of individual ones of the longest-prefix match processes.
- the resource requirements and performance of individual ones of the longest-prefix match processes is known in advance through calibration.
- the communications network node 102 dynamically selects which longest-prefix match process to use in a particular situation taking into account the metrics and the resource requirements and performance.
- the dynamic allocation process of the disclosure operates in an unconventional manner to achieve efficient use of a communications network node.
- the dynamic allocation process of the disclosure improves the functioning of the underlying communications network node by adjusting how resources are used in a longest-prefix match process.
- FIG. 1 the functionality of FIG. 1 is performed, at least in part, by one or more hardware logic components.
- illustrative types of hardware logic components include Field- programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), Graphics Processing Units (GPUs).
- FPGAs Field- programmable Gate Arrays
- ASICs Application-specific Integrated Circuits
- ASSPs Application-specific Standard Products
- SOCs System-on-a-chip systems
- CPLDs Complex Programmable Logic Devices
- GPUs Graphics Processing Units
- dynamically configuring the longest-prefix match process comprises setting values of one or more parameters of the longest-prefix match (LPM) process.
- LPM longest-prefix match
- Using the longest-prefix match process and the associated address to identify an action comprises searching one or more data structures at the node to find an entry having a longest-prefix match with the associated address.
- FIG. 2 is a schematic diagram of a longest-prefix match process 110 comprising one or more data structures.
- the data structures comprise a table 200; and a plurality of lists 202 or tree data structures.
- the table 200 is directly indexed using a limited prefix of the address to be looked up.
- the table has a single column either directly specifying an action (such as a next hop node of the communications network or an action to filter a packet by not forwarding it) or a pointer to one of the searchable lists 202, each entry of which contains a prefix to match against, and an action.
- a limited prefix of the address to be matched is used to index table 200 and find an entry in table 200. If the entry refers to an action, that action is applied to the packet. If the indexed entry in table 200 references a 202 list, then that the referenced list is searched for a longest match against the full address, using an appropriate method such as a tree search or a binary search. Once the relevant entry is found, the associated action is applied.
- the table 200 and lists 202 are stored in working memory at the communications network node and so the size of these data structures affects memory resource usage (such as occupancy, cache usage, memory bandwidth).
- Working memory in this context means updatable memory used to store dynamic data structures. It includes a range of different storage types external to a hardware element such as a processor or ASIC (including dynamic random access memory (DRAM), static random access memory (SRAM), ferroelectric random access memory (FRAM) and TCAM), or internal storage to a hardware element such as cache.
- DRAM dynamic random access memory
- SRAM static random access memory
- FRAM ferroelectric random access memory
- TCAM ferroelectric random access memory
- the table is typically more than ten mega bytes in size.
- the size of the table 200 is determined by a parameter k which is also a number of bits of a prefix to be matched in the longest-prefix match process.
- the size of the table is set at two to the power k. Adjusting k influences how much memory is used by the table 200 and how many lists 202 there are.
- the parameter k controls a size of the table 200 with respect to the size of the aggregated list or tree data structures 202. Larger k will generally lead to faster lookups, at the expense of more memory resources.
- By dynamically adjusting the value of k in response to metrics it is possible to adjust the trade off, and make the communications network node (and hence the communications network) more efficient (balancing performance with resource usage and number of prefixes which can be matched).
- the value of k is set below 16 even though using a value below 16 is going against a long held prejudice whereby values of k are 16 or above.
- the inventor has recognized that using values of k below 16 is extremely useful for achieving efficiency when a node needs to implement large numbers of separate LPM tables, each with only a small number of entries.. If k is very small, including zero, the table 200 becomes de minimis and the longest-prefix matching process is entirely a search of a list 202. This allows a node to be dynamically optimized to support a variable number of LPM tables, each with a different number of prefixes, without needing to have a separate algorithm optimized for the smaller tables. More detail is given later in this document with reference to FIG. 5 for the situation where there are a variable number of LPM tables.
- FIG. 2 shows dynamic configuration data 204 being sent to the longest-prefix match process 110 from the dynamic allocation process 106.
- the dynamic configuration data 204 is one or more of: a value of k, instructions to use one of a number of different LPM algorithms as described below with reference to FIG. 2B, instructions to use hardware assist TCAM or other hardware to give the longest-prefix match functionality.
- the dynamic configuration data 204 is sent either at time intervals or in response to a trigger (according to check 206) such as when response times of the longest-prefix match process exceed a threshold, or available memory resources in the system cross one of a number of defined thresholds.
- the dynamic configuration data 204 has been calculated by a dynamic allocation process 106 as indicated in FIG. 1.
- the dynamic allocation process uses one or more of: rules, machine learning, gradient descent optimization, to compute the configuration data.
- the dynamic allocation process takes into account the metrics 108.
- the other process which updates the prefixes and actions is able to create a second set of data structures (table 200 and lists 202) and populate the second set of data structures with the new prefixes and actions.
- the second set of data structures is then atomically switched with the existing data structures. In this way there is no loss of service of the algorithm and any inconsistencies and conflicts which might arise if the current data structures are updated is avoided.
- dynamically configuring the longest- prefix match process occurs together with an atomic switch of the one or more data structures. By doing the dynamic configuration as part of the atomic switch process efficiency and also robustness is achieved.
- one or more metrics 108 are obtained by the communications network node 100.
- the metrics are actively and/or passively obtained by the communications network node.
- the metrics are actively obtained by querying one or more elements of the communications network node 100 (such as an operating system or application specific resource manager) or by querying other communications network nodes in the communications network.
- the metrics are obtained passively as a result of the communications network node being sent metrics by a management node 104 of the communications network or by an operating system of the communications network node.
- the metrics are observed from the node or communications network.
- a non-exhaustive list of examples of metrics is one or more of: a number of routes in a forward information base at the node, a packet rate in a forward information base at the node, a number of routes in a forward information base in the communications network, a packet rate in a forward information base in the communications network, a measure of utilization of the communications network, an amount of available memory, a number of available memory controllers, a cache size, usage of processor resources, buffer availability, ternary content-addressable memory, TC M, usage.
- the dynamic configuration optionally takes into account one or more constraints.
- Constraints are criteria which are pre-configured, specified by an operator, or automatically computed using rules.
- a non-exhaustive list of constraints is one or more of: a number of routes in a forward information base at the node, a packet rate in a forward information base at the node, a number of routes in a forward information base in the communications network, a packet rate in a forward information base in the communications network, a measure of utilization of the communications network, an amount of available memory, a number of available memory controllers, a cache size, usage of processor resources, buffer availability, ternary content-addressable memory, TCAM, usage.
- One or more of the constraints relate to other nodes of the communications network.
- FIG. 2B is a schematic diagram of the situation where there is a library of longest-prefix match processes 206 comprising a plurality of different longest-prefix match algorithms.
- the dynamic configuration data 204 is an indication of one of the longest-prefix match algorithms to be deployed at longest-prefix match process 110.
- a non-exhaustive list of examples of longest-prefix match algorithms is DIR, DXR.
- the communications network node has a routing information base 300 and a forward information base 308.
- the forward information base 308 receives packets incoming to the router and forwards the packets to the appropriate next hop node of the communications network.
- the forward information base uses a longest-prefix match process 310 with an address of the incoming packet as input.
- the result of the longest-prefix match process is an address of a next hop node to forward the packet to.
- the longest-prefix match process 310 uses data structures comprising a table 312 and one or more lists or trees 314.
- the size of the table 312 is specified using parameter k by a dynamic allocation process 306 in the routing information base 300.
- the dynamic allocation process 306 is part of update logic 304 of the routing information base.
- the dynamic allocation process 306 uses metrics, area non-exhaustive list of metrics is: a number of routes in the forward information base at the node and a packet rate in the forward information base, an amount of available memory, a number of available memory controllers, a cache size, usage of processor resources, buffer availability, ternary content-addressable memory, TCAM, usage.
- An operating system of the forward information base makes the packet rate of the forward information base available to the dynamic allocation process.
- the dynamic allocation process knows the number of routes in the forward information base from historical information of updates sent by the routing information base to the forward information base.
- the dynamic allocation process determines the values of the number of available memory controllers, a cache size, usage of processor resources, buffer availability, TCAM usage, by querying an operating system or other entities.
- the dynamic allocation process uses one or more rules which specify what value of k to use for specific values or ranges of the metrics and specific values of one or more constraint(s).
- the constraints are specified values or one or more of the metrics which are bounds or limits for the dynamic allocation process to keep within.
- the dynamic allocation process uses a machine learning system to predict what value of k to use for specific values or ranges of the metrics and constraint(s).
- the dynamic allocation process uses a gradient descent optimization process to search for a value of k which will satisfy the constraints.
- the routing information base 300 collects update data 302 about updates to the forward information base 308 which are to be made.
- the update data 302 is sent to the routing information base 300 by one or more of the other communications network nodes such as where a new node is added to the communications network.
- the update data 302 is collected and eventually used to update the forward information base.
- the update logic 304 computes a second table and second list/tree data structures using the update data 302.
- the update logic instructs the forward information base to make an atomic switch of the current table 312 and list/trees 314 with the second table and second lists/trees.
- the second table and second list/tree data structures are computed using the new value of k calculated by the dynamic allocation process 306.
- the atomic switch when the atomic switch is made it deploys the new value of k as well as the update data 302 into the forward information base. After the atomic switch the forward information base operates to forward packets according to the second table and second lists/trees. In this way, the dynamic configuration of the longest-prefix match process optimizes use of resources of the node within the specified constraints.
- the examples of FIG. 2 and 3 are extendable to take into account metrics from other nodes in the communications network.
- the communications network node 102 obtains metrics from other nodes in the communications network by querying the other nodes or by receiving messages from the other nodes.
- the metrics are taken into account when setting a value of the parameter of the longest-prefix match process.
- the node 102 comprises a virtual routing function or a policy enforcement node.
- the longest-prefix match process is configured to carry out internet protocol address matching to match internet protocol addresses of incoming packets to address control lists or routing tables.
- FIG. 4 shows a communications network 100 comprising a management node 400 in addition to communications network nodes 102.
- One or more of the communications network nodes 102 comprises a dynamic allocation process 106, metrics 108, a longest-prefix match process 110 and a packet processor 112 as in FIG. 1.
- the management node 400 comprises an optimization process 402 which comprises one or more of: a machine learning model, rules, a gradient descent optimization process.
- the management node 104 obtains metrics from the communications network nodes 102. The metrics are as described earlier in this document. Using the metrics the management node 104 computes dynamic allocations for individual ones of the communications network nodes 102 and sends the dynamic allocations to the respective nodes 102. The dynamic allocations computed by the management node seek to optimize efficiency of the communications network as a whole and are referred to as overall dynamic configurations.
- the management node sends the dynamic allocations to the respective nodes 102 at a first cadence.
- the individual nodes 102 themselves also compute their own dynamic allocations and do so at a second cadence.
- the first cadence is controllable with respect to the second cadence.
- the management node operating at the first cadence does so at a lower frequency as compared with the second cadence.
- the management node 400 takes longer to obtain its metrics from the nodes of the communications network and benefits from having a longer cadence than the cadence of an individual node dynamic allocation process. Being able to control the first cadence with respect to the second cadence gives improved efficiency.
- the management node is able to take into account a policy.
- a specified group of the nodes 102 is to be given a lower quality of service than another specified group of the nodes according to a policy.
- the management node 400 takes into account the policy when calculating the dynamic allocations. In this way it is possible to differently configure individual sets of the longest-prefix match processes.
- One or both of the management node 400 and the individual ones of the communications network nodes 102 carry out dynamic configuration in response to one or more of: an interval of time, a resource limit being reached.
- FIG. 5 is a schematic diagram of a communications network comprising a plurality of virtual routing functions 504 in communication with a management node 400.
- Each virtual routing function 504 comprises a dynamic allocation process 506 and a longest- prefix match process 508.
- Each virtual routing function is configured to receive incoming packets (represented by an arrow into box 504 in FIG. 5) and to forward packets to different next hop nodes of the communications network (indicated by arrows out of box 504 in FIG. 5).
- the management node 400 is in communication with other parts of the communications network represented by box 502 in FIG. 5.
- the management node 400 has an information transfer component which has functionality to manage transfer of information within the communications network.
- the management node 400 has optimization logic 402.
- Optimization logic 402 receives metrics from the virtual routing functions 504.
- Optimization logic 402 also has constraints and policies.
- the optimization logic uses one or more of: rules, machine learning, gradient descent optimization, to compute, for each of the virtual routing functions, a dynamic configuration of the longest-prefix match process 508.
- the optimization logic 402 sends its results to the individual virtual routing functions 504 at a first cadence.
- the individual routing functions compute their own dynamic configurations of the longest- prefix match process 508 at a second cadence different from the first cadence.
- the management node is informed of the second cadence and is able to control the first and or second cadence in order to achieve efficiency.
- the management node 400 is depicted as physically separate from the virtual routing functions. However, in some deployments the management node is in the same physical entity as the virtual routing functions and there are at least some resources shared by the management node and virtual routing functions. In that case the dynamic allocation may include apportioning the shared resources between the virtual routing functions, optimizing for through put, priority treatment and other factors.
- FIG. 6 is a flow diagram of a method performed at a communications network node.
- the node is an access control list, a policy enforcement node, a firewall, a router, a routing information base, a forward information base or any other node of a packet based communications network which has a longest-prefix match process.
- the method comprises a first path depicted using items 600, 610, 614, 616 and a second path depicted using items 602, 604, 606, 608, 612.
- the first path occurs each time a packet is processed.
- the second path occurs at a slower rate to the first path.
- the first path and the second path operate in parallel or in serial fashion.
- the first path is a packet processing path.
- the second path is a configuration path.
- the packet processing path comprises the node receiving a packet 600 which has an associated address such as a port address or an internet protocol address.
- the longest- prefix match process is then carried out at operation 610 and a longest-prefix match is found for the address associated with the received packet from operation 600.
- the longest-prefix match has an associated action 614 which is applied 616 to the packet.
- the configuration path comprises the node obtaining one or more metrics 602.
- the metrics are obtained from one or more elements of the node (such as an operating system or an application resource manager) and/ or from other nodes of the communications network.
- optional management node input is received 604.
- the management node input is either metrics from other nodes of the communications network or is configuration data for configuring a longest-prefix match process of the node.
- the communications network node checks at operation 606 whether or not to update a longest-prefix match process of the node.
- the check involves assessing whether relevant trigger condition has been met, such as whether a specified period of time has elapsed, and/or whether a resource limit has been reached. If an update is to be done to the longest-prefix match process, the relevant trigger condition has been met, , then the operation 608 is carried out to dynamically configure the longest-prefix match process.
- the dynamic configuration comprises searching for a value of k given the metrics and taking into account any constraints or policy. The searching is done using any one or more of: rules, machine learning, gradient based descent.
- the results of the dynamic configuration are optionally sent 612 to the management node.
- FIG. 7 is a schematic diagram of a communications network node 700 comprising a central processing unit 710.
- the node 700 has at least two ports 702, 706 to receive packets at and forward packets from. It has a network processing unit 704 to send and receive packets from the ports 702, 706.
- the node 700 has dynamic allocation functionality 716, metrics 712 and a longest-prefix match process 714.
- the CPU 710 and NPU 704 are processors which are microprocessors, controllers or any other suitable type of processors for processing computer executable instructions to control the operation of the node in order to receive packets from other nodes in a communications network and act on the packets to filter or forward the packets.
- the processors 704, 710 include one or more fixed function blocks (also referred to as accelerators) which implement a part of the method of packet processing and/or longest-prefix matching in hardware (rather than software or firmware).
- Computer-readable media includes, for example, computer storage media such as memory 718 and communications media.
- Computer storage media, such as memory 718 includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or the like.
- Computer storage media includes, but is not limited to, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM), electronic erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that is used to store information for access by a computing device.
- communication media embody computer readable instructions, data structures, program modules, or the like in a modulated data signal, such as a carrier wave, or other transport mechanism. As defined herein, computer storage media does not include communication media.
- a computer storage medium should not be interpreted to be a propagating signal per se.
- the computer storage media memory 7128 is shown within the node 700 it will be appreciated that the storage is, in some examples, distributed or located remotely and accessed via a network or other communication link (e.g. from ports 702, 706).
- examples include any combination of the following: [0059] Clause A.
- Clause B The method of clause A wherein using the longest-prefix match process and the associated address to identify an action comprises searching one or more data structures at the node to find an entry having a longest-prefix match with the associated address.
- Clause C The method of clause B comprising dynamically configuring the longest-prefix match process only when the one or more data structures are being updated.
- Clause D The method of clause C wherein dynamically configuring the longest-prefix match process occurs together with an atomic switch of the one or more data structures.
- Clause E The method of clause A wherein dynamically configuring the longest-prefix match process comprises selecting the longest-prefix match process from a plurality of available longest-prefix match processes using information about resource requirements and performance of individual ones of the longest-prefix match processes.
- Clause G The method of clause F wherein the parameter is a number of bits of an address to be used in a first stage of the longest-prefix match process.
- the node comprises a memory storing a table configured for direct indexing, and at least one list or tree data structure, and where the longest-prefix match process comprises a parameter controlling a size of the table with respect to the size of the list or tree data structure.
- obtaining the metrics comprises observing the metrics from the node or communications network, and where the metrics comprise one or more of: a number of routes in a forward information base at the node, a packet rate in a forward information base at the node, a number of routes in a forward information base in the communications network, a packet rate in a forward information base in the communications network, a measure of utilization of the communications network, an amount of available memory, a number of available memory controllers, a cache size, usage of processor resources, buffer availability, ternary content-addressable memory, TCAM, usage.
- dynamically configuring the longest prefix match process comprises taking into account one or more constraints selected from: a number of routes in a forward information base at the node, a packet rate in a forward information base at the node, a number of routes in a forward information base in the communications network, a packet rate in a forward information base in the communications network, a measure of utilization of the communications network, an amount of available memory, a number of available memory controllers, a cache size, usage of processor resources, buffer availability, ternary content-addressable memory, TCAM, usage.
- constraints selected from: a number of routes in a forward information base at the node, a packet rate in a forward information base at the node, a number of routes in a forward information base in the communications network, a packet rate in a forward information base in the communications network, a measure of utilization of the communications network, an amount of available memory, a number of available memory controllers, a cache size, usage of processor resources, buffer availability, ternary content-addressable memory,
- Clause K The method of clause J wherein one or more of the constraints relate to other nodes of the communications network.
- Clause L The method of clause J wherein dynamically configuring the longest-prefix match process comprises optimizing use of resources of the node within the specified constraints.
- Clause M The method of clause J wherein dynamically configuring the longest-prefix match process comprises taking into account metrics of one or more other nodes of the communications network within the specified constraints or prioritizing between a plurality of longest-prefix match processes in a single node.
- Clause N The method of any preceding clause wherein the node comprises any of a firewall, an access control list, a routing function, a policy enforcement node.
- a communications network node comprising: a memory storing at least one received packet having an associated internet protocol address; the memory storing one or more metrics and instructions which when implemented at a processor of the node: carry out a first process and a second process, wherein the first process comprises: receiving at least one packet having an associated internet protocol address; using a longest- prefix match process and the associated address to identify an action; and applying the action to the packet; and wherein the second process comprises: obtaining one or more metrics; and dynamically configuring the longest prefix match process on the basis of at least the received metrics.
- Clause P The communications network node of clause N comprising a plurality of longest-prefix match processes, one of which is the first longest-prefix match process, and wherein the instructions, when implemented at the processor, dynamically configure the plurality of longest-prefix match processes.
- Clause R The communications network node of any of clauses N to Q wherein the instructions, when implemented at the processor, take into account a policy when dynamically configuring the plurality of longest-prefix match processes in order to differently configure individual sets of the longest-prefix match processes.
- a communications network comprising: a plurality of communications network nodes; individual ones of the communications network nodes comprising: a memory storing at least one received packet having an associated address; the memory storing one or more metrics and instructions which when implemented at a processor of the node: carry out a first process and a second process, the first process being carried out at a faster rate than the second process, wherein the first process comprises: receiving at least one packet having an associated address; using a longest- prefix match process and the associated address to identify an action; and applying the action to the packet; and wherein the second process comprises: obtaining one or more metrics; and dynamically configuring the longest prefix match process on the basis of at least the received metrics; and a management node, which sends instructions to the communications network nodes according to an overall dynamic configuration of the plurality of longest-prefix match processes.
- Clause T The communications network of clause S wherein one or both of the management node and the individual ones of the communications network nodes carry out dynamic configuration in response to one or more of: an interval of time, a resource limit.
- a method for internet protocol address matching performed by a computing device of a communications network, the computing device executing a virtual routing function or policy enforcement node, the method comprising: obtaining one or more metrics; dynamically configuring a longest-prefix match process on the basis of the one or more metrics; receiving a packet having an associated internet protocol address; executing the longest-prefix match process on the associated internet protocol address; identifying an action based on the execution of the longest-prefix match process; applying the action to the packet; and dynamically reconfiguring the longest-prefix match process based on updates to the one or more metrics.
- a system comprising: one or more processors; and a memory in communication with the one or more processors, the memory having computer- readable instructions stored thereupon that, when executed by the one or more processors, cause the system to perform operations comprising: receiving a packet having an associated internet protocol address; using a longest-prefix match process and the associated address to identify an action; applying the action to the packet; wherein the longest-prefix match process is dynamically configured on the basis of one or more metrics.
- the methods described herein are performed, in some examples, by software in machine readable form on a tangible storage medium e.g. in the form of a computer program comprising computer program code means adapted to perform all the operations of one or more of the methods described herein when the program is run on a computer and where the computer program may be embodied on a computer readable medium.
- the software is suitable for execution on a parallel processor or a serial processor such that the method operations may be carried out in any suitable order, or simultaneously.
- a remote computer is able to store an example of the process described as software.
- a local or terminal computer is able to access the remote computer and download a part or all of the software to run the program.
- the local computer may download pieces of the software as needed, or execute some software instructions at the local terminal and some at the remote computer (or computer network).
- a dedicated circuit such as a digital signal processor (DSP), programmable logic array, or the like.
- DSP digital signal processor
- subset is used herein to refer to a proper subset such that a subset of a set does not comprise all the elements of the set (i.e. at least one of the elements of the set is missing from the subset).
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GBGB2100573.1A GB202100573D0 (en) | 2021-01-15 | 2021-01-15 | Longest-prefix matching dynamic allocation in communications network |
| US17/174,325 US11606296B2 (en) | 2021-01-15 | 2021-02-11 | Longest-prefix matching dynamic allocation in communications network |
| PCT/US2021/061702 WO2022154898A1 (en) | 2021-01-15 | 2021-12-03 | Longest-prefix matching dynamic allocation in communications network |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4278583A1 true EP4278583A1 (en) | 2023-11-22 |
Family
ID=79259333
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP21836687.0A Withdrawn EP4278583A1 (en) | 2021-01-15 | 2021-12-03 | Longest-prefix matching dynamic allocation in communications network |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP4278583A1 (en) |
| WO (1) | WO2022154898A1 (en) |
-
2021
- 2021-12-03 WO PCT/US2021/061702 patent/WO2022154898A1/en not_active Ceased
- 2021-12-03 EP EP21836687.0A patent/EP4278583A1/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| WO2022154898A1 (en) | 2022-07-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11811660B2 (en) | Flow classification apparatus, methods, and systems | |
| US9819637B2 (en) | Efficient longest prefix matching techniques for network devices | |
| US7796607B2 (en) | Scalable multiprotocol label switching based virtual private networks and methods to implement the same | |
| US8799507B2 (en) | Longest prefix match searches with variable numbers of prefixes | |
| WO2023109794A1 (en) | Methods and systems for adaptive stochastic-based load balancing | |
| US8059658B1 (en) | Method and system for automatic expansion and contraction of IP host forwarding database | |
| US10129181B2 (en) | Controlling the reactive caching of wildcard rules for packet processing, such as flow processing in software-defined networks | |
| EP2820808B1 (en) | Compound masking and entropy for data packet classification using tree-based binary pattern matching | |
| EP3661153B1 (en) | Building decision tree for packet classification | |
| US20200050633A1 (en) | Generating packet processing graphs | |
| US20160335298A1 (en) | Methods, systems, and non-transitory computer readable media for generating a tree structure with nodal comparison fields and cut values for rapid tree traversal and reduced numbers of full comparisons at leaf nodes | |
| US11652744B1 (en) | Multi-stage prefix matching enhancements | |
| CN113824814B (en) | Address matching method, device, network equipment and medium of forwarding table | |
| US20210344596A1 (en) | Dynamically-Optimized Hash-Based Packet Classifier | |
| CN107528794B (en) | Data processing method and device | |
| US11606296B2 (en) | Longest-prefix matching dynamic allocation in communications network | |
| EP4278583A1 (en) | Longest-prefix matching dynamic allocation in communications network | |
| US7551609B2 (en) | Data structure for storing and accessing multiple independent sets of forwarding information | |
| CN118869573A (en) | Network data flow scheduling method, device, program product and medium for distributed storage system | |
| Li et al. | Cora: Conflict razor for policies in sdn | |
| CN119561897B (en) | Access control list information processing method, router, apparatus, network device, readable storage medium, and program product | |
| US20250293977A1 (en) | Prefix Summarization Scale By Deduplicating Longest Prefix Match (LPM) Sub-Tries | |
| US11895005B1 (en) | Network devices with hardware accelerated table updates | |
| US10965583B2 (en) | Mechanism to preserve weights assigned to nexthops | |
| US11916789B2 (en) | Prefix length expansion in packet processors |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20230626 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
| 18W | Application withdrawn |
Effective date: 20241015 |