Hardware TOS remapping based on source autonomous system identifier
First Claim
1. A method comprising:
- receiving a packet, whereinsaid packet comprises a plurality of fields;
parsing said plurality of fields of said packet, whereinsaid parsing produces an extracted plurality of fields;
generating a priority identifier, whereinsaid priority identifier is based on said extracted plurality of fields;
extracting a type-of-service from said packet, whereinsaid extracting said type-of-service comprisesextracting a type-of-service identifier from said extracted plurality of fields,said type-of-service identifier identifies said type-of-service, andsaid type-of-service is a type-of-service of said packet; and
forming an internal identifier by transforming said type-of-service of said packet, whereinsaid forming comprisesextracting an autonomous system identifier from said extracted plurality of fields, andconverting said autonomous system identifier into a label, andsaid transforming uses said priority identifier and said label to form said internal identifier.
0 Assignments
0 Petitions
Accused Products
Abstract
A rapid method and apparatus for remapping the type of service (TOS) and source address information from an incoming communications packet according to the desired Quality of Service (QoS) required for the communications flow into a switch or router are described. The input source address field of the packet header is used to access a lookup table of corresponding source autonomous system (AS) labels. The appropriate AS label is combined with the input TOS yielding an intra-switch TOS optimized for the QoS appropriate to the received flow. Alternatively, the netID, a subset of the source address, may be used directly without resort to a lookup table. As a further alternative, the destination address may be used in conjunction with the above. The resulting intra-switch TOS expedites packet management and throughput in the switch/router, facilitating the efficient delivery of the required Quality of Service for that flow.
6 Citations
103 Claims
-
1. A method comprising:
-
receiving a packet, wherein said packet comprises a plurality of fields; parsing said plurality of fields of said packet, wherein said parsing produces an extracted plurality of fields; generating a priority identifier, wherein said priority identifier is based on said extracted plurality of fields; extracting a type-of-service from said packet, wherein said extracting said type-of-service comprises extracting a type-of-service identifier from said extracted plurality of fields, said type-of-service identifier identifies said type-of-service, and said type-of-service is a type-of-service of said packet; and forming an internal identifier by transforming said type-of-service of said packet, wherein said forming comprises extracting an autonomous system identifier from said extracted plurality of fields, and converting said autonomous system identifier into a label, and said transforming uses said priority identifier and said label to form said internal identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer program product comprising:
-
a plurality of instructions, comprising a first set of instructions, executable on a computer system, configured to receive a packet, wherein said packet comprises a plurality of fields, a second set of instructions, executable on said computer system, configured to parse said plurality of fields of said packet, wherein said parsing produces an extracted plurality of fields, a third set of instructions, executable on said computer system, configured to generate a priority identifier, wherein said priority identifier is based on said extracted plurality of fields, a fourth set of instructions, executable on said computer system, configured to extract a type-of-service from said packet, wherein said fourth set of instructions comprises a first subset of instructions, executable on said computer system, configured to extract a type-of-service identifier from said extracted plurality of fields, said type-of-service identifier identifies said type-of-service, and said type-of-service is a type-of-service of said packet, and a fifth set of instructions, executable on said computer system, configured to form an internal identifier, wherein said fifth set of instructions comprises a second subset of instructions, executable on said computer system, configured to transform said type-of-service of said packet, said second subset of instructions comprises a third sub-subset of instructions, executable on said computer system, configured to extract an autonomous system identifier from said extracted plurality of fields, and a fourth sub-subset of instructions, executable on said computer system, configured to convert said autonomous system identifier into a label, and said second subset of instructions uses said priority identifier and said label to form said internal identifier; and computer readable storage media, wherein said instructions are encoded in said computer readable storage media. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. An apparatus comprising:
-
means for receiving a packet, wherein said packet comprises a plurality of fields; means for parsing said plurality of fields of said packet, wherein said means for parsing is configured to produce an extracted plurality of fields; means for generating a priority identifier, wherein said priority identifier is based on said extracted plurality of fields; means for extracting a type-of-service from said packet, wherein said means for extracting said type-of-service comprises a means for extracting a type-of-service identifier from said extracted plurality of fields, said type-of-service identifier identifies said type-of-service, and said type-of-service is a type-of-service of said packet; and means for forming an internal identifier, wherein said means for forming comprises means for transforming said type-of-service of said packet, and said means for transforming comprises a means for extracting an autonomous system identifier from said extracted plurality of fields, and a means for converting said autonomous system identifier into a label, and said means for transforming is configured to use said priority identifier and said label to form said internal identifier. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A method comprising:
-
receiving a packet, wherein said packet comprises a plurality of fields; parsing said plurality of fields of said packet, wherein said parsing produces an extracted plurality of fields; selecting a type-of-service transform function from a list of type-of-service transform functions, wherein said selecting is based on a type-of-service of a packet; generating a priority identifier using said type-of-service transform function and said extracted plurality of fields; and forming an internal identifier by transforming said type-of-service of said packet, wherein said transforming uses said priority identifier, and said transforming comprises looking up said type-of-service transform function in a transform table. - View Dependent Claims (41, 42, 43, 44, 45, 46)
-
-
47. A computer program product comprising:
-
a plurality of instructions, comprising a first set of instructions, executable on a computer system, configured to receive a packet, wherein said packet comprises a plurality of fields, a second set of instructions, executable on a computer system, configured to parse said plurality of fields of said packet, wherein said second set of instructions produces an extracted plurality of fields, a third set of instructions, executable on a computer system, configured to select a type-of-service transform function from a list of type-of-service transform functions, wherein said third set of instructions use a type-of-service of a packet to select said type-of-service transform function, a fourth set of instructions, executable on said computer system, configured to generate a priority identifier using said type-of-service transform function and said extracted plurality of fields, a fifth set of instructions, executable on a computer system, configured to form an internal identifier, wherein said fifth set of instructions comprises a first subset of instructions, executable on said computer system, configured to transform said type-of-service of said packet, and said transforming uses said priority identifier; and computer readable storage media, wherein said instructions are encoded in said computer readable storage media. - View Dependent Claims (48, 49, 50, 51)
-
-
52. An apparatus comprising:
-
means for receiving a packet, wherein said packet comprises a plurality of fields; means for parsing said plurality of fields of said packet, wherein said parsing produces an extracted plurality of fields; means for selecting a type-of-service transform function from a list of type-of-service transform functions, wherein said means for selecting is configured to select said type-of-service transform function based on a type-of-service of a packet; means for generating a priority identifier using said type-of-service transform function and said extracted plurality of fields; and means for forming an internal identifier, wherein said means for forming comprises means for transforming said type-of-service of said packet, and said means for transforming uses said priority identifier. - View Dependent Claims (53, 54, 55, 56)
-
-
57. A network device comprising:
-
an extractor, wherein said network device is configured to receive a packet, said extractor is coupled to receive said packet, and said extractor is configured to extract a plurality of fields from said packet; a parser, wherein said parser is coupled to receive said plurality of fields from said extractor, and said parser is configured to produce an extracted plurality of fields from said plurality of fields; a type-of-service unit, wherein said type-of-service unit is a type-of-service remapper, said type-of-service remapper is configured to generate a priority identifier from an index received by said type-of-service remapper, said parser is coupled to provide said extracted plurality of fields to said type-of-service remapper, and said index is based on said extracted plurality of fields; and a table, wherein said type-of-service remapper is coupled to provide said index to said table, said table is coupled to provide an internal identifier to said type-of-service remapper, in response to receiving said index from said type-of-service remapper, and said type-of-service unit is configured to generate said priority identifier using said internal identifier. - View Dependent Claims (58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69)
-
-
70. A network device comprising:
-
an extractor, wherein said network device is configured to receive a packet, said extractor is coupled to receive said packet, and said extractor is configured to extract a plurality of fields from said packet; a parser, wherein said parser is coupled to receive said plurality of fields from said extractor, and said parser is configured to produce an extracted plurality of fields from said plurality of fields; a type-of-service unit, wherein said type-of-service unit is a type-of-service transformer, and said type-of-service transformer is configured to generate a priority identifier based on a type-of-service of said packet, said parser is coupled to provide said extracted plurality of fields to said type-of-service transformer, and said index is based on said extracted plurality of fields; and a transform table, wherein said type-of-service transformer is coupled to provide said index to said transform table, said transform table is coupled to provide an internal identifier to said type-of-service transformer, in response to receiving said index from said type-of-service transformer, and said type-of-service unit is configured to generate said priority identifier using said internal identifier. - View Dependent Claims (71, 72, 73, 74, 75)
-
-
76. A network device comprising:
-
an extractor, wherein said network device is configured to receive a packet, said extractor is coupled to receive said packet, and said extractor is configured to extract a plurality of fields from said packet; a parser, wherein said parser is coupled to receive said plurality of fields from said extractor, and said parser is configured to produce an extracted plurality of fields from said plurality of fields; a remapper, wherein said remapper comprises a type-of-service unit, said type-of-service unit is a type-of-service transformer, and said type-of-service transformer is configured to generate said priority identifier based on a type-of-service of said packet, said parser is coupled to provide said extracted plurality of fields to said type-of-service transformer, and said index is based on said extracted plurality of fields; and a table, wherein said type-of-service transformer is coupled to provide said index to said table, said table is coupled to provide an internal identifier to said type-of-service transformer, in response to receiving said index from said type-of-service unit, and said type-of-service transformer is configured to generate said priority identifier using said internal identifier. - View Dependent Claims (77, 78, 79, 80, 81, 82, 83, 84, 85)
-
-
86. A method comprising:
-
receiving a packet, wherein said packet comprises a plurality of fields; parsing said plurality of fields into an extracted plurality of fields; generating a priority identifier, wherein said priority identifier is based on said extracted plurality of fields; extracting an autonomous system identifier from said extracted plurality of fields; converting said autonomous system identifier into a label; extracting a type-of-service identifier from said extracted plurality of fields, wherein said type-of-service identifier identifies said type-of-service; and forming an internal identifier by transforming said extracted plurality of fields, wherein said internal identifier is based at least in part on a type-of-service of said packet, and said transforming uses said priority identifier. - View Dependent Claims (87, 88, 89)
-
-
90. A computer system comprising:
-
input circuitry configured to receive a plurality of input flows, wherein said input flows each comprise a plurality of packets, and said packets each comprise a plurality of fields; a plurality of output queues; and a controller coupled to said input circuitry and said plurality of output queues, wherein said controller is configured to receiving a packet, wherein said packet comprises a plurality of fields, parse said plurality of fields into an extracted plurality of fields, generate a priority identifier, wherein said priority identifier is based on said extracted plurality of fields, extract an autonomous system identifier from said extracted plurality of fields, convert said autonomous system identifier into a label, extract a type-of-service identifier from said extracted plurality of fields, wherein said type-of-service identifier identifies said type-of-service, and form an internal identifier by transforming said extracted plurality of fields, wherein said internal identifier is based at least in part on a type-of-service of said packet, and said transforming uses said priority identifier. - View Dependent Claims (91, 92, 93, 94, 95)
-
-
96. A computer program product comprising:
-
a plurality of instructions, comprising a first set of instructions, executable on a computer system, configured to receive a packet, wherein said packet comprises a plurality of fields, a second set of instructions, executable on said computer system, configured to parse said plurality of fields into an extracted plurality of fields, a third set of instructions, executable on said computer system, configured to generate a priority identifier, wherein said priority identifier is based on said extracted plurality of fields, a fourth set of instructions, executable on said computer system, configured to form an internal identifier, wherein said fourth set of instructions comprise a first subset of instructions, executable on said computer system, configured to transform said extracted plurality of fields, a second subset of instructions, executable on said computer system, configured to extract an autonomous system identifier from said extracted plurality of fields, a third subset of instructions, executable on said computer system, configured to convert said autonomous system identifier into a label, and a fourth subset of instructions, executable on said computer system, configured to extract a type-of-service identifier from said extracted plurality of fields, wherein
said type-of-service identifier identifies said type-of-service,said internal identifier is based at least in part on a type-of-service of said packet, and said first subset of instructions use said priority identifier; and computer readable storage media, wherein said instructions are encoded in said computer readable storage media. - View Dependent Claims (97, 98, 99)
-
-
100. An apparatus comprising:
-
means for receiving a packet, wherein said packet comprises a plurality of fields; means for parsing said plurality of fields into an extracted plurality of fields; means for generating a priority identifier, wherein said priority identifier is based on said extracted plurality of fields; means for extracting an autonomous system identifier from said extracted plurality of fields; means for converting said autonomous system identifier into a label; means for extracting a type-of-service identifier from said extracted plurality of fields, wherein said type-of-service identifier identifies said type-of-service; and means for forming an internal identifier, wherein said means for forming comprises means for transforming said extracted plurality of fields, said internal identifier is based at least in part on a type-of-service of said packet, and said means for transforming is configured to use said priority identifier. - View Dependent Claims (101, 102, 103)
-
Specification