OvsdbPortUpdateCommand honors only port update with bridge updates


Amit Mandke (ammandke) <ammandke@...>
 

Hi ovsdb dev team,

I observed that OvsdbPortUpdateCommand checks updated rows of ports only. However it misses on further updates of Interfaces. So some attributes do not end up in the operational store. Such as ‘ofport’ etc. Is there any work done on this?

Also the current implementation expects updated bridge data to be present along with port updates. However it is  possible to have only port updated data or only interface updated data, and only that data needs to be updated to operational. Interestingly though,  here finding key to bridge node (bridge name) and termination point (port name)  can get tricky. One would have to fetch those names from respective tables based on interface UUID or Port UUID etc.

/****Code from the class that explains the above points. *****/
    @Override
    public void execute(ReadWriteTransaction transaction) {
        String bridgeName = null;
        Collection<Port> portUpdatedRows = TyperUtils.extractRowsUpdated(
                Port.class, getUpdates(), getDbSchema()).values();
        Collection<Bridge> bridgeUpdatedRows = TyperUtils.extractRowsUpdated(
                Bridge.class, getUpdates(), getDbSchema()).values();
        .
        .
        .
        for (Bridge bridge : bridgeUpdatedRows) {
            Iterator<UUID> bridgePorts = bridge.getPortsColumn().getData()
                    .iterator();
            while (bridgePorts.hasNext()) {
            .
            . /** update ports **/
            .
}
/****Code from the class that explains the above points. *****/

As mentioned above,  in this code if bridge updated data is not received nothing would be updated. 

Let me know if any work is being done to change this.

Thanks,
-Amit

Join z.archive.ovsdb-dev@lists.opendaylight.org to automatically receive all group messages.