Hi all,
I have an ONOS app to install and remove equal number of flows from simple_switch_grpc. I have a linear topology running inside mininet with 3 switches and a host connected to each switch. A load generator(LG) is running on host h1 connected to s1 inside mininet and all the packets from LG are sent to ONOS App which installs and removes flows accordingly. Ideally all the flows should be removed from the switch but what I find is that some flows are not deleted from switch and I get some errors in ONOS controller as shown below. I am unable to comprehend them. Is it because the flow installation is taking longer on simple_switch_grpc that when the request for flow deletion comes the flow is not found in the switch?(I am not sure though)
2018-07-27 14:19:22,174 | WARN | -single-executor | P4RuntimeFlowRuleProgrammable | 184 - org.onosproject.onos-drivers-p4runtime - 1.13.2.SNAPSHOT | Found 2 entries from device:bmv2:s2 not on translation store, removing them...
2018-07-27 14:19:22,185 | WARN | device:bmv2:s2-9 | P4RuntimeClientImpl | 181 - org.onosproject.onos-protocols-p4runtime-ctl - 1.13.2.SNAPSHOT | Unable to DELETE 1 table entry(s) on device:bmv2:s2: UNKNOWN (detailed errors might be logged below)
2018-07-27 14:19:22,187 | WARN | -single-executor | P4RuntimeFlowRuleProgrammable | 184 - org.onosproject.onos-drivers-p4runtime - 1.13.2.SNAPSHOT | Unable to DELETE table entry in device:bmv2:s2: PiTableEntry{tableId=c_ingress.ip_op_tun_s2_uplink, matchKey={hdr.vlan.vid=00:01}, tableAction=c_ingress.populate_ip_op_tun_s2_uplink(egress_port_s2=00:03, op_tunnel_s2=0f:a0), priority=0, timeout=PERMANENT}
2018-07-27 14:19:22,195 | WARN | device:bmv2:s2-1 | P4RuntimeClientImpl | 181 - org.onosproject.onos-protocols-p4runtime-ctl - 1.13.2.SNAPSHOT | Unable to DELETE 1 table entry(s) on device:bmv2:s2: UNKNOWN (detailed errors might be logged below)
2018-07-27 14:19:22,196 | WARN | -single-executor | P4RuntimeFlowRuleProgrammable | 184 - org.onosproject.onos-drivers-p4runtime - 1.13.2.SNAPSHOT | Unable to DELETE table entry in device:bmv2:s2: PiTableEntry{tableId=c_ingress.ip_op_tun_s2_downlink, matchKey={hdr.vlan.vid=00:02}, tableAction=c_ingress.populate_ip_op_tun_s2_downlink(egress_port_s2=00:02, op_tunnel_s2=04:02), priority=0, timeout=PERMANENT}
I get to see non deterministic behavior from simple_switch_grpc with above errors while installing and removing flows though I have added all the table names to Pipeline Interpreter.
How do I resolve this isse?
Thanks
Regards
Vikas Kumar
Department of Computer Sceince
IIT Bombay