[OVSDB-494] Fix Hwvtep Port reconciliation to handle Physical_Port Delete and Add from switch Created: 10/Jan/20  Updated: 30/Sep/20  Resolved: 30/Sep/20

Status: Resolved
Project: ovsdb
Component/s: None
Affects Version/s: None
Fix Version/s: unspecified

Type: Bug Priority: Medium
Reporter: Chandra Shekar S Assignee: Chandra Shekar S
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

If the Hwvtep Physical_Port is deleted and added back, vlan bindings are not getting
pushed the switch in this case.
When the Hwvtep Physical_Port is deleted and added back, the uuid of the Port
will get changed, ODL is not handling this case properly as a result of it
vlan bindings are pushed to the switch.

Physical_Port table before delete and add.
_uuid acl_bindings description name other_config port_fault_status vlan_bindings vlan_stats
------------------------------------ ------------ ----------- ---------------- ------------ ----------------- ------------------------------------------ ------------------------------------------
e600b737-22ea-489a-9232-0d64ee787b43 {} "" "tap23701063-12" {} [] {100=a9e14a6d-32b6-4f14-9420-7773aae05893} {100=11aced04-0b55-45c8-bbf3-0f26414990ae}
09a9235b-021f-4988-8c94-5173de4e56d7 {} "" "tap23701073-12" {} [] {100=a9e14a6d-32b6-4f14-9420-7773aae05893} {100=fe512493-13dd-42ff-98c7-b45cead1fd56}
0939560b-02f1-4ce0-9ef5-db1cd8de4c90 {} "" "tap23701083-12" {} [] {100=a9e14a6d-32b6-4f14-9420-7773aae05893} {100=78586fd0-e63d-45cc-8616-b4b2ca5bcc87}
bccc872b-71dc-47f3-bd2c-c10ad2333cfa {} "" "tap23701093-12" {} [] {100=a9e14a6d-32b6-4f14-9420-7773aae05893} {100=30b8a039-f6a7-475b-aa1f-129cd7291d88}

The uuid of the port tap23701093-12 is bccc872b-71dc-47f3-bd2c-c10ad2333cfa

Physical_Port table after delete and add.
e600b737-22ea-489a-9232-0d64ee787b43 {} "" "tap23701063-12" {} [] {100=a9e14a6d-32b6-4f14-9420-7773aae05893} {100=11aced04-0b55-45c8-bbf3-0f26414990ae}
09a9235b-021f-4988-8c94-5173de4e56d7 {} "" "tap23701073-12" {} [] {100=a9e14a6d-32b6-4f14-9420-7773aae05893} {100=fe512493-13dd-42ff-98c7-b45cead1fd56}
0939560b-02f1-4ce0-9ef5-db1cd8de4c90 {} "" "tap23701083-12" {} [] {100=a9e14a6d-32b6-4f14-9420-7773aae05893} {100=78586fd0-e63d-45cc-8616-b4b2ca5bcc87}
fb6b2777-af3a-41f6-98f8-1ca214ec58db {} "" "tap23701093-12" {} [] {} {}

The uuid of the port tap23701093-12 is changed to fb6b2777-af3a-41f6-98f8-1ca214ec58db and vlanbindings are not pushed.

 

2020-01-10T12:06:07,621 | ERROR | transaction-invoker-impl-0 | HwvtepOperationalCommandAggregator | 403 - org.opendaylight.ovsdb.hwvtepsouthbound-impl - 1.10.0.SNAPSHOT | Execution of command org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.HwvtepPhysicalPortUpdateCommand@73a2ad7b failed with the following exception. Continuing the execution of remaining commands
java.lang.ClassCastException: class org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint$$$codecImpl cannot be cast to class com.google.common.util.concurrent.ListenableFuture (org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint$$$codecImpl is in unnamed module of loader org.opendaylight.mdsal.binding.dom.codec.loader.LeafCodecClassLoader @318a5524; com.google.common.util.concurrent.ListenableFuture is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @2059524a)
at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.HwvtepPhysicalPortUpdateCommand.reconcileToPort(HwvtepPhysicalPortUpdateCommand.java:190) ~[403:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.10.0.SNAPSHOT]
at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.HwvtepPhysicalPortUpdateCommand.updateTerminationPoints(HwvtepPhysicalPortUpdateCommand.java:146) ~[403:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.10.0.SNAPSHOT]
at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.HwvtepPhysicalPortUpdateCommand.execute(HwvtepPhysicalPortUpdateCommand.java:106) ~[403:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.10.0.SNAPSHOT]
at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.HwvtepOperationalCommandAggregator.execute(HwvtepOperationalCommandAggregator.java:59) [403:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.10.0.SNAPSHOT]
at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.TransactionInvokerImpl.executeCommand(TransactionInvokerImpl.java:123) [403:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.10.0.SNAPSHOT]
at org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.TransactionInvokerImpl.run(TransactionInvokerImpl.java:102) [403:org.opendaylight.ovsdb.hwvtepsouthbound-impl:1.10.0.SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]


Generated at Wed Feb 07 20:36:33 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.