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

Refactor arp_responder to use arp_helper #119

Open
wants to merge 5 commits into
base: dart
Choose a base branch
from

Conversation

nemethf
Copy link
Contributor

@nemethf nemethf commented May 26, 2014

This pull request tries to address a TODO item found in arp_helper.

Details are in the commit logs, but the functionality is not preserved 100%:

  • the meaning of the eat_packet in arp_responder has changed.
  • it won't flood non-IP or non-Ethernet ARP packets

nemethf added 5 commits May 25, 2014 06:22
the code is copied from arp_responder.py
Refactor arp_responder to make it listen to arp_help's events instead
of openflow's PacketIn.

The meaning of eat_packet has changed.  It used to mean to stop
processing PacketIn events, now it means to stop processing
arp_helper's events.

arp_responder used to flood packets even this wasn't true
  if (a.prototype == arp.PROTO_TYPE_IP)
    if a.hwtype == arp.HW_TYPE_ETHERNET:
Now it doesn't receive these packets as arp_helper filters them.
proto/arp_helper: Add 'flood' property to the events
proto/arp_responder: Use it

Event handlers cannot flood an ARP request because they do not receive
the original packet.  Adding an 'ofp' property to the events would
have been more flexible, but this approach saves the event handlers
from the trouble of dealing with the OpenFlow protocol.
@MurphyMc
Copy link
Collaborator

Thanks for working on this! I'm very busy at the moment, but will do a review when I have a chance (hopefully less than a week). I think I might suggest some minor tweaks, but I definitely think it should be merged.

I am actually hoping to roll dart over to release very soon, though, so I think this will maybe get pushed to the new dev branch. (I'm hesitant to make behavioral changes so close to rolling the branches over.)

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

Successfully merging this pull request may close these issues.

2 participants