IP Library Granted Patent US 12,432,208
Granted Patent B2
US 12,432,208 · App. 17/841,386 · Granted Sep 30, 2025

Optimized data-over-cable service interface specifications filter processing for batches of data packets using a single access control list lookup

Inventors: David Coyle (Limerick, IE); Brendan Ryan (Limerick, IE); Konstantin Ananyev (Naas, IE)
Assignee: Intel Corporation
H04L63/101H04L12/2801H04L63/0236
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,432,208
App. No.
17/841,386
Granted
Sep 30, 2025
Kind
B2
Abstract

The present disclosure provides mechanisms to optimize filter processing. Conventional filter processing techniques involve dividing a batch of received data packets into multiple Access Control Lists (ACLs) per filter group, and thus, cannot leverage of optimal ACL processing of large packet batches using the latest processor instruction sets such as 512 bit wide instructions. The filter processing techniques discussed in the present disclosure, some or all rules for a batch of packets are included in a single ACL look-up by including a filter group identifier (ID) in each rule, and also adding the filter group ID to a field of the packet undergoing the ACL look-up. This avoids false matches while also employing a single ACL look-up for an entire batch of packets, regardless of batch-size. The filter processing techniques can be applied to DOCSIS packet processing pipelines and/or other filtering mechanisms.

Claims (50)

1. An apparatus for a filter processing stage of a packet processing pipeline, the apparatus comprising:

interface circuitry to receive a batch of packets to be processed by the packet processing pipeline, wherein each packet in the batch of packets includes a filter group identifier (GrpId), and at least one packet in the batch of packets has a first GrpId different than a second GrpId of at least one other packet in the batch of packets; and

processor circuitry connected to the interface circuitry, the processor circuitry is to operate the filter processing stage of the packet processing pipeline to perform a single access control list (ACL) lookup operation on a single ACL, wherein the single ACL includes a set of filter rules, and each filter rule of the set of filter rules includes a GrpId of a filter group to which it belongs.

2. The apparatus of claim 1 , wherein the processor circuitry is to operate the filter processing stage to:

utilize a most optimal code path of an ACL library for performing the filter processing.

3. The apparatus of claim 1 , wherein, to perform the single ACL lookup operation, the processor circuitry is to operate the filter processing stage to:

send an entirety of the batch of packets to an ACL library in a single function call.

4. The apparatus of claim 1 , wherein each packet is a Internet Protocol (IP) version 4 (IPv4) packet, and the GrpId is included in an identification field of a header of each packet.

5. The apparatus of claim 1 , wherein each packet is a IP version 6 (Ipv6) packet, and the GrpId is included in an identification field of a header of each packet or in a flow label field of the header of each packet.

6. The apparatus of claim 1 , wherein the GrpId of each packet is based on an equipment type of a destination address included in each packet.

7. The apparatus of claim 6 , wherein the equipment type is an equipment type of customer premises equipment (CPE), and the GrpId is based on a filter group assigned to a cable modem (CM) associated with the CPE.

8. The apparatus of claim 1 , wherein the processor circuitry is to operate the filter processing stage to:

determine a CM and CPE type of each received packet; and

determining a filter group to which each packet belongs based on the CPE type and a filter group assigned to the CM;

create an ACL lookup object for each packet, wherein the ACL lookup object includes all tuple fields and the GrpId, and the ACL lookup object defines the set of filter rules and is an input to an ACL batch classification algorithm; and

perform the ACL lookup for all packets in the batch and across all filter groups using the created ACL lookup object.

9. The apparatus of claim 8 , wherein the ACL library is a Data Plane Development Kit (DPDK) ACL library, and the processor circuitry is to operate the filter processing stage to:

perform the ACL lookup using a single call to a DPDK rte_acl_classify( ) application programming interface (API).

10. The apparatus of claim 1 , wherein the processor circuitry is to operate the filter processing stage to:

use a 512-bit instruction set to process the batch when the batch has more than 32 packets;

