IP Library › Granted Patent US 10,116,515
Granted Patent B2
US 10,116,515 · App. 15/169,341 · Granted Oct 30, 2018

Binding application communication ports to dynamic subsets of network interfaces

Inventor: Michael MacFaden (San Jose, CA)
Assignee: VMware, Inc.
H04L41/12H04L43/0811H04L67/10H04L69/26
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 10,116,515
App. No.
15/169,341
Granted
Oct 30, 2018
Kind
B2
Abstract

Exemplary methods, apparatuses, and systems receive a request to bind a socket for a computer application to a tag. The tag is mapped to a network address for each of a subset of interfaces. The request identifies the computer application using a port number. The subset of interfaces includes one or more interfaces within the computer and less than all interfaces within the computer. An interface within the subset of interfaces receives a protocol data unit (PDU) including the port number included in the bind request and a destination address. The received PDU is delivered via the socket in response to resolving a mapping between the tag included in the bind request and the destination address of the PDU and further based upon determining the port number included in the bind request was included in the received PDU.

Claims (55)

1. A computer-implemented method, comprising:

receiving a request from a computer application to bind a socket to a tag, wherein:

the computer contains a set of all interfaces and the tag is mapped to a network address for each of a subset of the set of all interfaces within a computer,

the request identifies the computer application using a port number, and

the subset of interfaces includes one or more interfaces within the set of all interfaces and less than all interfaces within the set of all interfaces;

storing an association between the socket and the tag to execute bind request;

receiving, at an interface within the subset of interfaces, a protocol data unit (PDU) including the port number included in the bind request and a destination address; and

delivering the received PDU via the socket in response to:

resolving a mapping between the tag included in the bind request and the destination address of the PDU, and

determining the port number included in the bind request was included in the received PDU.

2. The computer-implemented method of claim 1 , further comprising:

receiving a request to map the destination address to the tag; and

updating a data structure to map the destination address to the tag.

3. The computer-implemented method of claim 2 , wherein the destination address is mapped to the tag after receiving the request to bind the socket to the tag.

4. The computer-implemented method of claim 1 , wherein adding a network address to or removing a network address from the mapping to the tag does not trigger a need to update the binding of the socket.

5. The computer-implemented method of claim 1 , wherein adding a network address to or removing a network address from the mapping to the tag does not trigger a need to restart the computer application.

6. The computer-implemented method of claim 1 , wherein delivering the received PDU via the socket includes placing the received PDU in a buffer and alerting the computer application about the received PDU.

7. The computer-implemented method of claim 1 , wherein multiple interfaces share a common protocol stack and each of the multiple interfaces is associated with a unique tag to segregate network traffic between the plurality of interfaces.

8. A non-transitory computer-readable medium storing instructions, which when executed by a processing device, cause the processing device to perform a method comprising:

receiving a request from a computer application to bind a socket to a tag, wherein:

the computer contains a set of all interfaces and the tag is mapped to a network address for each of a subset of the set of all interfaces within a computer,

the request identifies the computer application using a port number, and

the subset of interfaces includes one or more interfaces within the set of all interfaces and less than all interfaces within the set of all interfaces;

storing an association between the socket and the tag to execute bind request;

receiving, at an interface within the subset of interfaces, a protocol data unit (PDU) including the port number included in the bind request and a destination address; and

delivering the received PDU via the socket in response to:

resolving a mapping between the tag included in the bind request and the destination address of the PDU, and

determining the port number included in the bind request was included in the received PDU.

9. The non-transitory computer-readable medium of claim 8 , the method further comprising:

receiving a request to map the destination address to the tag; and

updating a data structure to map the destination address to the tag.

10. The non-transitory computer-readable medium of claim 9 , wherein the destination address is mapped to the tag after receiving the request to bind the socket to the tag.

11. The non-transitory computer-readable medium of claim 8 , wherein adding a network address to or removing a network address from the mapping to the tag does not trigger a need to update the binding of the socket.

12. The non-transitory computer-readable medium of claim 8 , wherein adding a network address to or removing a network address from the mapping to the tag does not trigger a need to restart the computer application.

13. The non-transitory computer-readable medium of claim 8 , wherein delivering the received PDU via the socket includes placing the received PDU in a buffer and alerting the computer application about the received PDU.

14. The non-transitory computer-readable medium of claim 8 , wherein multiple interfaces share a common protocol stack and each of the multiple interfaces is associated with a unique tag to segregate network traffic between the plurality of interfaces.

15. An apparatus comprising:

a processing device; and

a memory coupled to the processing device, the memory storing instructions which, when executed by the processing device, cause the apparatus to:

receive a request from a computer application to bind a socket to a tag, wherein:

the computer contains a set of all interfaces and the tag is mapped to a network address for each of a subset of the set of all interfaces within a computer,

the request identifies the computer application using a port number, and

the subset of interfaces includes one or more interfaces within the set of all interfaces and less than all interfaces within the set of all interfaces;

storing an association between the socket and the tag to execute bind request;

receive, at an interface within the subset of interfaces, a protocol data unit (PDU) including the port number included in the bind request and a destination address; and

deliver the received PDU via the socket in response to:

resolving a mapping between the tag included in the bind request and the destination address of the PDU, and

determining the port number included in the bind request was included in the received PDU.

16. The apparatus of claim 15 , wherein the instructions further cause the apparatus to:

receive a request to map the destination address to the tag; and

update a data structure to map the destination address to the tag.

17. The apparatus of claim 16 , wherein the destination address is mapped to the tag after receiving the request to bind the socket to the tag.

18. The apparatus of claim 15 , wherein adding a network address to or removing a network address from the mapping to the tag does not trigger a need to update the binding of the socket.

19. The apparatus of claim 15 , wherein adding a network address to or removing a network address from the mapping to the tag does not trigger a need to restart the computer application.

20. The apparatus of claim 15 , wherein the receiving interface is a virtual network interface controller.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2016
From: MACFADEN, MICHAEL
To: VMWARE, INC.
Reel/Frame 038754/0446 →
Continuity (1)
Related Publication 20170346859A1 · Nov 30, 2017
Cited By (1)
US 12,457,275