[TSC-114] Support OVS 2.9 NSH implementation, drop OVS 2.6 out-of-branch NSH support. Created: 28/May/18  Updated: 30/Apr/19  Resolved: 08/Aug/18

Status: Resolved
Project: tsc
Component/s: None
Affects Version/s: None
Fix Version/s: Fluorine

Type: Weather Item Priority: Medium
Reporter: Jaime Caamaño Ruiz Assignee: Jaime Caamaño Ruiz
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to OPNFLWPLUG-1017 Add support for official OVS 2.8/2.9 ... Verified
ODL Project: OpenFlowPlugin
ODL Release:
ODL Impacted Projects: GBP, Netvirt, SFC
ODL Expected Date:
ODL Managed Gerrit Topic: nsh-support

 Description   

Before Fluorine, openflowplugin nicira extension supported an unofficial NSH implementation based on an out-of-branch patch on top of OVS 2.5/2.6. Since OVS 2.9, official equivalent nsh support is available but it is incompatible with the previous implementation. As per mail thread [1], it has been decided to drop support of this previous implementation during Fluorine.

  1. Downstreamers using NSH via integration with the patched OVS 2.5/2.6 will need to migrate to OVS 2.9 since Fluorine.
  2. There are some changes required on how the new NSH implementation is used by openflowplugin northbound applications, some of which are API breaking changes. These are being tracked on SFC spec [2] for now, but here is a summary:
    • All NSH fields now have the prerequisite of verifying the packet is
      a NSH packet. This is achieved either by matching ether_type=0x894f
      if the outermost header is Ethernet or by matching
      packet_type=(1,0x894f) if the outermost header is NSH.
    • [API] push_nsh and pop_nsh actions are not available. Instead, encap(nsh)
      is used to add a NSH header to a packet followed by encap(ethernet)
      to add an Ethernet header on top of the nsh header. decap() can be
      used twice to remove both the Ethernet and NSH headers.
    • [API] tun_gpe_np field is not available. The corresponding header field
      is internally managed by OVS.
    • [API] encap_eth_type, encap_eth_src and encap_eth_dst fields are no longer
      available. Standard Ethernet fields will have to be used instead,
      which will apply to the outermost Ethernet header of the packet.
    • [API] nsh_mdtype and nsh_np fields are read only and can no longer be used as destination in reg_load and reg_move actions. nsh_mdtype can be set as
      an argument to the encap NSH action and defaults to 1. nsh_np is set
      internally by OVS.

[1] https://lists.opendaylight.org/pipermail/openflowplugin-dev/2018-May/008338.html

[2] https://git.opendaylight.org/gerrit/#/c/72078/

 



 Comments   
Comment by Robert Varga [ 28/May/18 ]

Can you link project-specific issues as 'related to', please?

Comment by Jaime Caamaño Ruiz [ 29/May/18 ]

I thought this would be tracked under this single issue throughout all projects. Yes, will do as I start working on them. Or is there any other requirement for this issues for which we need them now?

Comment by Robert Varga [ 29/May/18 ]

That's fair, but I don't think that issue should be this weather item Since this is coming from OFP, I would assume there is at least a tracker there.

Comment by Brady Johnson [ 06/Jun/18 ]

This is the plan for finishing this:

  1. The SFC project will finalize the sfc pipeline spec on June 6, 2018
  2. The Netvirt project needs to approve the sfc pipeline spec
  3. The SFC project folks (Jaime and Brady) will do testing to demonstrate the new flows (netvirt+sfc) work with OVS 2.9 NSH
    • Brady will update and test the sfc103 and sfc104 demos
    • Jaime will test with OpenStack
  4. Then we can start merging patches in this order:
    1. OpenFlow plugin non-breaking patches
    2. Project patches:
    3. OFP patches that would have previously introduced compile-time breakages

 

Comment by Jaime Caamaño Ruiz [ 06/Jun/18 ]

This is the current detail on the patches:

Comment by Jaime Caamaño Ruiz [ 13/Jun/18 ]

Hit an issue on OVS with TCP checksums, asking for support on their mailing list:

https://mail.openvswitch.org/pipermail/ovs-discuss/2018-June/046903.html

Comment by Jaime Caamaño Ruiz [ 08/Aug/18 ]

All patches merged and closing issue.

Comment by Anil Vishnoi [ 09/Aug/18 ]

jaicaa Thanks a lot for your contribution . Is it possible to put together a document about this feature in OFP docs folder?

Generated at Wed Feb 07 20:45:13 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.