1460743911-59a11513-336f-4467-be68-3b0f4db1d312

1. A method for an intermediate network node to efficiently forward data packets, the method comprising:
organizing packet-forwarding operations performed within the intermediate network node according to a directed forwarding graph, the directed forwarding graph containing a plurality of interconnected graph nodes, each graph node being associated with a corresponding set of packet-forwarding operations;
receiving two or more data packets at the intermediate network node;
loading into a cache memory a set of forwarding instructions that implement the set of packet-forwarding operations corresponding to a first graph node in the directed forwarding graph;
arranging the received two or more data packets in a vector;
processing the two or more data packets in the vector by repeatedly executing the set of forwarding instructions loaded in the cache memory that implement the set of packet-forwarding operations corresponding to the first graph node in the directed forwarding graph; and
loading into the cache memory a set of forwarding instructions that implement the set of packet-forwarding operations corresponding to a subsequent graph node,
wherein each set of forwarding instructions is loaded into the cache memory on a per vector basis.
2. The method of claim 1, further comprising:
assigning each processed data packet in the vector to an appropriate output vector; and
transferring each output vector to the subsequent graph node in the directed forwarding graph.
3. The method of claim 1, further comprising:
adaptively controlling the rate at which data packets are processed through the directed forwarding graph so that the average latency through the forwarding graph is less than or equal to a predetermined target latency.
4. The method of claim 3, wherein the predetermined target latency is 50 microseconds (\u03bcs).
5. The method of claim 3, wherein the step of adaptively controlling further comprises:
measuring statistics associated with the directed forwarding graph; and
adaptively controlling the rate at which data packets are processed through the directed forwarding graph based on the measured forwarding-graph statistics.
6. The method of claim 5, wherein the step of measuring further comprises:
identifying a range of time intervals over which meaningful statistics can be obtained; and
selecting a time interval over which to collect the measured statistics, the selected time interval being within the identified range of time intervals.
7. The method of claim 5, further comprising:
updating the measured statistics.
8. The method of claim 7, wherein the measured statistics are updated periodically.
9. The method of claim 3, wherein the step of adaptively controlling further comprises:
selecting respective node-timer intervals for one or more of the graph nodes in the directed forwarding graph, each selected node-timer interval specifying a maximum amount of time that a partially-filled vector is allowed to reside at its associated graph node.
10. The method of claim 3, wherein the step of adaptively controlling further comprises:
selecting a vector size defining a maximum number of data packets that is permitted to be stored in vectors exchanged between graph nodes in the directed forwarding graph.
11. The method of claim 10, wherein the step of selecting a vector size further comprises:
calculating the vector size (\u201cN\u201d) based on a measured rate (\u201cR\u201d) at which data packets are input to the directed forwarding graph, a measured average time (\u201cT\u201d) required to process a packet through the directed forwarding graph, and the predetermined target latency, such that:
N
=
TARGET
\u2062
\u2062
LATENCY
(

1
R

)

