IP Library Granted Patent US 7,509,657
Granted Patent B2
US 7,509,657 · App. 10/695,210 · Granted Mar 24, 2009

Application programming interface for a virtual switch

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,509,657
App. No.
10/695,210
Granted
Mar 24, 2009
Kind
B2
Abstract

An electronic system may include an application programming interface for use in conjunction with a virtual switch. In some embodiments, the electronic system may comprise a processor; a network interface controller including a hardware port, a virtual switch comprising software executed by the processor, and an application programming interface (“API”) running on the processor and usable by a application to interface with the virtual switch.

Claims (43)

1. An electronic system, comprising:

a processor;

a network interface controller including a hardware port;

a source-routed virtual switch implemented in software executed by said processor and including a plurality of software-implemented virtual ports, said virtual ports adapted to provide communication between an application running on said processor and said network interface controller; and

an application programming interface (“API”) running on said processor and usable by said application to interface with said virtual switch;

wherein said electronic system is an end node in a network;

wherein said source-routed virtual switch is adapted to receive a packet containing routing information, said routing information identifying an application in user application space that accesses said virtual switch; and

wherein said API includes code to cause said virtual switch to open a handle and to post a receive buffer on said handle.

2. The electronic system of claim 1 wherein said API includes code that permits an application to register itself with the virtual switch to permit a resource to be assigned to said application.

3. The electronic system of claim 1 wherein said API includes code that permits an application to register itself with the virtual switch to permit a unique identifier to be assigned to said application.

4. The electronic system of claim 3 wherein said unique identifier assigned to the application is different than an identifier requested for the application.

5. The electronic system of claim 1 wherein said API further includes code to deregister said application from virtual switch to release a resource that has been assigned for use by said application.

6. The electronic system of claim 1 wherein said API includes code to permit said application to transmit data through said virtual switch to another application.

7. The electronic system of claim 1 wherein said code that causes the virtual switch to open a handle and post a receive buffer also includes code to transition said handle between a first state and a second state, said first state indicating that the switch has not received data to be provided to said application and said second state indicating that the virtual switch has received data to be provided to said application.

8. The electronic system of claim 1 wherein said API also includes code for closing said handle.

9. The electronic system of claim 1 wherein said API includes code to permit the application to inform the virtual switch that the application is ready to receive data.

10. The electronic system of claim 1 wherein said API includes code to permit the application to inform the virtual switch that the application is ready to receive data.

11. A network, comprising:

a plurality of end nodes; and

at least one switch coupling the nodes together;

wherein at least one of said end nodes includes:

a processor;

a network interface controller including a hardware port;

a virtual switch implemented in software executed by said processor and including a plurality of virtual ports, said virtual ports adapted to provide communication between an application running on said processor and said network interface controller; and

an application programming interface (“API”) running on said processor and usable by said application to interface with said virtual switch;

wherein said virtual switch is adapted to receive a packet containing routing information, said routing information identifying an application in user application space that accesses said virtual switch; and

wherein said API includes code that permits an application to register itself with the virtual switch to permit a unique identifier to be assigned to said application.

12. The network of claim 11 wherein said API includes code that permits an application to register itself with the virtual switch to permit a resource to be assigned to said application.

13. The network of claim 11 wherein said API further includes code to deregister said application from virtual switch to release a resource that has been assigned for use by said application.

14. The network of claim 11 wherein said API includes code to permit said application to transmit data through said virtual switch to another application.

15. The network of claim 11 wherein said API includes code to cause said virtual switch to open a handle and to post a receive buffer on said handle.

16. The network of claim 15 wherein said code that causes the virtual switch to open a handle and post a receive also includes code to transition said handle between a first state and a second state, said first state indicates that the switch has not received data to be provided to said application and said second state indicates that the virtual switch has received data to be provided to said application.

17. The network of claim 15 wherein said API also includes code for closing said handle.

18. The network of claim 15 wherein said API includes code to permit the application to inform the virtual switch that the application is ready to receive data.

19. The network of claim 11 wherein said API includes code to permit the application to inform the virtual switch that the application is ready to receive data.

20. A computer readable storage medium storing instructions that when executed by a processor cause the processor to implement an application programming interface for a source routed, virtual switch implemented in an end node of a network, said virtual switch implemented in software on a computer, said instructions comprising:

an instruction usable to allocate a resource to an application to permit said application to access said software-implemented, source routed, virtual switch;

an instruction usable to permit said application to transmit data through said software-implemented, source routed, virtual switch;

an instruction usable to receive data provided to said application through said software-implemented, source routed virtual switch;

an instruction usable for the virtual switch to receive a packet containing routing information, said routing information identifying an application in user application space; and

an instruction usable to cause said virtual switch to open a handle and to post a receive buffer on said handle.

21. The storage medium of claim 20 further including an instruction usable to deallocate said resource upon said application ceasing using said virtual switch.

22. The storage medium of claim 20 further including an instruction usable to close said handle.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 057650/0537 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →