Dynamically adding application logic and protocol adapters to a programmable network element
First Claim
1. A data processing apparatus, comprising:
- a plurality of network interfaces that are coupled to a data network for receiving one or more packets therefrom and sending one or more packets thereto;
one or more processors;
a switching system coupled to the one or more processors and packet forwarding logic, wherein the switching system and packet forwarding logic are configured to receive packets on a first network interface, determine a second network interface on which to send the packets, and to send the packets on the second network interface;
a computer-readable storage medium having an application program stored thereon;
program extensibility logic which when executed by the one or more processors is operable to cause;
receiving one or more user program extensions, wherein the user program extensions comprise logic operable to interface with the application program and perform any of message processing functions and protocol processing functions that are not in the application program;
installing the one or more user program extensions without restarting the apparatus;
receiving one or more packets representing an application message;
selecting a particular one of the user program extensions based on a protocol associated with the message;
loading the particular one of the user program extensions;
executing business logic of the application program associated with the received message;
invoking a function of the particular one of the user program extensions in response to a call in the business logic.
1 Assignment
0 Petitions
Accused Products
Abstract
Custom or user-defined application program extensions may be loaded into a network infrastructure element such as a router or switch without restarting the device. For example, a network element has program extensibility logic operable for receiving one or more user program extensions that comprise logic operable to interface with the application program and perform message processing functions or protocol processing functions that are not in the application program; installing the one or more user program extensions without restarting the apparatus; receiving one or more packets representing an application message; selecting a particular one of the user program extensions based on a protocol associated with the message; loading the particular one of the user program extensions; executing business logic of the application program associated with the received message; and invoking a function of the particular one of the user program extensions in response to a call in the business logic.
40 Citations
24 Claims
-
1. A data processing apparatus, comprising:
-
a plurality of network interfaces that are coupled to a data network for receiving one or more packets therefrom and sending one or more packets thereto;
one or more processors;
a switching system coupled to the one or more processors and packet forwarding logic, wherein the switching system and packet forwarding logic are configured to receive packets on a first network interface, determine a second network interface on which to send the packets, and to send the packets on the second network interface;
a computer-readable storage medium having an application program stored thereon;
program extensibility logic which when executed by the one or more processors is operable to cause;
receiving one or more user program extensions, wherein the user program extensions comprise logic operable to interface with the application program and perform any of message processing functions and protocol processing functions that are not in the application program;
installing the one or more user program extensions without restarting the apparatus;
receiving one or more packets representing an application message;
selecting a particular one of the user program extensions based on a protocol associated with the message;
loading the particular one of the user program extensions;
executing business logic of the application program associated with the received message;
invoking a function of the particular one of the user program extensions in response to a call in the business logic. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data processing apparatus, comprising:
-
a plurality of network interfaces that are coupled to a data network for receiving one or more packets therefrom and sending one or more packets thereto;
one or more processors;
a switching system coupled to the one or more processors and packet forwarding logic, wherein the switching system and packet forwarding logic are configured to receive packets on a first network interface, determine a second network interface on which to send the packets, and to send the packets on the second network interface;
a computer-readable storage medium having an application program stored thereon;
means for receiving one or more user program extensions, wherein the user program extensions comprise logic operable to interface with the application program and perform any of message processing functions and protocol processing functions that are not in the application program;
means for installing the one or more user program extensions without restarting the apparatus;
means for receiving one or more packets representing an application message;
means for selecting a particular one of the user program extensions based on a protocol associated with the message;
means for loading the particular one of the user program extensions;
means for executing business logic of the application program associated with the received message;
means for invoking a function of the particular one of the user program extensions in response to a call in the business logic. - View Dependent Claims (10, 11, 12, 14, 15, 24)
-
-
13. The apparatus of claim 9, wherein the one or more user program extensions comprise one or more protocol handling functions, further comprising means for selecting and invoking one of the protocol handling functions from among the plurality of protocol handling functions based upon values in the application message.
-
13-1. (canceled)
-
16. A computer-implemented method, comprising:
-
receiving one or more user program extensions in a network infrastructure device that comprises an application program, wherein the user program extensions comprise logic operable to interface with the application program and perform any of message processing functions and protocol processing functions that are not in the application program;
installing the one or more user program extensions without restarting the device;
receiving one or more packets representing an application message;
selecting a particular one of the user program extensions based on a protocol associated with the message;
loading the particular one of the user program extensions;
executing business logic of the application program associated with the received message;
invoking a function of the particular one of the user program extensions in response to a call in the business logic. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A computer-readable storage medium encoded with program extensibility logic which when executed by one or more processors is operable to cause:
-
receiving one or more user program extensions, wherein the user program extensions comprise logic operable to interface with an application program of a computer system and perform any of message processing functions and protocol processing functions that are not in the application program;
installing the one or more user program extensions without restarting the computer system;
receiving one or more packets representing an application message;
selecting a particular one of the user program extensions based on a protocol associated with the message;
loading the particular one of the user program extensions;
executing business logic of the application program associated with the received message;
invoking a function of the particular one of the user program extensions in response to a call in the business logic.
-
Specification