Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support multicast routing #7338

Open
nhurley3 opened this issue Mar 29, 2022 · 1 comment
Open

Support multicast routing #7338

nhurley3 opened this issue Mar 29, 2022 · 1 comment
Labels
area: networking Issue related to networking type: enhancement New feature or request

Comments

@nhurley3
Copy link
Contributor

Description

Support for multicast routing is needed for Fuchsia (see https://fxbug.dev/96216). The Fuchsia side protocols can be found here:

https://osscs.corp.google.com/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.net.multicast.admin/?q=multicast&ss=fuchsia

Support for similar methods needs to be added to gVisor. A multicast routing service will respond to events and interact with the protocol to manipulate the multicast routing table.

Is this feature related to a specific bug?

No response

Do you have a specific solution in mind?

No response

@nhurley3 nhurley3 added the type: enhancement New feature or request label Mar 29, 2022
copybara-service bot pushed a commit that referenced this issue Mar 31, 2022
The go routine to expire pending packets will be added
in a separate CL.

Updates #7338.

PiperOrigin-RevId: 438643808
copybara-service bot pushed a commit that referenced this issue Apr 4, 2022
Setting this newly added option to "true" will currently be a no-op. Full
support for multicast routing will be added in subsequent CLs.

Updates #7338.

PiperOrigin-RevId: 436755421
copybara-service bot pushed a commit that referenced this issue Apr 4, 2022
Setting this newly added option to "true" will currently be a no-op. Full
support for multicast routing will be added in subsequent CLs.

Updates #7338.

PiperOrigin-RevId: 439356271
copybara-service bot pushed a commit that referenced this issue Apr 6, 2022
In particular, this change adds support for AddInstalledRoute,
RemoveInstalledRoute, and GetLastUsedTimestamp.

Updates #7338.

PiperOrigin-RevId: 439849292
copybara-service bot pushed a commit that referenced this issue Apr 7, 2022
Updates #7338.

PiperOrigin-RevId: 440197986
copybara-service bot pushed a commit that referenced this issue Apr 7, 2022
This change does not yet use the interface. It will later be added to
ipv4.Options and ipv6.Options (when needed).

Additionally, note that the UnicastSourceAndMulticastDestination type will
eventually be used as part of a separate interface to add a route, delete a
route, etc.

Updates #7338.

PiperOrigin-RevId: 440210891
copybara-service bot pushed a commit that referenced this issue Apr 19, 2022
The purpose of this change is to:

- Introduce the needed abstractions for the table.
- Implement support for queuing pending packets.

Subsequent changes will:

- Implement the other needed table operations (i.e. AddInstalledRoute,
 RemoveInstalledRoute, and GetLastUsedTimestamp).
- Implement the logic for expiring pending packets.

Updates #7338.

PiperOrigin-RevId: 442828835
copybara-service bot pushed a commit that referenced this issue Apr 21, 2022
…ng table.

Subsequent changes will implement AddMulticastRoute for IPv4 and IPv6.
Similarly, DelRoute and GetRouteStats will be added later.

Updates #7338.

PiperOrigin-RevId: 443394216
copybara-service bot pushed a commit that referenced this issue Apr 27, 2022
The purpose of this change is twofold:

1. Simplify AddInstalledRoute by returning a PacketBuffer slice instead of a
PendingRoute. This obviates PendingRoute.Dequeue and PendingRoute.IsEmpty.
2. Address PacketBuffer lifetime issues. With this change, the routing table
will call PacketBuffer.Clone() if it decides to enqueue the packet. When
AddInstalledRoute is called, the caller will then assume ownership of the
relevant packets and is expected to call PacketBuffer.DecRef() after
forwarding.

Updates #7338.

PiperOrigin-RevId: 444953498
copybara-service bot pushed a commit that referenced this issue Apr 28, 2022
In particular, this change adds support for AddInstalledRoute,
RemoveInstalledRoute, and GetLastUsedTimestamp.

Updates #7338.

PiperOrigin-RevId: 439849292
copybara-service bot pushed a commit that referenced this issue Apr 28, 2022
In particular, this change adds support for AddInstalledRoute,
RemoveInstalledRoute, and GetLastUsedTimestamp.

Updates #7338.

PiperOrigin-RevId: 445205505
copybara-service bot pushed a commit that referenced this issue Apr 28, 2022
Updates #7338.

PiperOrigin-RevId: 445231315
@hbhasker hbhasker added the area: networking Issue related to networking label May 2, 2022
copybara-service bot pushed a commit that referenced this issue May 2, 2022
This change implements AddMulticastRoute and the requisite routing logic.
Subsequent changes will still be needed to:

1. Emit events for missing route or unexpected input interface
2. Implement DelRoute
3. Implement GetRouteStats

Updates #7338.

PiperOrigin-RevId: 445157188
copybara-service bot pushed a commit that referenced this issue May 5, 2022
The purpose of this change is twofold:

1. Simplify AddInstalledRoute by returning a PacketBuffer slice instead of a
PendingRoute. This obviates PendingRoute.Dequeue and PendingRoute.IsEmpty.
2. Address PacketBuffer lifetime issues. With this change, the routing table
will call PacketBuffer.Clone() if it decides to enqueue the packet. When
AddInstalledRoute is called, the caller will then assume ownership of the
relevant packets and is expected to call PacketBuffer.DecRef() after
forwarding.

Updates #7338.

PiperOrigin-RevId: 446740297
copybara-service bot pushed a commit that referenced this issue May 25, 2022
This change implements AddMulticastRoute and the requisite routing logic.
Subsequent changes will still be needed to:

1. Emit events for missing route or unexpected input interface
2. Implement DelRoute
3. Implement GetRouteStats

Updates #7338.

PiperOrigin-RevId: 451026594
copybara-service bot pushed a commit that referenced this issue May 26, 2022
This change implements AddMulticastRoute and the requisite forwarding logic.
Subsequent changes will still be needed to:

1. Emit events for missing route or unexpected input interface
2. Implement DelRoute
3. Implement GetRouteStats

Updates #7338.

PiperOrigin-RevId: 451065016
copybara-service bot pushed a commit that referenced this issue May 26, 2022
Updates #7338.

PiperOrigin-RevId: 447488393
copybara-service bot pushed a commit that referenced this issue May 26, 2022
Updates #7338.

PiperOrigin-RevId: 447488393
copybara-service bot pushed a commit that referenced this issue May 26, 2022
Updates #7338.

PiperOrigin-RevId: 451162886
copybara-service bot pushed a commit that referenced this issue May 26, 2022
Updates #7338.

PiperOrigin-RevId: 451172827
copybara-service bot pushed a commit that referenced this issue May 31, 2022
Updates #7338.

PiperOrigin-RevId: 452051657
copybara-service bot pushed a commit that referenced this issue Jun 3, 2022
After this change, multicast packets will only be forwarded if
multicast forwarding is enabled on the relevant NIC AND it is
enabled for the relevant protocol (IPv4 or IPv6).

Multicast forwarding at the protocol level will be tied to the lifetime
of the IPv4/IPv6RoutingTableControllers. In particular, this change
enables us to satisfy the following requirements:

https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.net.multicast.admin/ipv4.fidl;l=20-21;drc=acd6519f50c92e30f18cc1816bd1c400759b533c

Updates #7338.

PiperOrigin-RevId: 452822818
copybara-service bot pushed a commit that referenced this issue Jun 15, 2022
After this change, multicast packets will only be forwarded if
multicast forwarding is enabled on the relevant NIC AND it is
enabled for the relevant protocol (IPv4 or IPv6).

Multicast forwarding at the protocol level will be tied to the lifetime
of the IPv4/IPv6RoutingTableControllers. In particular, this change
enables us to satisfy the following requirements:

https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.net.multicast.admin/ipv4.fidl;l=20-21;drc=acd6519f50c92e30f18cc1816bd1c400759b533c

Updates #7338.

PiperOrigin-RevId: 455155793
@github-actions
Copy link

A friendly reminder that this issue had no activity for 120 days.

@github-actions github-actions bot added the stale-issue This issue has not been updated in 120 days. label Sep 13, 2023
@manninglucas manninglucas removed the stale-issue This issue has not been updated in 120 days. label Sep 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: networking Issue related to networking type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants