On Fri, Nov 20, 2020 at 02:23:04PM -0500, Ihar Hrachyshka wrote: > On Fri, Nov 20, 2020 at 1:16 PM Ben Pfaff <[email protected]> wrote: > > > > On Fri, Nov 20, 2020 at 12:44:30PM -0500, Ihar Hrachyshka wrote: > > > On Thu, Nov 19, 2020 at 12:19 PM Ben Pfaff <[email protected]> wrote: > > > > > > > > On Thu, Nov 19, 2020 at 08:31:44AM -0500, Ihar Hrachyshka wrote: > > > > > On Thu, Nov 19, 2020 at 12:51 AM Ben Pfaff <[email protected]> wrote: > > > > > > > > > > > > On Wed, Nov 18, 2020 at 10:35:01PM -0500, Ihar Hrachyshka wrote: > > > > > > > It's a legal setup where tunnel ports with the same config are > > > > > > > created > > > > > > > on different bridges served by Open vSwitch. Specifically, > > > > > > > multiple > > > > > > > OVN controllers may emulate multiple chassis running on the same > > > > > > > physical host, in which case they may need to create separate > > > > > > > tunnel > > > > > > > ports to connect to the same remote chassis on their respective > > > > > > > bridges. > > > > > > > > > > > > > > Signed-off-by: Ihar Hrachyshka <[email protected]> > > > > > > > > > > > > That makes sense for sending packets, but which one is supposed to > > > > > > receive a packet when one arrives for that tunnel? > > > > > > > > > > > > > > > > If we are talking in OVN context, each virtual ovn-controller chassis > > > > > on the same host has to have a different IP / port to distinguish > > > > > between chassis. I don't think it's a useful configuration to have two > > > > > two incoming tunnel ports with the same config for the same IP that > > > > > are not served by separate DST IP addresses. > > > > > > > > I think that this code rejects tunnel ports with exactly the same > > > > configuration, though. If the two ports were configured with different > > > > local IP addresses, then this code would not flag a conflict. Do I > > > > misunderstand? > > > > > > > > > > Local IP addresses are not part of tunnel interface options map. Only > > > remote_ip and dst_port are. Does it address your concern? > > > > I don't see where you're getting that. Tunnel configuration allows both > > local and remote IPs to be specified. The match structure has slots for > > both IP addresses, and both of them may be specified. > > > > If the remote (or local) IP addresses are different, then this warning > > won't come up. And you said that the remote IP addresses are different: > > "I don't think it's a useful configuration to have two two incoming > > tunnel ports with the same config for the same IP that are not served by > > separate DST IP addresses." > > > > tnl_port_receive() looks up the tunnel that should receive a packet. It > > calls into tnl_find(). This calls tnl_find_exact() for each of several > > lookup tables. In the case where a warning would be given here, we know > > that tnl_find_exact() would find two matching elements in the map, > > because that's the function that we use to know to issue the warning. > > If we disable the warning and insert the second match anyway, there will > > be two elements in the map with exactly the same key, tnl_find_exact() > > will only ever return one of them, thus the other will never receive any > > packets. > > > > What am I missing? > > > > Oh I missed that local_ip *may* be configured for a tunnel endpoint, > it's just not configured by OVN controller *right now*. We can deal > with it in OVN controller instead of OVS then. Sorry for the noise, > this patch can be dropped.
Oh, wonderful, we understand each other now, and there's nothing mysterious going on in the code that I didn't know about. Cool! _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
