Enhancement of end-to-end network QoS
First Claim
1. A network endpoint system for receiving and sending network data of varying priority on behalf of a data consumer operating at the application layer of a network protocol stack implemented by said network endpoint system, comprising:
- a network interface controller operable to receive network frames containing inbound network data;
plural network data handling channels each having an associated priority;
priority processing logic operable to transfer said inbound network data from said network interface controller to said plural data handling channels on a prioritized basis according to said network data priority;
said data consumer also acting as a network data source and said priority processing logic being further operable to transfer outbound network data from said plural data handling channels to said network interface controller on a prioritized basis according to said network data priority;
said network interface controller being operable to send on a prioritized basis network frames containing said prioritized outbound network data;
said plural network data handling channels comprising plural ring buffers containing buffer descriptors corresponding to said inbound and outbound network data;
said plural ring buffers including plural receive ring buffers for said buffer descriptors corresponding to said inbound network data and plural transmit ring buffers for said buffer descriptors corresponding to said outbound network data;
said priority processing logic being implemented by priority mapping logic in said network interface controller operable to inspect said network frames and deliver said buffer descriptors corresponding to said inbound network data to said plural receive ring buffers on a prioritized basis according to said network data priority;
said priority processing logic being further implemented by ring buffer selection logic in a network interface controller device driver in said system operable to process said buffer descriptors in said plural receive ring buffers on a prioritized basis according to said network data priority; and
said priority processing logic being further implemented by said priority mapping logic in said network interface controller being operable to process said buffer descriptors corresponding to said outbound network data that are in said plural transmit ring buffers on a prioritized basis according to said network data priority.
1 Assignment
0 Petitions
Accused Products
Abstract
A network endpoint system and related method and computer program product for use in a network to support enhanced end-to-end QoS in the network. The network endpoint system is adapted to receive network data of varying priority on behalf of a data consumer operating at the application layer of a network protocol stack implemented by the network endpoint system. The network endpoint system includes a network interface controller adapted to receive network frames containing the network data, plural network data handling channels each having an associated priority, and priority processing logic adapted to transfer the network data from the network interface controller to the plural data handling channels on a prioritized basis according to the network data priority. Also disclosed are a network interface controller and a network node to support enhanced end-to-end QoS in a network.
33 Citations
9 Claims
-
1. A network endpoint system for receiving and sending network data of varying priority on behalf of a data consumer operating at the application layer of a network protocol stack implemented by said network endpoint system, comprising:
-
a network interface controller operable to receive network frames containing inbound network data; plural network data handling channels each having an associated priority; priority processing logic operable to transfer said inbound network data from said network interface controller to said plural data handling channels on a prioritized basis according to said network data priority; said data consumer also acting as a network data source and said priority processing logic being further operable to transfer outbound network data from said plural data handling channels to said network interface controller on a prioritized basis according to said network data priority; said network interface controller being operable to send on a prioritized basis network frames containing said prioritized outbound network data; said plural network data handling channels comprising plural ring buffers containing buffer descriptors corresponding to said inbound and outbound network data; said plural ring buffers including plural receive ring buffers for said buffer descriptors corresponding to said inbound network data and plural transmit ring buffers for said buffer descriptors corresponding to said outbound network data; said priority processing logic being implemented by priority mapping logic in said network interface controller operable to inspect said network frames and deliver said buffer descriptors corresponding to said inbound network data to said plural receive ring buffers on a prioritized basis according to said network data priority; said priority processing logic being further implemented by ring buffer selection logic in a network interface controller device driver in said system operable to process said buffer descriptors in said plural receive ring buffers on a prioritized basis according to said network data priority; and said priority processing logic being further implemented by said priority mapping logic in said network interface controller being operable to process said buffer descriptors corresponding to said outbound network data that are in said plural transmit ring buffers on a prioritized basis according to said network data priority. - View Dependent Claims (2)
-
-
3. A network endpoint system for receiving and sending network data of varying priority on behalf of a data consumer operating at the application layer of a network protocol stack implemented by said network endpoint system, comprising:
-
a network interface controller operable to receive network frames containing inbound network data; plural network data handling channels each having an associated priority; priority processing logic operable to transfer said inbound network data from said network interface controller to said plural data handling channels on a prioritized basis according to said network data priority; said data consumer also acting as a network data source and said priority processing logic being further operable to transfer outbound network data from said plural data handling channels to said network interface controller on a prioritized basis according to said network data priority; said network interface controller being operable to send on a prioritized basis network frames containing said prioritized outbound network data; said plural network data handling channels comprising plural comprise plural ring buffers containing buffer descriptors corresponding to said inbound and outbound network data; said plural ring buffers including plural receive ring buffers for said buffer descriptors corresponding to said inbound network data and plural transmit ring buffers for said buffer descriptors corresponding to said outbound network data; said plural network data handling channels further comprising plural kernel protocol stack channels operable to process buffer descriptors corresponding to said inbound and outbound network data; said priority processing logic being implemented by priority mapping logic in said network interface controller operable to inspect said received network frames and deliver said buffer descriptors corresponding to said inbound network data to said plural receive ring buffers on a prioritized basis according to said network data priority; said priority processing logic being further implemented by ring buffer selection logic in a network interface controller device driver in said system operable to process said buffer descriptors in said plural receive ring buffers on a prioritized basis according to said network data priority; said priority processing logic being further implemented by channel selection logic in said network interface controller device driver operable to deliver said buffer descriptors on said plural receive ring buffers to said kernel protocol stack channels on a prioritized basis according to said network data priority; said ring buffer selection logic and said channel selection logic being further operable to deliver said buffer descriptors corresponding to said outbound network data that are in said kernel protocol stack channels to said plural transmit ring buffers on a prioritized basis according to said network data priority; and said priority mapping logic in said network interface controller being further operable to read said buffer descriptors in said plural transmit ring buffers on a prioritized basis according to said network data priority.
-
-
4. A method for receiving and sending network data of varying priority on behalf of a data consumer operating at the application layer of a network protocol stack, comprising:
-
receiving network frames containing inbound network data at a network interface controller; providing plural network data handling channels each having an associated priority; performing priority processing to transfer said inbound network data from said network interface controller to said plural network data handling channels on a prioritized basis according to said network priority; performing priority processing to transfer outbound network data from said plural network data handling channels on a prioritized basis according to said network priority; sending on a prioritized basis network frames containing said prioritized outbound network data from said network interface controller; said plural network data handling channels comprising plural ring buffers containing buffer descriptors corresponding to said inbound and outbound network data; said plural ring buffers including plural receive ring buffers for said buffer descriptors corresponding to said inbound network data and plural transmit ring buffers for said buffer descriptors corresponding to said outbound network data; said priority processing being implemented by priority mapping logic in said network interface controller operable to inspect said network frames and deliver said buffer descriptors corresponding to said inbound network data to said plural receive ring buffers on a prioritized basis according to said network data priority; said priority processing being further implemented by ring buffer selection logic in a network interface controller device driver in said system operable to process said buffer descriptors in said plural receive ring buffers on a prioritized basis according to said network data priority; and said priority processing being further implemented by said priority mapping logic in said network interface controller being operable to process said buffer descriptors corresponding to said outbound network data that are in said plural transmit ring buffers on a prioritized basis according to said network data priority. - View Dependent Claims (5)
-
-
6. A method for receiving and sending network data of varying priority on behalf of a data consumer operating at the application layer of a network protocol stack, comprising:
-
receiving network frames containing inbound network data at a network interface controller; providing plural network data handling channels each having an associated priority; performing priority processing to transfer said inbound network data from said network interface controller to said plural network data handling channels on a prioritized basis according to said network priority; performing priority processing to transfer outbound network data from said plural network data handling channels on a prioritized basis according to said network priority; sending on a prioritized basis network frames containing said prioritized outbound network data from said network interface controller; said plural network data handling channels comprising plural comprise plural ring buffers containing buffer descriptors corresponding to said inbound and outbound network data; said plural ring buffers including plural receive ring buffers for said buffer descriptors corresponding to said inbound network data and plural transmit ring buffers for said buffer descriptors corresponding to said outbound network data; said plural network data handling channels further comprising plural kernel protocol stack channels operable to process buffer descriptors corresponding to said inbound and outbound network data; said priority processing being implemented by priority mapping logic in said network interface controller operable to inspect said received network frames and deliver said buffer descriptors corresponding to said inbound network data to said plural receive ring buffers on a prioritized basis according to said network data priority; said priority processing being further implemented by ring buffer selection logic in a network interface controller device driver in said system operable to process said buffer descriptors in said plural receive ring buffers on a prioritized basis according to said network data priority; said priority processing being further implemented by channel selection logic in said network interface controller device driver operable to deliver said buffer descriptors on said plural receive ring buffers to said kernel protocol stack channels on a prioritized basis according to said network data priority; said ring buffer selection logic and said channel selection logic being further operable to deliver said buffer descriptors corresponding to said outbound network data that are in said kernel protocol stack channels to said plural transmit ring buffers on a prioritized basis according to said network data priority; and said priority mapping logic in said network interface controller being further operable to read said buffer descriptors in said plural transmit ring buffers on a prioritized basis according to said network data priority.
-
-
7. A computer program product, comprising:
-
one or more non-transitory computer useable media; means associated with said computer useable media for programming a data processing platform to receive and send network data of varying priority on behalf of a data consumer operating at the application layer of a network protocol stack, as by; receiving network frames containing inbound network data at a network interface controller; providing plural network data handling channels each having an associated priority; performing priority processing to transfer said inbound network data from said network interface controller to said plural network data handling channels on a prioritized basis according to said network priority; performing priority processing to transfer outbound network data from said plural network data handling channels on a prioritized basis according to said network priority; sending on a prioritized basis network frames containing said prioritized outbound network data from said network interface controller; said plural network data handling channels comprising plural ring buffers containing buffer descriptors corresponding to said inbound and outbound network data; said plural ring buffers including plural receive ring buffers for said buffer descriptors corresponding to said inbound network data and plural transmit ring buffers for said buffer descriptors corresponding to said outbound network data; said priority processing being implemented by priority mapping logic in said network interface controller operable to inspect said network frames and deliver said buffer descriptors corresponding to said inbound network data to said plural ring buffers on a prioritized basis according to said network data priority; said priority processing being further implemented by ring buffer selection logic in a network interface controller device driver in said system operable to process said buffer descriptors in said plural receive ring buffers on a prioritized basis according to said network data priority; and said priority processing being further implemented by said priority mapping logic in said network interface controller being operable to process said buffer descriptors corresponding to said outbound network data that are in said plural transmit ring buffers on a prioritized basis according to said network data priority. - View Dependent Claims (8)
-
-
9. A computer program product, comprising:
-
one or more non-transitory computer useable media; means associated with said computer useable media for programming a data processing platform to receive and send network data of varying priority on behalf of a data consumer operating at the application layer of a network protocol stack, as by; receiving network frames containing inbound network data at a network interface controller; providing plural network data handling channels each having an associated priority; performing priority processing to transfer said inbound network data from said network interface controller to said plural network data handling channels on a prioritized basis according to said network priority; performing priority processing to transfer outbound network data from said plural network data handling channels on a prioritized basis according to said network priority; sending on a prioritized basis network frames containing said prioritized outbound network data from said network interface controller; said plural network data handling channels comprising plural ring buffers containing buffer descriptors corresponding to said inbound and outbound network data; said plural ring buffers including plural receive ring buffers for said buffer descriptors corresponding to said inbound network data and plural transmit ring buffers for said buffer descriptors corresponding to said outbound network data; said plural network data handling channels further comprising plural kernel protocol stack channels operable to process buffer descriptors corresponding to said inbound and outbound network data; said priority processing being implemented by priority mapping logic in said network interface controller operable to inspect said received network frames and deliver said buffer descriptors corresponding to said inbound network data to said plural receive ring buffers on a prioritized basis according to said network data priority; said priority processing being further implemented by ring buffer selection logic in a network interface controller device driver in said system operable to process said buffer descriptors in said plural receive ring buffers on a prioritized basis according to said network data priority; said priority processing being further implemented by channel selection logic in said network interface controller device driver operable to deliver said buffer descriptors on said plural receive ring buffers to said kernel protocol stack channels on a prioritized basis according to said network data priority; said ring buffer selection logic and said channel selection logic being further operable to deliver said buffer descriptors corresponding to said outbound network data that are in said kernel protocol stack channels to said plural transmit ring buffers on a prioritized basis according to said network data priority; and said priority mapping logic in said network interface controller being further operable to read said buffer descriptors in said plural transmit ring buffers on a prioritized basis according to said network data priority.
-
Specification