IP Library Granted Patent US 11,784,926
Granted Patent B2
US 11,784,926 · App. 17/532,254 · Granted Oct 10, 2023

Optimized processing of multicast data messages in a host

Inventors: Senthilkumar Karunakaran (Santa Clara, CA); Subin Cyriac Mathew (San Jose, CA); Chidambareswaran Raman (Sunnyvale, CA)
Assignee: VMWARE, INC.
H04L45/58H04L12/18H04L45/16
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 11,784,926
App. No.
17/532,254
Granted
Oct 10, 2023
Kind
B2
Abstract

Some embodiments provide a method for forwarding multicast data messages at a forwarding element on a host computer. The method receives a multicast data message from a routing element executing on the host computer along with metadata appended to the multicast data message by the routing element. Based on a destination address of the multicast data message, the method identifies a set of recipient ports for a multicast group with which the multicast data message is associated. For each recipient port, the method uses the metadata appended to the multicast data message by the routing element to determine whether to deliver a copy of the multicast data message to the recipient port.

Claims (49)

1. A method for forwarding multicast data messages, the method comprising:

at a forwarding element on a host computer:

receiving a multicast data message from a routing element executing on the host computer along with metadata appended to the multicast data message by the routing element, wherein a source of the multicast data message is attached to a particular logical switch;

based on a destination address of the multicast data message, identifying a set of recipient ports for a multicast group with which the multicast data message is associated; and

for each recipient port, using the metadata appended to the multicast data message by the routing element to determine whether to deliver a copy of the multicast data message to the recipient port, wherein the metadata specifies (i) a first logical router to which the particular logical switch is directly attached, (ii) a top-level second logical router to which the first logical router is attached, and (iii) whether the multicast data message is for delivery to ports associated with the first logical router or for delivery to ports associated with additional logical routers that attach to the top-level second logical router.

2. The method of claim 1 , wherein:

the forwarding element is a software switch executing on the host computer;

the routing element is a software router also executing on the host computer; and

the routing element is connected to a port of the software switch.

3. The method of claim 2 , wherein:

passing data messages between the software router and the software switch uses host computer resources; and

use of the metadata reduces a number of copies of multicast data messages made by the software router in order to reduce number of copies of multicast data messages passed between the software router and the software switch.

4. The method of claim 1 , wherein at least a subset of the recipient ports correspond to data compute nodes (DCNs) executing on the host computer.

5. The method of claim 1 further comprising, prior to receiving the multicast data message from the routing element:

receiving the multicast data message from one of (i) a data compute node connected to the forwarding element and (ii) a tunnel endpoint of the host computer;

based on the destination address of the multicast data message, identifying the set of recipient ports for the multicast group; and

delivering copies of the multicast data message to recipient ports connected to a same logical switch as a source of the multicast data message.

6. The method of claim 5 further comprising sending the multicast data message to the routing element, wherein a port between the forwarding element and the routing element belongs to the set of recipient ports.

7. The method of claim 5 , wherein delivering copies of the multicast data message to recipient ports connected to the same logical switch as the source of the multicast data message comprises comparing a logical switch identifier appended to the multicast data message to logical switch identifiers associated with each port in the set of recipient ports.

8. The method of claim 5 further comprising encapsulating a copy of the multicast data message and sending the encapsulated copy to a different host computer.

9. The method of claim 1 , wherein:

the first logical router and the additional logical routers are logical routers of a first type that do not connect directly to external networks or to each other; and

the top-level second logical router is a logical router of a second type that enables connection to external networks and connections between first-type logical routers.

10. The method of claim 1 , wherein:

the multicast data message is a first data message; and

when the first multicast data message includes recipient ports associated with logical routers other than the first logical router, the routing element sends to the forwarding element (i) the first multicast data message with an indicator specifying that the first multicast data message is for delivery to ports associated with the first logical router and (ii) a second multicast data message, that is a copy of the first multicast data message, with an indicator specifying that the second multicast data message is for delivery to ports associated with logical routers other than the first logical router.

11. The method of claim 10 , wherein a time to live (TTL) field of the first multicast data message is decremented by one and a TTL field of the second multicast data message is decremented by two.

12. The method of claim 1 , wherein the metadata comprises (i) a 15-bit identifier for the first logical router, (ii) a 15-bit identifier for the second logical router, and (iii) a 1-bit flag indicating whether the multicast data message is for delivery to ports associated with the first logical router or for delivery to ports associated with additional logical routers that attach to the top-level second logical router.