+
T
.
12. The method of claim 10, wherein the selected vector size is less than or equal to a predetermined maximum vector size.
13. The method of claim 10, wherein different vector sizes are selected for at least some of the graph nodes in the directed forwarding graph.
14. The method of claim 1, further comprising:
associating a set of auxiliary (\u201cAUX\u201d) data with the vector, the AUX data storing packet-related information associated with at least one of the data packets in the vector.
15. The method of claim 14, wherein the step of associating a set of AUX data with the vector further comprises:
storing the AUX data in a second vector to be exchanged between graph nodes in the directed forwarding graph.
16. An intermediate network node, comprising:
a processor;
a network interface to receive two or more data packets; and
a memory configured to store the two or more data packets received at the network interface and further configured to store instructions for execution by the processor, at least a portion of the instructions for performing the steps of:
organizing packet-forwarding operations performed within the intermediate network node according to a directed forwarding graph, the directed forwarding graph containing a plurality of interconnected graph nodes, each graph node being associated with a corresponding set of packet-forwarding operations;
loading into a cache a set of forwarding instructions that implement the set of packet-forwarding operations corresponding to a first graph node in the directed forwarding graph;
arranging the two or more data packets in a vector; and
processing each of the two or more data packets in the vector using the set of forwarding instructions loaded in the cache that implement the set of packet-forwarding operations corresponding to the first graph node in the directed forwarding graph;
loading into the cache a set of forwarding instructions that implement the set of packet-forwarding operations corresponding to a subsequent graph node,
wherein each set of forwarding instructions is loaded into the cache memory on a per vector basis.
17. The intermediate network node of claim 16, wherein the memory further comprises instructions for performing the steps of:
assigning each processed data packet in the vector to an appropriate output vector; and
transferring each output vector to the subsequent graph node in the directed forwarding graph.
18. The intermediate network node of claim 16, wherein the memory further comprises instructions for performing the step of:
adaptively controlling the rate at which data packets are processed through the directed forwarding graph so that the average latency through the forwarding graph is less than or equal to a predetermined target latency.
19. The intermediate network node of claim 18, wherein the instructions for adaptively controlling further comprise instructions for performing the step of:
selecting respective node-timer intervals for one or more of the graph nodes in the directed forwarding graph, each selected node-timer interval specifying a maximum amount of time that a partially-filled vector may reside at its associated graph node.
20. The intermediate network node of claim 18, wherein the instructions for adaptively controlling further comprise instructions for performing the step of:
selecting a vector size defining a maximum number of data packets that is permitted to be stored in vectors exchanged between graph nodes in the directed forwarding graph.
21. The intermediate network node of claim 16, wherein the memory further comprises instructions for performing the step of:
associating a set of auxiliary (\u201cAUX\u201d) data with the vector, the AUX data storing packet-related information associated with at least one of the data packets in the vector.
22. An intermediate network node, comprising:
means for organizing packet-forwarding operations performed within the intermediate network node according to a directed forwarding graph, the directed forwarding graph containing a plurality of interconnected graph nodes, each graph node being associated with a corresponding set of packet-forwarding operations;
means for receiving two or more data packets at the intermediate network node;
means for loading into a cache memory a set of forwarding instructions that implement the set of packet-forwarding operations corresponding to a first graph node in the directed forwarding graph;
means for arranging the received two or more data packets in a vector; and
means for processing the two or more data packets in the vector by repeatedly executing the set of forwarding instructions loaded in the cache memory that implement the set of packet-forwarding operations corresponding to the first graph node in the directed forwarding graph; and
means for loading into the cache memory a set of forwarding instructions that implement the set of packet-forwarding operations corresponding to a subsequent graph node, wherein each set of forwarding instructions is loaded into the cache memory on a per vector basis.
23. The intermediate network node of claim 22, further comprising:
means for assigning each processed data packet in the vector to an appropriate output vector; and
means for transferring each output vector to the subsequent graph node in the directed forwarding graph.
24. The intermediate network node of claim 22, further comprising:
means for adaptively controlling the rate at which data packets are processed through the directed forwarding graph so that the average latency through the forwarding graph is less than or equal to a predetermined target latency.
25. The intermediate network node of claim 24, wherein the means for adaptively controlling further comprises:
means for selecting respective node-timer intervals for one or more of the graph nodes in the directed forwarding graph, each selected node-timer interval specifying a maximum amount of time that a partially-filled vector may reside at its associated graph node.
26. The intermediate network node of claim 24, wherein the means for adaptively controlling further comprises:
means for selecting a vector size defining a maximum number of data packets that is permitted to be stored in vectors exchanged between graph nodes in the directed forwarding graph.
27. The intermediate network node of claim 22, further comprising:
means for associating a set of auxiliary (\u201cAUX\u201d) data with the vector, the AUX data storing packet-related information associated with at least one of the data packets in the vector.
28. A non-transitory computer-readable media including instructions for execution by a processor, the instructions for a method of efficiently forwarding data packets at an intermediate network node, the method comprising the steps:
organizing packet-forwarding operations performed within the intermediate network node according to a directed forwarding graph, the directed forwarding graph containing a plurality of interconnected graph nodes, each graph node being associated with a corresponding set of packet-forwarding operations;
receiving two or more data packets at the intermediate network node;
loading into a cache memory a set of forwarding instructions that implement the set of packet-forwarding operations corresponding to a first graph node in the directed forwarding graph;
arranging the received two or more data packets in a vector;
processing two or more data packets in the vector by repeatedly executing the set of forwarding instructions loaded in the cache memory that implement the set of packet-forwarding operations corresponding to the first graph node in the directed forwarding graph; and
loading into the cache memory a set of forwarding instructions that implement the set of packet-forwarding operations corresponding to a subsequent graph node,
wherein each set of forwarding instructions is loaded into the cache memory on a per vector basis.
29. The non-transitory computer-readable media of claim 28, wherein the method further comprises:
assigning each processed data packet in the vector to an appropriate output vector; and
transferring each output vector to the subsequent graph node in the directed forwarding graph.
30. The non-transitory computer-readable media of claim 28, wherein the method further comprises:
adaptively controlling the rate at which data packets are processed through the directed forwarding graph so that the average latency through the forwarding graph is less than or equal to a predetermined target latency.
31. The non-transitory computer-readable media of claim 30, wherein the step of adaptively controlling further comprises:
selecting respective node-timer intervals for one or more of the graph nodes in the directed forwarding graph, each selected node-timer interval specifying a maximum amount of time that a partially-filled vector may reside at its associated graph node.
32. The non-transitory computer-readable media of claim 30, wherein the step of adaptively controlling further comprises:
selecting a vector size defining a maximum number of data packets that is permitted to be stored in vectors exchanged between graph nodes in the directed forwarding graph.
33. The non-transitory computer-readable media of claim 28, wherein the method further comprises:
associating a set of auxiliary (\u201cAUX\u201d) data with the vector, the AUX data storing packet-related information associated with at least one of the data packets in the vector.
34. A method comprising:
organizing packet-forwarding operations performed by a forwarding engine within an intermediate node according to a directed forwarding graph, the directed forwarding graph having a plurality of graph nodes that each correspond to one or more packet-forwarding operations and having a plurality of edges that interconnect selected ones of the graph nodes to indicate a direction for progressing from one graph node to another graph node;
receiving a plurality of data packets at the intermediate network node;
adding the plurality of data packets to a vector;
loading into a cache memory a set of forwarding instructions that implement the set of packet-forwarding operations corresponding to a first graph node in the directed forwarding graph;
processing the data packets of the vector concurrently in accordance with the set of forwarding instructions in the cache that implement the packet-forwarding operations corresponding to the first graph node of the directed forwarding graph; and
dispatching an output vector containing processed data packets to be operated on by a set of forwarding instructions that implement the packet-forwarding operations corresponding to a second graph node of the directed forwarding graph.
35. The method of claim 34, wherein the processing the data packets of the vector concurrently is performed by one or more vector processors that perform the set of forwarding instructions that implement the packet-forwarding operations corresponding to the first graph node of the directed forwarding graph.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A self diagnostic apparatus of a vehicle information display system for a vehicle for displaying vehicle information based on signals from said vehicle, comprising:
a self diagnosis switch for instructing a self diagnosis of said vehicle information display system;
first judging means for judging whether or not said self diagnosis switch is turned on;
second judging means for judging whether or not said vehicle information display system inputs a signal to display said vehicle information from said vehicle; and
self diagnosis means for performing a self diagnosis of said vehicle information display system in case where it is judged by said first judging means that said self diagnosis switch is turned on and in case where it is judged by said second judging means that said vehicle information display system does not input said signal to display said vehicle information.
2. The self diagnostic apparatus according to claim 1, wherein said vehicle information display system has a plurality of information display means for displaying vehicle information and a first selection switch for selecting information displaying means to be self-diagnosed out of said plurality of said information display means and said self diagnosis means perform said self diagnosis of said information display means selected by said selection switch.
3. The self diagnostic apparatus according to claim 1, wherein said vehicle information display system has lighting means for lighting said information display means and a second selection switch for selecting said lighting means to be self-diagnosed and said self diagnosis means perform said self diagnosis of said lighting means in case where said lighting means are selected by said second selection switch.
4. The self diagnostic apparatus according to claim 2, wherein said first selection switch is a trip switch and said information display means are selected based on the number of times of switching of said trip switch.
5. The self diagnostic apparatus according to claim 2, wherein said first selection switch is a trip switch and said lighting means are selected based on the number of times of switching of said trip switch.
6. The self diagnostic apparatus according to claim 3, wherein said second selection switch is a trip switch and said information display means are selected based on the number of times of switching of said trip switch.
7. The self diagnostic apparatus according to claim 3, wherein said second selection switch is a trip switch and said lighting means are selected based on the number of times of switching of said trip switch.