-
Bug
-
Resolution: Done
-
High
-
Oxygen
-
None
-
In order to reproduce this, you will need a version of OVS that supports Network Service Headers (NSH) which can be found here:
Please reach out to me if you need help reproducing this, or testing the fix.
In order to reproduce this, you will need a version of OVS that supports Network Service Headers (NSH) which can be found here: https://wiki.opendaylight.org/view/Service_Function_Chaining:Main#Building_Open_vSwitch_with_VxLAN-GPE_and_NSH_support Please reach out to me if you need help reproducing this, or testing the fix.
After the Yangtools 2.0.1 version bump, its no longer possible to programatically create SFC OpenFlow flows. I get the following errors in the karaf.log: https://pastebin.com/RvzktbLi
The rest of the flows that dont have any Nicira NSH extensions are written successfully.
The problematic flows dont get written to the Config data store, so I cant dump that to show them. What I was able to do was to log the flows. These are the problematic flows from karaf.log:
WriteFlow storing flow on Node [openflow:244899274205760] table [1] flow
[Flow [_cookie=FlowCookie [_value=20], _cookieMask=FlowCookie [_value=20], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nO
BYTCOUNTS=false, _sENDFLOWREM=false], _flowName=transportIngress_255_7, _hardTimeout=0, _id=Uri [_value=transportIngress_255_7], _idleTimeout=0, _instructions=I
nstructions [instruction=[Instruction [_instruction=GoToTableCase [_goToTable=GoToTable [_tableId=4, augmentation=[]], augmentation=[]], _key=InstructionKey [
order=0], _order=0, augmentation=[]]], augmentation=[]], _key=FlowKey [_id=Uri [_value=transportIngress_255_7]], _match=Match [augmentation=[GeneralAugMatchNode
sNodeTableFlow [_extensionList=[ExtensionList [_extension=Extension [augmentation=[NxAugMatchNodesNodeTableFlow [_nxmNxNsp=NxmNxNsp [_value=7, augmentation=[]],
]]], _extensionKey=class org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNspKey, _key=ExtensionListKey [_ext
ensionKey=class org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNspKey], augmentation=[]]]]]], _priority=250,
_tableId=1, _barrier=false, _strict=false, augmentation=[]]]
WriteFlow storing flow on Node [openflow:244899274205760] table [1] flow
[Flow [_cookie=FlowCookie [_value=20], _cookieMask=FlowCookie [_value=20], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nO
BYTCOUNTS=false, _sENDFLOWREM=false], _flowName=transportIngress_255_8388615, _hardTimeout=0, _id=Uri [_value=transportIngress_255_8388615], _idleTimeout=0, _in
structions=Instructions [_instruction=[Instruction [_instruction=GoToTableCase [_goToTable=GoToTable [_tableId=4, augmentation=[]], augmentation=[]], _key=Instr
uctionKey [_order=0], _order=0, augmentation=[]]], augmentation=[]], _key=FlowKey [_id=Uri [_value=transportIngress_255_8388615]], _match=Match [augmentation=[G
eneralAugMatchNodesNodeTableFlow [_extensionList=[ExtensionList [_extension=Extension [augmentation=[NxAugMatchNodesNodeTableFlow [_nxmNxNsp=NxmNxNsp [_value=83
88615, augmentation=[]], ]]], _extensionKey=class org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNspKey, _ke
y=ExtensionListKey [_extensionKey=class org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNspKey], augmentation
=[]]]]]], _priority=250, _tableId=1, _barrier=false, _strict=false, augmentation=[]]]
WriteFlow storing flow on Node [openflow:244899274205760] table [4] flow
[Flow [_cookie=FlowCookie [_value=20], _cookieMask=FlowCookie [_value=20], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nO
BYTCOUNTS=false, _sENDFLOWREM=false], _flowName=nextHop_255_7, _hardTimeout=0, _id=Uri [_value=nextHop_255_7], _idleTimeout=0, _instructions=Instructions [_inst
ruction=[Instruction [_instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_action=NxActionRegLoadNodesNodeTableFlowApplyActionsCase [_nx
RegLoad=NxRegLoad [_dst=Dst [_dstChoice=DstNxTunIpv4DstCase [_nxTunIpv4Dst=true, augmentation=[]], _end=31, _start=0, augmentation=[]], _value=167772170, augmen
tation=[]], augmentation=[]], _key=ActionKey [_order=0], _order=0, augmentation=[]]], augmentation=[]], augmentation=[]], _key=InstructionKey [_order=0], _order
=0, augmentation=[]], Instruction [_instruction=GoToTableCase [_goToTable=GoToTable [_tableId=10, augmentation=[]], augmentation=[]], _key=InstructionKey [_orde
r=1], _order=1, augmentation=[]]], augmentation=[]], _key=FlowKey [_id=Uri [_value=nextHop_255_7]], _match=Match [augmentation=[GeneralAugMatchNodesNodeTableFlo
w [_extensionList=[ExtensionList [_extension=Extension [augmentation=[NxAugMatchNodesNodeTableFlow [_nxmNxNsp=NxmNxNsp [_value=7, augmentation=[]], ]]], _extens
ionKey=class org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNspKey, _key=ExtensionListKey [_extensionKey=cla
ss org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNspKey], augmentation=[]], ExtensionList [_extension=Exten
sion [augmentation=[NxAugMatchNodesNodeTableFlow [_nxmNxNsi=NxmNxNsi [_nsi=255, augmentation=[]], ]]], _extensionKey=class org.opendaylight.yang.gen.v1.urn.open
daylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNsiKey, _key=ExtensionListKey [_extensionKey=class org.opendaylight.yang.gen.v1.urn.opendaylight.o
penflowplugin.extension.nicira.match.rev140714.NxmNxNsiKey], augmentation=[]]]]]], _priority=550, _tableId=4, _barrier=false, _strict=false, augmentation=[]]]
WriteFlow storing flow on Node [openflow:244899274205760] table [4] flow
[Flow [_cookie=FlowCookie [_value=20], _cookieMask=FlowCookie [_value=20], _flags=FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nO
BYTCOUNTS=false, _sENDFLOWREM=false], _flowName=nextHop_255_8388615, _hardTimeout=0, _id=Uri [_value=nextHop_255_8388615], _idleTimeout=0, _instructions=Instruc
tions [_instruction=[Instruction [_instruction=ApplyActionsCase [_applyActions=ApplyActions [_action=[Action [_action=NxActionRegLoadNodesNodeTableFlowApplyActi
onsCase [_nxRegLoad=NxRegLoad [_dst=Dst [_dstChoice=DstNxTunIpv4DstCase [_nxTunIpv4Dst=true, augmentation=[]], _end=31, _start=0, augmentation=[]], _value=16777
2170, augmentation=[]], augmentation=[]], _key=ActionKey [_order=0], _order=0, augmentation=[]]], augmentation=[]], augmentation=[]], _key=InstructionKey [_orde
r=0], _order=0, augmentation=[]], Instruction [_instruction=GoToTableCase [_goToTable=GoToTable [_tableId=10, augmentation=[]], augmentation=[]], _key=Instructi
onKey [_order=1], _order=1, augmentation=[]]], augmentation=[]], _key=FlowKey [_id=Uri [_value=nextHop_255_8388615]], _match=Match [augmentation=[GeneralAugMatc
hNodesNodeTableFlow [_extensionList=[ExtensionList [_extension=Extension [augmentation=[NxAugMatchNodesNodeTableFlow [_nxmNxNsp=NxmNxNsp [_value=8388615, augmen
tation=[]], ]]], _extensionKey=class org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNspKey, _key=ExtensionLi
stKey [_extensionKey=class org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNspKey], augmentation=[]], Extensi
onList [_extension=Extension [augmentation=[NxAugMatchNodesNodeTableFlow [_nxmNxNsi=NxmNxNsi [_nsi=255, augmentation=[]], ]]], _extensionKey=class org.opendayli
ght.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNsiKey, _key=ExtensionListKey [_extensionKey=class org.opendaylight.yang.g
en.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNsiKey], augmentation=[]]]]]], _priority=550, _tableId=4, _barrier=false, _strict=fa
lse, augmentation=[]]]