use a 256-bit instruction set to process the batch when the batch has 16 or more packets and less than 32 packets;

use a Streaming Single Instruction Multiple Data Extensions 8 (sse8) instruction set to process the batch when the batch has between 8 and 16 packets;

use a Streaming Single Instruction Multiple Data Extensions 4 (sse4) instruction set to process the batch when the batch has between 4 and 8 packets; and

use a scalar processor instruction set or a single instruction single data (SISD) processor instruction set to process the batch when the batch has less than 4 packets.

11. The apparatus of claim 10 , wherein the 512-bit instruction set and the 256-bit instruction set are advanced vector extension (AVX)-512 instructions.

12. The apparatus of claim 1 , wherein the packet processing pipeline is a Data Over Cable Service Interface Specification (DOCSIS) Medium Access Control (MAC) packet processing pipeline, and the apparatus is a virtualized cable modem termination system (vCMTS) platform.

13. One or more non-transitory computer-readable media (NTCRM) comprising instructions of a filter stage of a Data Over Cable Service Interface Specification (DOCSIS) packet processing pipeline, wherein execution of the instructions by one or more processors of a compute node is to cause the compute node to:

receive a batch of packets to be filtered, wherein each packet in the batch of packets includes a filter group identifier (GrpId), and the batch of packets includes multiple GrpIds; and

for each packet in the batch of packets,

determine a cable modem (CM) and a customer premises equipment (CPE) type,

determine a filter group to which the packet belongs based on the CPE type and a filter group assigned to the CM, and

create a filter lookup object including the determined filter group; and

perform a single access control list (ACL) lookup operation for all packets in the batch of packets and across all filter groups in a single ACL, wherein the single ACL includes a set of filter rules, and each filter rule of the set of filter rules in the single ACL includes a GrpId of a filter group to which it belongs.

14. The one or more NTCRM of claim 13 , wherein execution of the instructions is to cause the compute node to:

determine the filter group based on a group object indicated by each packet.

15. The one or more NTCRM of claim 14 , wherein execution of the instructions is to cause the compute node to:

perform the ACL lookup using the created filter object.

16. The one or more NTCRM of claim 15 , wherein execution of the instructions is to cause the compute node to:

send an entirety of the batch of packets to an ACL library in a single function call.

17. The one or more NTCRM of claim 16 , wherein the ACL library is a Data Plane Development Kit (DPDK) ACL library, and execution of the instructions is to cause the compute node to:

perform the ACL lookup using a single call to a DPDK rte_acl_classify ( ) application programming interface (API).

18. The one or more NTCRM of claim 13 , wherein execution of the instructions is to cause the compute node to:

use an advanced vector extension (AVX)-512 512-bit instruction set to process the batch when the batch has more than 32 packets;

use an AVX-512 256-bit instruction set to process the batch when the batch has 16 or more packets and less than 32 packets;

use a Streaming Single Instruction Multiple Data Extensions 8 (sse8) instruction set to process the batch when the batch has between 8 and 16 packets;

use a Streaming Single Instruction Multiple Data Extensions 4 (sse4) instruction set to process the batch when the batch has between 4 and 8 packets; and

use a scalar processor instruction set or a single instruction single data (SISD) processor instruction set to process the batch when the batch has less than 4 packets.

19. The one or more NTCRM of claim 17 , wherein the compute node is a virtual cable modem termination system (vCMTS) platform.

20. The one or more NTCRM of claim 19 , wherein the compute node is one or more servers in a data center.

