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

Implementing IGMP protocol and multicast support #51

Closed
podhrmic opened this issue Oct 6, 2017 · 5 comments
Closed

Implementing IGMP protocol and multicast support #51

podhrmic opened this issue Oct 6, 2017 · 5 comments

Comments

@podhrmic
Copy link
Contributor

podhrmic commented Oct 6, 2017

Hello, for our application I need smoltcp to handle multicast packets (the application communicates over multicast). I am happy to do that and implement this functionality to smoltcp, but I would like to get some pointers and guidance first.

  1. IGMP protocol will have to be implemented - I would add another branch on the match expression here https://github.com/m-labs/smoltcp/blob/master/src/iface/ethernet.rs#L249
  2. Implement EthernetProtocol::IGMP with underlying logic
  3. when IGMP (and multicast) is enabled we check dst_addr() against the list of multicast MAC addresses we are subscribed to (here: https://github.com/m-labs/smoltcp/blob/master/src/iface/ethernet.rs#L244 )
  4. appropriately handle timeouts (see https://en.wikipedia.org/wiki/Internet_Group_Management_Protocol ) - not sure if we need a separate timer or we should use the time supplied to iface.poll()

Does it sound like a good approach to you?

@whitequark
Copy link
Contributor

Sounds good! I suggest working on it in small pieces and seeking review early, as I try to ensure the quality of code in smoltcp stays very high.

@whitequark
Copy link
Contributor

@podhrmic This is done, right?

@podhrmic
Copy link
Contributor Author

@whitequark there is a pending PR #236 but I got to a halt with the ManagedMap(see the comments there). I got the fragmentation working properly in my fork using ManagedSlice so it might be used for reference.

@whitequark
Copy link
Contributor

@podhrmic That PR is for fragmentation but this issue is for IGMP; I thought IGMP fully works now

@podhrmic
Copy link
Contributor Author

Yes, I believe IGMP support was added in #178

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants