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

Reply via email to