Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
odp: ND: Follow Open Flow spec converting from OF to DP.
The OpenFlow spec doesn't require that a user specify icmp_code when specifying a type. However, the conversion for a DP flow asks that the user explicitly specified an icmp_code field to match and forces this via a mask check. This means that valid matches for icmp_type=136,... (for example) won't properly generate a full flow and there will be a much broader match installed in the kernel datapath. This can be worked around by explicitly including icmp_code, but for users that want to write flows which are installed in the kernel, it is not possible to omit icmp_code in the openflow message and still have a neighbor discovery match field included. An alternative way to fix up the flow and mask would be to modify the output of the translation in the xlate_wc_finish() to set the mask when detecting a neighbor discovery related packet. This would require additional matching logic in the xlate_wc_finish() path to validate the ICMP type/code details, and set the masks correctly. The approach taken here is to relax the requirements from the ODP side. This follows the OpenFlow specification and only require that the user include an 'icmp_type=' match, rather than both 'icmp_type=..,icmp_code=0' when matching on neighbor discovery. Signed-off-by: Aaron Conole <aconole@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
- Loading branch information
Showing
3 changed files
with
79 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters