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