Bug 9180: Conflicting modification Exception from NAT Module
Problem Description:
====================
The following runtime exceptions was throwing from NAT module as part of
"adding external router gateway set" in CSIT.
Exception 1:
============
Conflicting modification for path
/(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:
264442126811301}]
[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=81}]/flow/flow[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=Arp:tbl_81:lport_11:tpa_10.10.10.3}]
Exception 2:
============
Conflicting modification for path
/(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:
264442126811301}]
[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=19}]/flow/flow[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=fa:16:3e:ce:fd:00.100003.
2644421268113
01.19}]
Solution:
==========
When we do router gateway set for external network, below same flows are
getting installed from two different NAT module listeners which is
causing this runtime "Conflicting modification" exceptions.
1) L3_GW_MAC_TABLE (19) -> L3_FIB_TABLE (21) with external router GW MAC
and
External router vpn-id as match criteria.
2) ARP_RESPONDER_TABLE (81) -> EGRESS_LPORT_DISPATCHER_TABLE (220) with
external router GW MAC in ARP Responder flow.
handleRouterGwFlows() method is commented out in ExternalRoutersListener
add() method alone.
Since the same action is taken care by CentralizedSwitchChangeListener
which is listening on DS "odl-nat:napt-switches".
Change-Id: I2dece791d639b243689f24c112bf6250029de019
Signed-off-by: karthikeyan <karthikeyan.k@altencalsoftlabs.com>
Signed-off-by: cgowdru <chetan.arakere@altencalsoftlabs.com>
Signed-off-by: karthikeyan <karthikeyan.k@altencalsoftlabs.com>