DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . The application has been examined. Claims 1-20 are pending.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 06/26/2024. The submission is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Claim Objections
Claims 1-4, 6, 10-11, and 13-20 are objected to because of the following informalities: lack of terminology consistency
Claim 1, line 7, recites “based on the information” and should be changed to -- based on the obtained information --.
Similar changes are suggested for subsequent claims.
Claim 1, line 7, recites “based on the user configuration information, the memory profile” and should be changed to -- based on the received user configuration information, the generated memory profile --.
Similar changes are suggested for subsequent claims.
Claim 6, line 6, recites “on the traffic header fields” and should be changed to -- on the determined traffic header fields --.
Similar changes are suggested for subsequent claims.
Claim 13, line 5, recites “based on the information about the additional TCAM and based on the user configuration” and should be changed to -- based on the obtained information about the additional TCAM and based on the received user configuration --.
Similar changes are suggested for subsequent claims.
Claim 13, line 7, recites “the additional memory profile” and should be changed to -- the generated additional memory profile --.
Similar changes are suggested for subsequent claims.
Claim 15, line 7, recites “wherein the subset of qualifiers” and should be changed to -- wherein the received subset of qualifiers --.
Similar changes are suggested for subsequent claims.
Claim 16, line 1, recites “wherein the set of qualifiers supported” and should be changed to -- wherein the transmitted set of qualifiers supported --.
Similar changes are suggested for subsequent claims.
Claim 17, line 2, recites “for the network policy rules, each flow entry identifying a network flow” and should be changed to -- for the one or more network policy rules, each flow entry of the one or more stored flow entries identifying a network flow --.
Similar changes are suggested for subsequent claims.
Claim 19, line 9, recites “the set of supported qualifiers based on the one or more network policy rules” and should be changed to -- the obtained set of supported qualifiers based on the obtained one or more network policy rules --.
Similar changes are suggested for subsequent claims.
Claim 19, line 11, recites “wherein the subset of qualifiers” and should be changed to -- wherein the provided subset of qualifiers --.
Similar changes are suggested for subsequent claims.
Appropriate correction is required.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-20 are rejected under 35 U.S.C. 102(a)(1) as being unpatentable by Ranjan et al. (2021/0359997, hereinafter Ranjan).
Regarding claim 1, Ranjan discloses a method of operating a controller (Ranjan, para. 37) in a system that includes a network device (Ranjan, para. 37) having a ternary content addressable memory (TCAM) (Ranjan, para. 42), the method comprising:
obtaining, by the controller, information about the TCAM (Ranjan discloses that the applicable ACL configuration section is parsed to obtain a list of qualifiers and actions for each feature) (Ranjan, para. 16);
receiving, by the controller, user configuration information indicative of a network policy at least partly implemented by the network device (Ranjan discloses that the ACL configuration (user configuration information) represents security and processing rules (network policy) for handling the flow of network traffic in the network; the ACL configuration is received and parsed to identify TCAM profile features to be added to the TCAM profile based on the context and direction of traffic flow) (Ranjan, para. 22-23);
generating, by the controller, a memory profile for configuring the TCAM based on the information about the TCAM and based on the user configuration information, the memory profile including a set of qualifiers (Ranjan discloses that the TCAM profile is generated based on the received ACL configuration that identifies the TCAM profile feature(s) that includes the identified qualifiers/parameters/actions) (Ranjan, para. 22); and
providing, by the controller, the memory profile to the network device (Ranjan discloses that the network server receives the generated profile and based upon the profile features, one or more TCAM(s) of network devices are programmed using the profile) (Ranjan, para. 23).
Regarding claim 2, Ranjan discloses the method defined in claim 1, wherein the information about the TCAM comprises qualifiers supported by the TCAM (Ranjan discloses that the applicable ACL configuration section is parsed to obtain a list of qualifiers and actions for each feature) (Ranjan, para. 16).
Regarding claim 3, Ranjan discloses the method defined in claim 2, wherein the information about the TCAM comprises a size of each of the qualifiers supported by the TCAM (Ranjan discloses that the ACL configuration identifies features and/or additional features in the profile that are qualified to determine if they are compatible with one or more TCAM(s) and if they determined they can be combined into a TCAM key of a particular size) (Ranjan, para. 27).
Regarding claim 4, Ranjan discloses the method defined in claim 3, wherein the information about the TCAM comprises a total key space size of the TCAM (Ranjan discloses that the profile feature(s) that are identified from the TCAM profile includes a TCAM key size limit (total key space size) and a series of TCAM key fields that would be matched against the entered parameters) (Ranjan, para. 26).
Regarding claim 5, Ranjan discloses the method defined in claim 2, wherein the qualifiers supported by the TCAM comprise a source Media Access Control (MAC) address (Ranjan, para. 47), a destination MAC address (Ranjan, para. 51), a source Internet Protocol (IP) address (Ranjan, para. 47), a destination IP address (Ranjan, para. 47), a source Layer 4 port (Ranjan, para. 47), a destination Layer 4 port (Ranjan, para. 47), an inner virtual local area network (VLAN) identifier (Ranjan, para. 51), an outer VLAN identifier (Ranjan, para. 51), one or more tunneling header fields, and one or more user-defined fields.
Regarding claim 6, Ranjan discloses the method defined in claim 1, wherein the network policy comprises a policy rule (Ranjan discloses that the ACL configuration represents security and processing rules (policy rule) for handling the flow of network traffic in the network) (Ranjan, para. 22), the method further comprising:
identifying, by the controller, a network flow associated with the policy rule (Ranjan discloses that the ACL configuration is parsed to identify the TCAM profile features based on the routing configuration type and packet flow directions including parameters identifying a port/interface and a flow direction) (Ranjan, para. 23);
determining traffic header fields for identifying the network flow (Ranjan discloses that the TCAM is utilized for performing matching, a qualifier may be obtained from the packet header attributes (traffic header fields) and packet metadata that are attached to the packet(s) as it travels through the packet processing pipeline (network flow) or data from other lookup tables in the forwarding pipeline) (Ranjan, para. 16); and
selecting the set of qualifiers based at least in part on the traffic header fields for identifying the network flow (Ranjan discloses that the identified qualifiers are utilized with TCAM keys and identified actions are selected based on TCAM key matches to process directions to permit/deny the forwarding of packets, to prioritize packets, to recirculate the packets, etc.) (Ranjan, para. 47).
Regarding claim 7, Ranjan discloses the method defined in claim 6, wherein the policy rule of the network policy comprises a traffic policy rule (Ranjan discloses that the ACL configuration represents security and processing rules (traffic policy rule) for handling the flow of network traffic in the network) (Ranjan, para. 22).
Regarding claim 8, Ranjan discloses the method defined in claim 6, wherein the policy rule of the network policy comprises an access control list policy rule (Ranjan discloses that the ACL configuration represents security and processing rules (policy rule) for handling the flow of network traffic in the network; the network traffic routing is based on the routing configuration type such as security or policy routing) (Ranjan, para. 22-23).
Regarding claim 9, Ranjan discloses the method defined in claim 6, wherein the network policy comprises one or more additional policy rules (Ranjan discloses that the ACL configuration represents security and processing rules (additional policy rules) for handling the flow of network traffic in the network) (Ranjan, para. 22), the method further comprising:
identifying, by the controller, one or more additional network flows associated with the one or more additional policy rules (Ranjan discloses that the ACL configuration is parsed to identify the TCAM profile features based on the routing configuration type and packet flow directions including parameters (additional policy rules) identifying a port/interface and a flow direction) (Ranjan, para. 23);
determining additional traffic header fields for identifying the one or more additional network flows (Ranjan discloses that the TCAM is utilized for performing matching, a qualifier may be obtained from the packet header attributes (traffic header fields) and packet metadata that are attached to the packet(s) as it travels through the packet processing pipeline (network flow) or data from other lookup tables in the forwarding pipeline) (Ranjan, para. 16); and
selecting the set of qualifiers based at least in part on the additional traffic header fields for identifying the one or more additional network flows (Ranjan discloses that the identified qualifiers are utilized with TCAM keys and identified actions are selected based on TCAM key matches to process directions to permit/deny the forwarding of packets, to prioritize packets, to recirculate the packets, etc.) (Ranjan, para. 47).
Regarding claim 10, Ranjan discloses the method defined in claim 9, wherein selecting the set of qualifiers (Ranjan discloses that the ACL configuration section is parsed to obtain a list of qualifiers and actions for each feature, which would be matched in a TCAM key for implementing a rule resulting in an action or non-action) (Ranjan, para. 16) comprises determining that the set of qualifiers is compatible with the information about the TCAM (Ranjan discloses that the ACL configuration identifies additional features in the profile that are qualified to determine if they are compatible with one or more TCAMs) (Ranjan, para. 27).
Regarding claim 11, Ranjan discloses the method defined in claim 10, wherein compatibility of the set of qualifiers with the information about the TCAM (Ranjan discloses that the ACL configuration identifies additional features in the profile that are qualified to determine if they are compatible with one or more TCAMs) (Ranjan, para. 27) is based on each qualifier in the set of qualifiers being supported by the TCAM as indicated by the information about the TCAM and is based on a total size of the set of qualifiers not exceeding a key space size indicated by the information about the TCAM (Ranjan discloses that the profile feature(s) that are identified from the TCAM profile includes a TCAM key size limit (total key space size) and a series of TCAM key fields that would be matched against the entered parameters; the qualifiers and actions that were identified are validated to determine if they are compliant with the specific TCAM constraints) (Ranjan, para. 26, 48).
Regarding claim 12, Ranjan discloses the method defined in claim 1, wherein the network device is operable to configure the TCAM with the memory profile and to store, with the TCAM, flow entries having key fields (Ranjan discloses that the profile feature(s) that are identified from the TCAM profile includes a TCAM key size limit (total key space size) and a series of TCAM key fields that would be matched against the entered parameters) (Ranjan, para. 26) based on the set of qualifiers of the memory profile (Ranjan discloses that the generated and distributed TCAM profiles are encoded in memory) (Ranjan, para. 39).
Regarding claim 13, Ranjan discloses the method defined in claim 1 further comprising:
obtaining, by the controller, information about an additional TCAM of an additional network device (Ranjan discloses that the applicable ACL configuration section is parsed to obtain a list of qualifiers and actions for each feature; the device 300 may represent a server for generating TCAM profiles for TCAM tables and/or network devices in which the TCAM tables reside) (Ranjan, para. 16, 37);
generating, by the controller, an additional memory profile for additional TCAM based on the information about the additional TCAM and based on the user configuration information (Ranjan discloses that the TCAM profile is generated based on the received ACL configuration that identifies the TCAM profile feature(s) that includes the identified qualifiers/parameters/actions) (Ranjan, para. 22); and
providing, by the controller, the additional memory profile to the additional network device (Ranjan discloses that the network server receives the generated profile and based upon the profile features, one or more TCAM(s) of network devices are programmed using the profile) (Ranjan, para. 23).
Regarding claim 14, Ranjan discloses the method defined in claim 13, wherein the additional memory profile includes an additional set of qualifiers different from the set of qualifiers in the memory profile (Ranjan discloses that the ACL configuration identifies additional features (qualifiers) in the profile by their context and given a sequence number to differentiate one feature from another) (Ranjan, para. 26).
Regarding claim 15, Ranjan discloses a method of operating a network device (Ranjan, para. 37) having a ternary content addressable memory (TCAM) (Ranjan, para. 42) in a system that includes a controller (Ranjan, para. 37), the method comprising:
transmitting, by the network device and to the controller, a set of qualifiers supported by the TCAM (Ranjan discloses that the applicable ACL configuration section is parsed to obtain a list of qualifiers and actions for each feature) (Ranjan, para. 16), a size of each qualifier in the set of qualifiers (Ranjan discloses that the ACL configuration identifies features and/or additional features in the profile that are qualified to determine if they are compatible with one or more TCAM(s) and if they determined they can be combined into a TCAM key of a particular size) (Ranjan, para. 27), and a total key space size of the TCAM (Ranjan discloses that the profile feature(s) that are identified from the TCAM profile includes a TCAM key size limit (total key space size) and a series of TCAM key fields that would be matched against the entered parameters) (Ranjan, para. 26);
receiving, by the network device and from the controller, a subset of qualifiers in the set of supported qualifiers, wherein the subset of qualifiers is based on one or more network policy rules provided by user configuration (Ranjan discloses that the ACL configuration (user configuration information) represents security and processing rules (network policy) for handling the flow of network traffic in the network; the ACL configuration is received and parsed to identify TCAM profile features (qualifiers) to be added to the TCAM profile based on the context (subset of qualifiers) and direction of traffic flow) (Ranjan, para. 22-23); and
configuring, by the network device, the TCAM based on the subset of qualifiers (Ranjan discloses that the network device configures to perform network processing based upon the generated TCAM profiles) (Ranjan, para. 40).
Regarding claim 16, Ranjan discloses the method defined in claim 15, wherein the set of qualifiers supported by the TCAM, the size of each qualifier in the set of qualifiers, and the total key space size of the TCAM are transmitted as part of support information for the network device (Ranjan discloses that the ACL configuration identifies additional features in the profile that are qualified to determine if they are compatible with one or more TCAMs) (Ranjan, para. 27) and wherein the subset of qualifiers is compatible with the support information for the network device (Ranjan discloses that the network server receives the published profile and based upon the profile features (compatible with the support information), one or more TCAMs of network devices serviced by the server are programmed using the profile) (Ranjan, para. 36).
Regarding claim 17, Ranjan discloses the method defined in claim 15 further comprising:
storing one or more flow entries (Ranjan discloses that the generating and distributing TCAM profiles and other processing functions (flow entry) are stored in memory) (Ranjan, para. 39) for the network policy rules, each flow entry identifying a network flow based on one or more header fields corresponding to one or more qualifiers in the subset of qualifiers (Ranjan discloses that the TCAM is utilized for performing matching, a qualifier may be obtained from the packet header attributes (traffic header fields) and packet metadata that are attached to the packet(s) as it travels through the packet processing pipeline (network flow) or data from other lookup tables in the forwarding pipeline) (Ranjan, para. 16).
Regarding claim 18, Ranjan discloses the method defined in claim 17 further comprising:
receiving network traffic (Ranjan discloses that the network interface 550 may receive and/or transmit network traffic processed with the use of forwarding tables 535 in TCAM memory 550 and additional ACL configurations may be received again and further utilized to generate updated TCAM profiles and TCAM table programming) (Ranjan, para. 42);
matching header information in the received network traffic to the one or more flow entries for the network policy rules (Ranjan discloses that the TCAM is utilized for performing matching, a qualifier may be obtained from the packet header attributes (traffic header fields) and packet metadata that are attached to the packet(s) as it travels through the packet processing pipeline (network flow) or data from other lookup tables in the forwarding pipeline) (Ranjan, para. 16); and
taking one or more corresponding actions based on the header information matching a given flow entry in the one or more flow entries (Ranjan discloses that the identified qualifiers are utilized with TCAM keys and identified actions are selected based on TCAM key matches to process directions to permit/deny the forwarding of packets, to prioritize packets, to recirculate the packets, etc.) (Ranjan, para. 47).
Regarding claim 19, Ranjan discloses one or more non-transitory computer-readable storage media (Ranjan, para. 42) comprising computer-executable instructions that, when executed by one or more processors (Ranjan, para. 38), cause the one or more processors to:
obtain a set of qualifiers supported by a ternary content addressable memory (TCAM) of a network device (Ranjan discloses that the applicable ACL configuration section is parsed to obtain a list of qualifiers and actions for each feature) (Ranjan, para. 16), a size of each qualifier in the set of qualifiers (Ranjan discloses that the ACL configuration identifies features and/or additional features in the profile that are qualified to determine if they are compatible with one or more TCAM(s) and if they determined they can be combined into a TCAM key of a particular size) (Ranjan, para. 27), and a total key space size of the TCAM (Ranjan discloses that the profile feature(s) that are identified from the TCAM profile includes a TCAM key size limit (total key space size) and a series of TCAM key fields that would be matched against the entered parameters) (Ranjan, para. 26);
obtain one or more network policy rules provided by user configuration (Ranjan discloses that the ACL configuration (user configuration information) represents security and processing rules (network policy) for handling the flow of network traffic in the network; the ACL configuration is received and parsed to identify TCAM profile features (qualifiers) to be added to the TCAM profile based on the context (subset of qualifiers) and direction of traffic flow) (Ranjan, para. 22-23); and
provide a subset of qualifiers in the set of supported qualifiers based on the one or more network policy rules (Ranjan discloses that the ACL configuration (user configuration information) represents security and processing rules (network policy) for handling the flow of network traffic in the network; the ACL configuration is received and parsed to identify TCAM profile features (qualifiers) to be added to the TCAM profile based on the context (subset of qualifiers) and direction of traffic flow) (Ranjan, para. 22-23), the set of qualifiers, the size of each qualifier in the set of qualifiers, and the total key space size of the TCAM, wherein the subset of qualifiers is usable to configure the TCAM (Ranjan discloses that the network device configures to perform network processing based upon the generated TCAM profiles) (Ranjan, para. 40).
Regarding claim 20, Ranjan discloses the one or more non-transitory computer-readable storage media defined in claim 19, wherein the subset of qualifiers identifies one or more header fields based on which a network flow (Ranjan discloses that the TCAM is utilized for performing matching, a qualifier may be obtained from the packet header attributes (header fields) and packet metadata that are attached to the packet(s) as it travels through the packet processing pipeline (network flow) or data from other lookup tables in the forwarding pipeline) (Ranjan, para. 16) corresponding to a flow entry in the one or more network policy rules is identified (Ranjan discloses that the qualifiers include parameters to be used in a TCAM key and actions includes network processing functions (flow entry) based upon TCAM key matches) (Ranjan, para. 34).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Immidi (2017/0346765) discloses packets that are processed and routed according to the matched table.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ANDREW WOO whose telephone number is (571)270-7521. The examiner can normally be reached Telework 9:00AM-6:00PM | IFP M-F 9:00AM-6:00PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Umar Cheema can be reached at 571-270-3037. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ANDREW WOO/Examiner, Art Unit 2441