13. The method of claim 1 further comprising, when the metadata specifies that the multicast data message is for delivery to ports associated with the first logical router, delivering copies of the multicast data message to any recipient ports in the set of recipient ports that are associated with the first logical router but are not attached to the particular logical switch.

14. The method of claim 1 further comprising, when the metadata specifies that the multicast data message is for delivery to ports associated with additional logical routers that attach to the top-level second logical router, delivering copies of the multicast data message to any recipient ports in the set of recipient ports that are associated with logical routers that attach to the top-level second logical router but are not associated with the first logical router.

15. A non-transitory machine readable medium storing a forwarding element which when executed by at least one processing unit of a host computer forwards multicast data messages, the forwarding element comprising sets of instructions for:

receiving a multicast data message from a routing element executing on the host computer along with metadata appended to the multicast data message by the routing element, wherein a source of the multicast data message is attached to a particular logical switch;

based on a destination address of the multicast data message, identifying a set of recipient ports for a multicast group with which the multicast data message is associated; and

for each recipient port, using the metadata appended to the multicast data message by the routing element to determine whether to deliver a copy of the multicast data message to the recipient port, wherein the metadata specifies (i) a first logical router to which the particular logical switch is directly attached, (ii) a top-level second logical router to which the first logical router is attached, and (iii) whether the multicast data message is for delivery to ports associated with the first logical router or for delivery to ports associated with additional logical routers that attach to the top-level second logical router.

16. The non-transitory machine readable medium of claim 15 , wherein the forwarding element further comprises sets of instructions for, prior to receiving the multicast data message from the routing element:

receiving the multicast data message from one of (i) a data compute node connected to the forwarding element and (ii) a tunnel endpoint of the host computer;

based on the destination address of the multicast data message, identifying the set of recipient ports for the multicast group; and

delivering copies of the multicast data message to recipient ports connected to a same logical switch as a source of the multicast data message.

17. The non-transitory machine readable medium of claim 16 , wherein the set of instructions for delivering copies of the multicast data message to recipient ports connected to the same logical switch as the source of the multicast data message comprises a set of instructions for comparing a logical switch identifier appended to the multicast data message to logical switch identifiers associated with each port in the set of recipient ports.

18. The non-transitory machine readable medium of claim 15 , wherein:

the first logical router and the additional logical routers are logical routers of a first type that do not connect directly to external networks or to each other; and

the top-level second logical router is a logical router of a second type that enables connection to external networks and connections between first-type logical routers.

19. The non-transitory machine readable medium of claim 15 , wherein:

the multicast data message is a first data message;

when the first multicast data message includes recipient ports associated with logical routers other than the first logical router, the routing element sends to the forwarding element (i) the first multicast data message with an indicator specifying that the first multicast data message is for delivery to ports associated with the first logical router and (ii) a second multicast data message, that is a copy of the first multicast data message, with an indicator specifying that the second multicast data message is for delivery to ports associated with logical routers other than the first logical router; and

a time to live (TTL) field of the first multicast data message is decremented by one and a TTL field of the second multicast data message is decremented by two.

20. The non-transitory machine readable medium of claim 15 , wherein the metadata comprises (i) a 15-bit identifier for the first logical router, (ii) a 15-bit identifier for the second logical router, and (iii) a 1-bit flag indicating whether the multicast data message is for delivery to ports associated with the first logical router or for delivery to ports associated with additional logical routers that attach to the top-level second logical router.

21. The non-transitory machine readable medium of claim 15 , wherein the forwarding element further comprises sets of instructions for delivering copies of the multicast data message to any recipient ports in the set of recipient ports that are associated with the first logical router but are not attached to the particular logical switch when the metadata specifies that the multicast data message is for delivery to ports associated with the first logical router.

22. The non-transitory machine readable medium of claim 15 , wherein the forwarding element further comprises sets of instructions for delivering copies of the multicast data message to any recipient ports in the set of recipient ports that are associated with logical routers that attach to the top-level second logical router but are not associated with the first logical router when the metadata specifies that the multicast data message is for delivery to ports associated with additional logical routers that attach to the top-level second logical router.

Assignments (3)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2022
From: KARUNAKARAN, SENTHILKUMAR; MATHEW, SUBIN CYRIAC; RAMAN, CHIDAMBARESWARAN
To: VMWARE, INC.
Reel/Frame 060127/0529 →