Issue: NETVIRT-1430 83/76083/3
authorRavindra Thakur <ravindra.nath.thakur@ericsson.com>
Fri, 14 Sep 2018 09:43:12 +0000 (15:13 +0530)
committerSam Hague <shague@redhat.com>
Mon, 17 Sep 2018 00:12:19 +0000 (00:12 +0000)
Packet counters for ARP traffic in same DPN, are incremented for GARP
in table 196 and 48 because of incorrect matching of arp request and
response flows.

Fix: Added arp_op also as match criteria for the learnt flows.

Change-Id: Ic6cbbbddeb1d6f008d499de651a10bb3c81a4f40
Signed-off-by: Ravindra Thakur <ravindra.nath.thakur@ericsson.com>
elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanNodeListener.java

index 11bf7cd23e2465a21b6d279bbca1c7222fee6d7f..8af26a02dd7cf24874e6d4c346855c667c939458 100644 (file)
@@ -392,9 +392,9 @@ public class ElanNodeListener extends AsyncDataTreeChangeListenerBase<Node, Elan
                     Arrays.asList(
                             new MatchFromValue(NwConstants.ETHTYPE_ARP, NxmOfFieldType.NXM_OF_ETH_TYPE.getType(),
                                     NxmOfFieldType.NXM_OF_ETH_TYPE.getFlowModHeaderLenInt()),
-                            new MatchFromField(NxmOfFieldType.NXM_OF_ARP_SPA.getType(),
-                                    NxmOfFieldType.NXM_OF_ARP_SPA.getType(),
-                                    NxmOfFieldType.NXM_OF_ARP_SPA.getFlowModHeaderLenInt()),
+                            new MatchFromField(NxmOfFieldType.NXM_OF_ARP_OP.getType(),
+                                    NxmOfFieldType.NXM_OF_ARP_OP.getType(),
+                                    NxmOfFieldType.NXM_OF_ARP_OP.getFlowModHeaderLenInt()),
                             new MatchFromField(NxmOfFieldType.NXM_OF_ARP_TPA.getType(),
                                     NxmOfFieldType.NXM_OF_ARP_TPA.getType(),
                                     NxmOfFieldType.NXM_OF_ARP_TPA.getFlowModHeaderLenInt()),
@@ -409,9 +409,9 @@ public class ElanNodeListener extends AsyncDataTreeChangeListenerBase<Node, Elan
                     Arrays.asList(
                             new MatchFromValue(NwConstants.ETHTYPE_ARP, NxmOfFieldType.NXM_OF_ETH_TYPE.getType(),
                                     NxmOfFieldType.NXM_OF_ETH_TYPE.getFlowModHeaderLenInt()),
-                            new MatchFromField(NxmOfFieldType.NXM_OF_ARP_SPA.getType(),
-                                    NxmOfFieldType.NXM_OF_ARP_TPA.getType(),
-                                    NxmOfFieldType.NXM_OF_ARP_SPA.getFlowModHeaderLenInt()),
+                            new MatchFromField(NxmOfFieldType.NXM_OF_ARP_OP.getType(),
+                                    NxmOfFieldType.NXM_OF_ARP_OP.getType(),
+                                    NxmOfFieldType.NXM_OF_ARP_OP.getFlowModHeaderLenInt()),
                             new MatchFromField(NxmOfFieldType.NXM_OF_ARP_TPA.getType(),
                                     NxmOfFieldType.NXM_OF_ARP_SPA.getType(),
                                     NxmOfFieldType.NXM_OF_ARP_TPA.getFlowModHeaderLenInt()),