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 */
>
>
_______________________________________________
openflowplugin-dev mailing list
[email protected]
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev