US12537768B1
Enhanced parallelism in DOCSIS filter group processing
Publication
Application
Classifications
IPC Classifications
CPC Classifications
Applicants
Harmonic, Inc.
Inventors
Adam Levy
Abstract
Enhanced parallelism in DOCSIS filter group and Service Flow processing. A plurality of packets that have been transmitted across a computer network are received. A responsive action to be performed against each of the plurality of packets is determined by performing DOCSIS filter group processing on the plurality of packets using a single unified Filter Group table. The single unified Filter Group table comprises a plurality of rules that each define a set of criteria and a particular responsive action to perform against any packet matching the set of criteria for that rule. The plurality of rules in the single unified Filter Group table identify, in their sets of criteria, different Filter Group identifiers (IDs). Thereafter, the responsive action is performed on each of the plurality of packets. A single unified classifier table may also be used to assign a Service Flow to packets with enhanced parallelism.
Get a summary, plain-language explanation, or ask your own question.
Figures
Description
CLAIM OF PRIORITY
[0001]This application claims priority to U.S. Provisional Patent Application Ser. No. 63/275,621, filed Nov. 4, 2021, entitled “DOCSIS Filter Group Processing Optimizations,” the contents of which are hereby incorporated by reference for all purposes as if fully set forth herein.
FIELD OF THE INVENTION
[0002]Embodiments of the invention generally relate to more efficiently processing packets received over a network, and more particularly, to enhanced parallelism in DOCSIS Filter Group Processing.
BACKGROUND
[0003]Data Over Cable Service Interface Specification (DOCSIS) is a widely employed telecommunication standard that facilitates high-bandwidth data transfer conducted over a cable television (CATV) infrastructure.
[0004]When an entity on a network receives a packet, the entity processes that packet to determine what responsive action should be performed. To that end, a network entity may use a DOCSIS subscriber management filter (“DOCSIS filter”), which is a type of access control list (ACL) that may define a rule for specifying whether a packet that satisfies certain criteria should be permitted or denied transmission to its destination. The information that is considered by a DOCSIS filter when determining whether to allow or deny a packet typically resides within the header of the packet. A DOCSIS filter may be used with both Downstream (DS) and Upstream (US) packet transmissions. A DS DOCSIS filter may be determined or specified based on the destination MAC address, while an US DOCSIS filter may be determined or specified based on the source MAC address.
[0005]DOCSIS filters are employed by a Cable Modem Termination System (CMTS). A group of DOCSIS filters may be organized as a DOCSIS filter group. Typically, a CMTS will employ multiple groups of DOCSIS filters that are each identified by a filter group identification number (Filter Group ID).
[0006]DOCSIS filters may be defined for a type of DOCSIS device type. For example, a first group of DOCSIS filters might be established for cable modems, a second group of DOCSIS filters may be established for a type of customer premise equipment (CPE), and a third group of DOCSIS filters may be established for a different type of customer premise equipment (CPE), and so on. DOCSIS filters may also be applied selectively using a cable modem configuration file so that the DOCSIS filter applies for that cable modem and all the CPEs that are behind that cable modem in the network. The rules defined by DOCSIS filters are global in terms of their applicability.
[0007]Typically, multiple DOCSIS filter groups are used. Each DOCSIS filter group specifies multiple rules, indices, and/or filters to apply. The configuration of a CMTS or a Cable Modem (CM) indicates when it should use or apply a particular DOCSIS filter group to a packet. A CMTS will apply all of the rules defined by a DOCSIS filter group having the appropriate Filter Group ID to a packet according to its configuration. A CM will apply all of the rules defined by a DOCSIS filter group having the appropriate Filter Group ID to itself and the CPEs serviced by that CM according to its configuration. For example, a CM configuration file of a particular CM may define, for each DOCSIS device type, which subscriber filter group should be used by that CM as well as the CPEs serviced by that CM.
[0008]Packets may be compared against a group of DOCSIS filters using hardware or software or both. In hardware, DOCSIS filters are usually implemented using a ternary content-addressable memory or TCAM, where each bit is either 0, 1, or “don't care”-a single electric “pulse” provides the first match result. In making a comparison in software, DOCSIS filters are usually implemented by a data structure, such as a tree data structure. A Data Plane Development Kit (DPDK) Access Control List (ACL) library provides capabilities to classify a batch of one or more input packets based on a set of classification rules.
[0009]Streaming SIMD Extensions (SSE), Advanced Vector Extensions (AVX), AVX2, and AVX-512 are examples of extensions to the x86 instruction set architecture which permit a certain number of packets in a batch to be processed in parallel by allowing the same operation to be performed on multiple memory addresses in the same clock cycle. The particular instruction used in processing a batch of packets is based on which instruction is more efficient, which in turn depends upon the batch size. As an example, if a batch size is between 4 and 7 packets inclusive, then an instruction or command from the Streaming SIMD Extensions 4 (SSE4) SIMD CPU instruction set might be used, and if the batch size is between 8 and 15 packets inclusive, then a different instruction or command from the Streaming SIMD Extensions 8 (SSE8) SIMD CPU instruction set might be used, and if the batch size is between 16 and 31 packets inclusive, then a different instruction or command from an instruction set might be used, and if the batch size is 32 or more packets, then a different instruction or command from an instruction set might be used.
[0010]Packets are processed by a CMTS implemented in hardware or software in batches. Packets will often have different destinations, e.g., a packet's destination may be a cable modem (CM) or a particular customer premises equipment (CPE) situated behind a CM in a network at the customer premises. A packet could identify any destination in its header. When packets are processed in a batch, one cannot determine a priori the destination of a packet, as prior to processing a packet its identified destination could be a variety of values.
[0011]
[0012]When a batch of packets is processed using MAC table 110, instead of proceeding with processing each individual packet in the batch using the appropriate filter group rules to completion in a packet-by-packet fashion, packets may be collected into separate sub-batches for each filter group, and thus gain some parallelism. For example, rather than deciding whether to accept or drop a first packet before considering whether to accept or drop any subsequent packet, some approaches may determine that a group of packets should consult the same set of rules, namely the rules shown in one of table 130, 132, or 134, to determine whether individual packets in that group should be accepted or dropped, and thereafter all the packets in that group may be processed according to the rules in the appropriate table. In this way, a batch of packets having the same Filter Group ID per MAC table 110 can be processed together as a group using the rules in the appropriate filter group table associated with that Filter Group ID.
[0013]Each of filter group tables 130, 132, 134 shown in
[0014]
[0015]If a particular rule defined by table 230 matches a packet, then a particular action is taken, as defined by the corresponding field in column 240. For example, if Rule ID 2 matches a packet, then the packet is dropped (i.e., denied transmission); on the other hand, if Rule ID 3 matches a packet, then the packet is accepted (permitted transmission).
[0016]Rules are typically applied sequentially in an approach called ‘first match.’ In a first match approach, the first rule in the table is checked to see if a match is found. Any packets that match Rule 1 are then processed according to Rule 1, and the rest of the unmatched packets are checked against the next rule in the table, namely Rule 2. Any packets that match Rule 2 are then processed according to Rule 2, and the rest of the unmatched packets are checked against the next rule in the table, and so on. Processing proceeds in this fashion until all packets match a rule or the last rule (which typically operates as a default rule) is applied.
[0017]When a CMTS performs DOCSIS filter group processing on a batch of packets, the batch of packets is divided into smaller batches depending on its associated filter group. For example, the DOCSIS filter group rules in Filter Group 1 in
BRIEF DESCRIPTION OF THE DRAWINGS
[0018]Embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
[0019]
[0020]
[0021]
[0022]
[0023]
DETAILED DESCRIPTION OF THE INVENTION
[0024]Approaches for enhanced parallelism in DOCSIS filter group processing are presented herein. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention described herein. It will be apparent, however, that the embodiments of the invention described herein may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form or discussed at a high level in order to avoid unnecessarily obscuring teachings of embodiments of the invention.
DOCSIS Filter Group Processing
[0025]Embodiments of the invention may be used by any entity on a computer network that receives packets and applies rules upon those packets to determine what responsive action should be performed upon a received packet, e.g., dropping the packet or forwarding the packet to another recipient across the computer network. Embodiments of the invention enhance the efficiency of performing DOCSIS filter group processing by facilitating the use of multiple filter group ID in a MAC table, which is not performed or supported by prior art approaches. Advantageously, embodiments enable network nodes to realize increased efficiencies in determining an appropriate responsive action in handling bursts of received packets and/or larger batch sizes of received packets.
[0026]Embodiments of the invention shall be chiefly described with reference to examples that support the use of multiple filter group ID in a MAC table, however embodiments may be employed with tables that specify packet destinations using approaches other than a MAC address. For example, embodiments of the invention can support the use of multiple filter group ID in a table that identifies packet destinations by IP address, e.g., using IPv4 or IPV6 addresses.
[0027]
[0028]In step 520, the network entity that received the packets in step 510 then determines a responsive action to be performed on those packets. The responsive action may take a variety of forms, such as a responsive action performed to enforce defined security procedures for the computer network, e.g., packets may be dropped by the recipient of step 510 or permitted to continue traveling across the computer network to the packet's destination. The network entity may do so by performing DOCSIS filter group processing on the plurality of received packets. Thereafter, in step 530, the network entity that determined the responsive action to take for each of the plurality of received packets in step 520 then performs the determined responsive action on each of the plurality of received packets. Advantageously, embodiments provide for performing step 520 such that enhanced parallelism may be realized over prior art approaches, as shall be described in further detail below.
[0029]
[0030]As shown in
[0031]Filter Group table 330 of
[0032]Advantageously, as DOCSIS filter group rules for multiple filter groups may be performed using a single table, larger batch sizes of packets may be performed in parallel using SIMD instructions. As the batch size of packet will tend to increase using the approach shown in
[0033]
[0034]The Filter Group ID may be identified by a packet using other approaches than that depicted by
[0035]As another example of how the Filter Group ID may be identified without relying upon a dedicated field, namely Filter Group ID 412, in the packet header, in another embodiment (not depicted by
[0036]
[0037]As shown in
[0038]Advantageously, embodiments of the invention provide for faster and more efficient processing of DOCSIS filter group rules, thereby allowing physical computer network equipment to process more efficiently and effectively. The prior art approach depicting in
Assigning Cable Modem Classifiers
[0039]Certain embodiments of the invention may also be used to enhance parallelism when performing downstream (DS) service flow classification. A Cable Modem (CM) classifier is an Access Control List (ACL) that, rather than being used for filtering packets by specifying rules to determine whether to permit or deny a packet, is used to classify into DOCSIS service flows. In other words, a certain packet will be classified into a service flow (which provides a given quality of service (QOS) only if it is matched to a classifier associated with that service flow. One of the service flows for each CM is designated as a “default” service flow so that all packets not matching any other service flow are assigned to the default service flow for that CM.
[0040]To support a process of classifying a packet to a CM classifier, an embodiment may employ a single unified classifier table (similar to the single unified Filter Group table discussed above) in memory. When a packet arrives, a determination is made as to which CM the packet is destined using a MAC table lookup or similar approach. Next, information from or associated with the packet is checked against the single unified classification table to determine the service flow for that packet.
[0041]The single unified classification table used by embodiments comprises all CM classifiers from all CMs. The single unified classification table may include a field to represent a CM ID (in similar fashion to the filter group ID column 434). In this way, using an embodiment, all CM classifier sets may be flattened into a single large classifier set stored in the single unified classification table. Using the single unified classification table enables all packets to be classified in parallel, thus achieving a higher degree of parallelism than prior art approaches.
[0042]To facilitate processing using the single unified classification table, embodiments that support classifying a packet to a particular CM classifier may write the cable modem ID associated with that packet into a field of the packet or in some other location that associates that cable modem ID with that packet. For example, an embodiment may employ a packet that carries its associated cable modem ID within a dedicated field of the packet header. The cable modem ID may also be copied into a buffer to be temporarily stored along with certain information carried by the fields of the packet header. Along with the copied fields stored temporarily in the buffer, an additional field that comprises the cable modem ID may be included to facilitate consultation with the single unified classification table. In another embodiment, an existing field in the packet, such as but not limited to Ethernet header fields 212, IP header fields 214, UDP/TCP header fields 216, and the Type of Service (TOS) field, may be overwritten, at least in part, with the cable modem ID. If an existing field in the header of a packet is overwritten to store the cable modem ID in this fashion, the original value previously contained in the overwritten field in the header may be restored after the packet has been assigned a CM classifier.
[0043]The single unified classification table of an embodiment may specify packet destinations using a variety of different approaches, such as a MAC address and an IP address, e.g., using IPv4 or IPv6 addresses.
Implementation
[0044]Embodiments may perform each of the steps of
[0045]The term “non-transitory computer-readable storage medium” as used herein refers to any tangible medium that participates in persistently storing instructions or operational guidance which may be provided to a processor for execution. Additional details about the operation of non-transitory computer-readable storage mediums may be found within U.S. Pat. No. 11,212,590, issued Dec. 28, 2021, entitled “Multiple Core Software Forwarding,” the entire contents of which are hereby incorporated by reference for all purposes as if fully set forth herein.
[0046]In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent modification. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Claims
What is claimed is:
1. A non-transitory computer-readable storage medium storing one or more sequences of instructions for processing packets in parallel, which when executed, cause:
receiving a plurality of packets transmitted over a computer network;
determining a responsive action to be performed against each of said plurality of packets by performing DOCSIS filter group processing on said plurality of packets using a single unified Filter Group table that comprises a plurality of rules that each define (a) a set of criteria and (b) a particular responsive action to perform against any packet matching the set of criteria for that rule, and wherein said plurality of rules in said single unified Filter Group table identify, in their sets of criteria, different Filter Group identifiers (IDs); and
performing said responsive action on each of said plurality of packets based on said DOCSIS filter group processing.
2. The non-transitory computer-readable storage medium of
3. The non-transitory computer-readable storage medium of
4. The non-transitory computer-readable storage medium of
5. The non-transitory computer-readable storage medium of
6. The non-transitory computer-readable storage medium of
7. The non-transitory computer-readable storage medium of
8. An apparatus for processing packets in parallel, comprising:
one or more processors; and
one or more non-transitory computer-readable storage mediums storing one or more sequences of instructions, which when executed, cause:
receiving a plurality of packets transmitted over a computer network;
determining a responsive action to be performed against each of said plurality of packets by performing DOCSIS filter group processing on said plurality of packets using a single unified Filter Group table that comprises a plurality of rules that each define (a) a set of criteria and (b) a particular responsive action to perform against any packet matching the set of criteria for that rule, and wherein said plurality of rules in said single unified Filter Group table identify, in their sets of criteria, different Filter Group identifiers (IDs); and
performing said responsive action on each of said plurality of packets based on said DOCSIS filter group processing.
9. The apparatus of
10. The apparatus of
11. The apparatus of
12. The apparatus of
13. The apparatus of
14. The apparatus of
15. A method for processing packets in parallel, comprising:
receiving a plurality of packets transmitted over a computer network;
determining a responsive action to be performed against each of said plurality of packets by performing DOCSIS filter group processing on said plurality of packets using a single unified Filter Group table that comprises a plurality of rules that each define (a) a set of criteria and (b) a particular responsive action to perform against any packet matching the set of criteria for that rule, and wherein said plurality of rules in said single unified Filter Group table identify, in their sets of criteria, different Filter Group identifiers (IDs); and
performing said responsive action on each of said plurality of packets based on said DOCSIS filter group processing.
16. The method of
17. The method of
18. The method of
19. The method of
20. The method of
21. The method of