josh, can you point me to the patch you pushed for this issue? On Mon, Jul 4, 2016 at 12:32 AM, Josh Hershberg <[email protected]> wrote:
> adding lists > > On Sun, Jul 3, 2016 at 2:59 PM, Josh Hershberg <[email protected]> > wrote: > >> Here's what I'm seeing: >> >> 1) Create the flow. It gets written to the DeviceFlowRegistry >> 2) When the OFPST_FLOW comes the hash of the match object is different >> and therefor it is written with an "alien" Flow ID. >> >> The following are some stuff I logged and then run through a pretty >> printer to format the yang nesting for easier reading. What you can see is >> that the FlowRegistryKey changes because the hash of the Match object >> changes. The augmentations in the two log lines seem functionally >> equivalent but very structurally different. >> >> I will continue to dig on this and keep you updated but wanted to throw >> this out in case you have any relevant input already. >> >> 1) When the flow is written to config and inserted into the >> DeviceFlowRegistry the following log statement is issued: >> >> LOG.trace("Storing flowDescriptor with table ID : {} and flow ID : {} for >> flow hash : {} {} {}", >> flowDescriptor.getTableKey().getId(), >> flowDescriptor.getFlowId().getValue(), >> flowRegistryKey.hashCode(), flowRegistryKey, >> flowRegistryKey.getMatch()); >> >> Which produces the following output (Pretty printed): >> Storing flowDescriptor with table ID : 110 and flow ID : >> TunnelFloodOut_101 for flow hash : -1920448894 FlowRegistryKeyDto: >> org.opendaylight.openflowplugin.impl.registry.flow.FlowRegistryKeyFactory$FlowRegistryKeyDto@8d884682 >> , >> tableId: 110, >> priority: 16383, >> cookie: 0, >> match (hash): -1921062477 Match{ >> getEthernetMatch=EthernetMatch{ >> getEthernetDestination=EthernetDestination{ >> getAddress=MacAddress [ >> _value=01:00:00:00:00:00 >> ], >> getMask=MacAddress [ >> _value=01:00:00:00:00:00 >> ], >> augmentations={} >> } /* getEthernetDestination=EthernetDestination */, >> augmentations={} >> } /* getEthernetMatch=EthernetMatch */, >> getTunnel=Tunnel{ >> getTunnelId=101, >> augmentations={} >> }, >> augmentations={ >> interface >> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNodesNodeTableFlow=GeneralAugMatchNodesNodeTableFlow{ >> getExtensionList=[ >> ExtensionList{ >> getExtension=Extension{ >> augmentations={ >> interface >> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxAugMatchNodesNodeTableFlow=NxAugMatchNodesNodeTableFlow{ >> getNxmNxReg=NxmNxReg{ >> getReg=class >> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg0, >> getValue=1, >> augmentations={} >> } >> } /* interface >> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxAugMatchNodesNodeTableFlow=NxAugMatchNodesNodeTableFlow >> */ >> } /* augmentations= */ >> } /* getExtension=Extension */, >> getExtensionKey=class >> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg0Key, >> augmentations={} >> } /* ExtensionList */ >> ] /* getExtensionList= */ >> } /* interface >> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNodesNodeTableFlow=GeneralAugMatchNodesNodeTableFlow >> */ >> } /* augmentations= */ >> } /* match (hash): -1921062477 Match */ >> >> >> 2) When the OFPST_FLOW message comes in the following is logged from the >> DeviceFlowRegistry: >> >> LOG.trace("Created alien flow id {} for flow hash {} {} {}", >> flowDescriptor.getFlowId().getValue(), flowRegistryKey.hashCode(), >> flowRegistryKey, >> flowRegistryKey.getMatch()); >> Which logs (pretty printed): >> Created alien flow id #UF$TABLE*110-2 for flow hash 1557777654 >> FlowRegistryKeyDto: >> org.opendaylight.openflowplugin.impl.registry.flow.FlowRegistryKeyFactory$FlowRegistryKeyDto@5cd9ccf6, >> tableId: 110, >> priority: 16383, >> cookie: 0, >> match (hash): 1557164071 Match [ >> _ethernetMatch=EthernetMatch [ >> _ethernetDestination=EthernetDestination [ >> _address=MacAddress [ >> _value=01:00:00:00:00:00 >> ], >> _mask=MacAddress [ >> _value=01:00:00:00:00:00 >> ], >> augmentation=[] >> ] /* _ethernetDestination=EthernetDestination */, >> augmentation=[] >> ] /* _ethernetMatch=EthernetMatch */, >> _tunnel=Tunnel [ >> _tunnelId=101, >> augmentation=[] >> ], >> augmentation=[ >> GeneralAugMatchNotifUpdateFlowStats [ >> _extensionList=[ >> ExtensionList [ >> _extension=Extension [ >> augmentation=[ >> NxAugMatchNotifUpdateFlowStats [ >> _nxmNxReg=NxmNxReg [ >> _reg=class >> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg0, >> _value=1, >> augmentation=[] >> ] >> ] /* NxAugMatchNotifUpdateFlowStats */ >> ] /* augmentation= */ >> ] /* _extension=Extension */, >> _extensionKey=class >> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg0Key, >> _key=ExtensionListKey [ >> _extensionKey=class >> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg0Key >> ], >> augmentation=[] >> ] /* ExtensionList */ >> ] /* _extensionList= */ >> ] /* GeneralAugMatchNotifUpdateFlowStats */ >> ] /* augmentation= */ >> ] /* match (hash): 1557164071 Match */ >> >> > -- Thanks Anil
_______________________________________________ openflowplugin-dev mailing list [email protected] https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
