stratum / fabric-tna

The SD-Fabric data plane
https://docs.sd-fabric.org/
30 stars 15 forks source link

Inconsistent table entry for `switch_info` table #84

Open ccascone opened 4 years ago

ccascone commented 4 years ago

23:18:04.727 WARN [P4RuntimeFlowRuleProgrammable] Table entry obtained from device device:leaf1 is different from one in in translation store: device=PiTableEntry{tableId=FabricEgress.pkt_io_egress.switch_info, matchKey=DEFAULT-ACTION, tableAction=NoAction(), priority=N/A, timeout=PERMANENT}, store=PiTableEntry{tableId=FabricEgress.pkt_io_egress.switch_info, matchKey=DEFAULT-ACTION, tableAction=FabricEgress.pkt_io_egress.set_cpu_port(cpu_port=0x140), priority=N/A, timeout=PERMANENT}

The issue was observed after reloading the fabric-tna pipeconf app in a running ONOS instance (production pod).

The ONOS core does not contain any flow for the switch_info table, which is weird. Seems like a bug with the ONOS translation store, and with fabric-tna pipeline initialization logic.

pudelkoM commented 3 years ago

Unrelated issue: The switch_info table lists nop as action, but not as default action, which then will be NoAction implicitly.

I suspect some error on Stratum with regards to default values in keyless tables. It seemed to work at first without any extra logic, but maybe that was a misconception.