21. The one or more NTCRM of claim 19 , wherein the compute node is one or more edge compute nodes co-located with one or more network access nodes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2022
From: COYLE, DAVID; RYAN, BRENDAN; ANANYEV, KONSTANTIN
To: INTEL CORPORATION
Reel/Frame 060411/0452 →
Continuity (2)
Provisional Application 63275182 · Nov 3, 2021
Related Publication 20220321566A1 · Oct 6, 2022
References Cited (41)
US 7110404B1 · Temoshenko · 2006 [cited by examiner]
US 7656877B1 · Sharan · 2010 [cited by examiner]
US 10284473B1 · Sharma · 2019 [cited by examiner]
US 11588821B1 · Detwiler · 2023 [cited by examiner]
US 20040160903A1 · Gai · 2004 [cited by examiner]
US 20050044396A1 · Vogel · 2005 [cited by examiner]
US 20150012998A1 · Nellikar · 2015 [cited by examiner]
US 20170118173A1 · Arramreddy · 2017 [cited by examiner]
US 20200228491A1 · Bleidorn · 2020 [cited by examiner]
US 20220321566A1 · Coyle et al. · 2022 [cited by applicant]
“Data-Over-Cable Service Interface Specifications DOCSIS® 3.1; CCAP™ Operations Support System Interface Specification”, CM-SP-CCAP-OSSIv3.1-116-190917, 655 pages (Sep. 10, 2019). [cited by applicant]
“Data-Over-Cable Service Interface Specifications DOCSIS® 4.0; CCAP™ Operations Support System Interface Specification”, CM-SP-CCAP-OSSIv4.0-I06-220302, 791 pages (Feb. 28, 2022). [cited by applicant]
“Data-Over-Cable Service Interface Specifications DOCSIS® 3.1; Cable Modem Operations Support System Interface Specification”, CM-SP-CM-OSSIv3.1-I22-220216, 307 pages (Feb. 7, 2022). [cited by applicant]
“Data-Over-Cable Service Interface Specifications DOCSIS® 4.0; Cable Modem Operations Support System Interface Specification”, CM-SP-CM-OSSIv4.0-I06-220302, 319 pages (Feb. 22, 2022). [cited by applicant]
“Data-Over-Cable Service Interface Specifications Flexible MAC Architecture; Flexible MAC Architecture (FMA) System Specification”, CM-SP-FMA-SYS-I03-220126, 190 pages (Jan. 25, 2022). [cited by applicant]
“Data-Over-Cable Service Interface Specifications DCA-MHAv2; Generic Control Plane Specification”, CM-SP-GCP-I05-200323, 30 pages (Mar. 23, 2020). [cited by applicant]
“Data-Over-Cable Service Interface Specifications DOCSIS® 3.1; MAC and Upper Layer Protocols Interface Specification”, CM-SP-MULPIv3.1-I21-201020, 882 pages (Oct. 16, 2020). [cited by applicant]
“Data-Over-Cable Service Interface Specifications DOCSIS® 4.0; MAC and Upper Layer Protocols Interface Specification”, CM-SP-MULPIv4.0-105-220328, 992 pages (Mar. 23, 2022). [cited by applicant]
“Data-Over-Cable Service Interface Specifications DOCSIS® 4.0; Physical Layer Specification”, CM-SP-PHYv4.0-I05-220328, 153 pages (Mar. 22, 2022). [cited by applicant]
“Data-Over-Cable Service Interface Specifications MHAv2; Remote Downstream External PHY Interface Specification”, CM-SP-R-DEPI-116-210804, 111 pages (Aug. 4, 2021). [cited by applicant]
“Data-Over-Cable Service Interface Specifications MHAv2; Remote PHY OSS Interface Specification”, CM-SP-R-OSSI-I17-220128, 351 pages (Jan. 24, 2022). [cited by applicant]
“Data-Over-Cable Service Interface Specifications MHAv2; Remote PHY Specification”, CM-SP-R-PHY-117-220531, 484 pages (May 31, 2022). [cited by applicant]
“Data-Over-Cable Service Interface Specifications Converged Cable Access Platform; Converged Cable Access Platform Architecture Technical Report”, CM-TR-CCAP-V03-120511, 50 pages (May 11, 2012). [cited by applicant]
“Data-Over-Cable Service Interface Specifications DCA; Distributed CCAP Architectures Overview Technical Report”, CM-TR-DCA-V01-150908, 44 pages (Sep. 8, 2015). [cited by applicant]
“Data-Over-Cable Service Interface Specifications DCA-MHAv2; Modular Headend Architecture v2 Technical Report”, CM-TR-MHAv2-V01-150615, 34 pages (Jun. 15, 2015). [cited by applicant]
Vecima, “DAA: Deciding Between Remote PHY and Remote MACHPHY”, 8 pages (Dec. 10, 2020), https://vecima.com/wp-content/uploads/2020/12/WHITEPAPER_DAA-Deciding-Between-Remote-PHY-and-Remote-MACPHY_-Final.pdf. [cited by applicant]
“PacketCable™ Specification, Multimedia Specification”, PKT-SP-MM-C01-191120, 164 pages (Oct. 25, 2019). [cited by applicant]
Extended European Search Report mailed Feb. 21, 2023 for European Patent Application No. 22199900.6, 8 pages. [cited by applicant]
“Data-Over-Cable Service Interface Specifications Docsis”, ITU-T Draft; Study Period 2017-2020; Study Group 9, International Telecommunication Union, Geneva, 654 pages (Feb. 17, 2020). [cited by applicant]
“Data-Over-Cable Service Interface Specifications DOCSIS 4.0 MAC and Upper Layer Protocols Interface Specification”, ITU-T Draft; Study Period 2017-2020; Study Group 9, International Telecommunication Union, Geneva, 935… [cited by applicant]
“Intel® vCMTS Demo Overview”, Intel Corp., 4 pages (Oct. 21, 2018). [cited by applicant]
“Intel vCMTS Reference Dataplane v20.10.0”, Intel Corp., 84 pages (Nov. 23, 2020). [cited by applicant]
“Intel vCMTS Reference Dataplane v21.10.0”, Intel Corp., 80 pages, (Nov. 27, 2021). [cited by applicant]
Ryan et al., “How VCMTS Paves the Way for 5G Over DOCSIS: Exploring Software-centric Solutions for 5G Xhaul and FMC”, 2021 Fall Technical Forum Proceedings, SCTE Cable-Tec Expo, NCTA—The Internet & Television Associatio… [cited by applicant]
Hirochika Asai, “Palmtrie: A Ternary Key Matching Algorithm for IP Packet Filtering Rules”, Association for Computing Machinery, Proceedings of the 16th International Conference on emerging Networking Experiments and Te… [cited by applicant]
Carotti et al., “Container Bare Metal for 2nd Generation and 3rd Generation Intel® Xeon® Scalable Processor”, Intel Corp., Reference Architecture Release version 21.08, 141 pages (Aug. 18, 2021). [cited by applicant]
Cahill et al., “Container Bare Metal for 2nd Generation and 3rd Generation Intel® Xeon® Scalable Processor and Intel® Xeon® D Processor Reference Architecture User Guide Release V22.01”, Intel Corp., User Guide, 93 page… [cited by applicant]
“Container Bare Metal for 2nd Generation Intel® Xeon® Scalable Processor”, Intel Corp., Reference Architecture Release V21.09, 116 pages (Oct. 20, 2021). [cited by applicant]
Ryan et al., “Maximizing vCMTS Data Plane Performance with 3rd Gen Intel® Xeon® Scalable Processor Architecture”, Intel Corp., White Paper: Processor Architecture Study, 16 pages (Aug. 25, 2021). [cited by applicant]
Tiwari et al., “Accelerating x265 with Intel® Advanced Vector Extensions 512”, Intel Corp., White Paper: Communications Service Providers High Efficiency Video Codec, 16 pages (May 3, 2018), https://www.intel.com/conten… [cited by applicant]
O'Hanlon et al., “Maximizing the Performance of DOCSIS 3.0/3.1 Processing on Intel® Xeon® Processors”, Intel Corp., Architecture Study, 11 pages (Oct. 17, 2017), https://builders.intel.com/docs/networkbuilders/vcmts-doc… [cited by applicant]