I was trying to find a way to allow control the plane and the data plane to communicate (for example the data plane can notify the control plane when something happens, or the control plane can insert new entries in the tables used by the data plane dynamically).
I’m using BMv2 (simple_switch_grpc specifically), inside Mininet.
I understood, doing some research online, that it is possible to use a digest or to clone a packet to communicate with the control plane. I tried the latter approach, using the clone extern of the v1model (as explained herehttps://github.com/nsg-ethz/p4-learning/wiki/BMv2-Simple-Switch#cloning-packets), but I couldn’t understand how to actually send the packet to the control plane: since it is (from my understanding) on the same machine as the data plane: so I don’t have an output port where to send it .
Furthermore, I need to send a message to the control plane while processing a packet, so I need to correctly forward the packet to the next hop and not just communicate with the control plane.
Is there a better way to send information from the data plane to the control plane?
Is it correct that the control plane is placed on the switch together with the data plane? (I can only use the Thrift API or the P4Runtime API inside the switch, since they run locally)
Is it possible to centralize the control planes using a SDN in Mininet with BMv2 switches?
Thank you in advance for your help!