Hi,

Just wanted to bring this up to archive the issue for consideration
later and as a cautionary note to those dealing with ARP using
OpenFlow.  The specific issue pertains to clarity and consistency of
the OpenFlow specs.

In OpenFlow (up till v1.1), we allow IP addresses in ARP to be match
using ofp_match's nw_src and nw_dst.  This is very useful for working
with ARP in an actual network. However, the corresponding rewrite
action (i.e., set_nw_src and set_nw_dst) does not work with ARP, since
ARP is not an IP packet with the addresses located in the payload.
This creates an inconsistency from the view of the programmer:

E.g., I wanted to match on a certain IP address and rewrite it to
another.  Naively, I would send a flow_mod with
 (if nw_dst == A, then rewrite_nw_dst to B).
The flow will match fine, but no rewrite action would be done.
However, the same semantics will work perfectly for all IP packets.
This inconsistency extends to the Ethernet addresses in the ARP
packets too, because the hardware addresses in the ARP payload will
not be updated.

While "non-detrimental", this behavior might catch people by surprise,
so I hope those who work on the next iteration of the spec can look
into how the situation can be improved (if applicable).

FYI.

Regards
KK
_______________________________________________
openflow-discuss mailing list
openflow-discuss@lists.stanford.edu
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Reply via email to