Hopefully this is not too late.
Streaming of notifications (e.g. digests) and packet I/O: The same streaming channel will be used for streaming notifications, as well as for packet-in and packet-out messages. Note that unless specified otherwise by the role definitions, only the master controller can participate in packet I/O. This feature is explained in more details in the Packet I/O section.
In other words, the spec doesn’t limit the possibility of sending packet-ins to multiple controllers, but you would have to define a “role” for that (see section 5.2. Role Config). However, none of the existing P4Runtime implementations that I’m aware of support any role other than the default one.
If you want to prototype this capability, your best option is to look at stratum_bmv2, specifically this part of
p4_service.cc:
I might be wrong, but I think the P4Runtime southbound in ONOS doesn't enforce any mastership check on packet-ins, i.e., any switch could be sending paket-in messages to any controller instance, including slaves.
Carmelo