I’m trying to build a system across a mininet network and want to downstream flow tables through hosts in mininet. But it will report an error that the connection channel for grpc cannot be established. At this point the virtual host can ping the switch it is connected to, but still cannot communicate. The error is shown below.
Is it only possible to stream tables from a linux host to a switch in mininet?
I have not done what you are asking about before, but I believe the following is true.
When you create a virtual network in mininet with one or more software switches and one or more virtual hosts, mininet creates a separate Linux network namespace for each one of these, to isolate them from each other, so that they may only communicate by means that mininet has explicitly created for them to communicate, which I believe are typically veth interfaces created between pairs of virtual devices that should have a virtual link connecting them.
The simple_switch_grpc process doesn’t behave any differently, regardless of whether it is running in the default Linux network namespace, or in one created by mininet: It listens on TCP port 9559 for incoming connections, and if someone connects to that port, it establishes a connection, and waits for P4Runtime API messages to arrive with table add/delete/modify operations, etc.
So in order to make such a connection, there must be some way for a client process that wants to establish such a TCP connection to have its packets bridged and/or routed into the network namespace where the simple_switch_grpc process is running, and have TCP destination port 9559 when they reach there.
The number of ways to do that is effectively unlimited, and sorry I do not have an example working configuration that I have tested to give you. Perhaps someone else reading this might.