On 5/13/20 3:38 PM, Ihar Hrachyshka wrote: > Hi all, > > This series is to allow for multiple localnet ports to be present in a > logical switch. Even before the series, it was allowed to create > multiple ports of this kind but they were handled inconsistently. > > This series uses logical switches with multiple localnet ports > (LSMLP) to implement what is called "routed provider networks" in > OpenStack. To elaborate, this allows to natively model a network that > has multiple segments with implied L3 routing between the segments > realized by the fabric. A user can operate such a network as a single > entity instead of deciding on which segment to choose for their > port bindings. > > The assumption in this implementation is that while a logical switch can > have multiple localnet ports, each chassis has only one of corresponding > physical networks mapped. Meaning, if the same LS has localnet ports for > networks A, B, and C, then each chassis can either be mapped to A, B, or > C, but not several of the networks. (Note this doesn't mean that a > chassis can't be mapped to network D, as long as it doesn't have a > corresponding localnet port in this same logical switch.) > > Ihar Hrachyshka (6): > Spin out flow generation into build_dhcpv4_options_flows > Spin out flow generation into build_dhcpv6_options_flows > Spin out flow generation into build_pre_acl_flows > Spin out flow generation into > build_drop_arp_nd_flows_for_unbound_router_ports > Support logical switches with multiple localnet ports > Log missing bridge per localnet port just once
For the series: Acked-by: Dumitru Ceara <[email protected]> Thanks, Dumitru > > --- > v2: - rebase on top of series that refactors code dealing with > localnet ports. > - tests: send packets both ways, more test scenarios covered. > - use x2nrealloc to allocate ->localnet_ports. > - use n_localnet_ports counter instead of localnet_ports pointer > to detect switches with localnet ports. > v3: - adjusted documentation to be more explicit about how multiple > localnet ports scenario should be used in practice. > - more tests (broadcast, multiple co-hosted switches with multiple > localnet ports) > v4: - sent as a series, fixed test description to reflect we test > broadcast only. > v5: - fixed a test case failure on slower machines due to service > broadcast traffic captured. > - rearranged parameters in new functions to keep output parameters > at the end. > v6: - fixed several memory leaks due to struct ds not destroyed / > char* not freed. > - explained why we don't rate limit messages about unbound > localnet ports. > - docs: fixed a missing space between sentences. > - nit: rearranged code inside controller/patch.c to avoid an `if`. > v7: - simplified new build_* functions by removing stage_hint > calculation. > - simplified signature of build_pre_acl_flows_for_nbsp. > - renamed build_pre_acl_flows_for_nbsp -> build_pre_acl_flows. > - nit: removed redundant newlines between new build_* functions. > --- > > controller/binding.c | 16 ++ > controller/patch.c | 31 ++- > northd/ovn-northd.c | 474 ++++++++++++++++++++------------------ > ovn-architecture.7.xml | 50 ++-- > ovn-nb.xml | 23 +- > ovn-sb.xml | 21 +- > tests/ovn.at | 504 +++++++++++++++++++++++++++++++++++++++++ > 7 files changed, 862 insertions(+), 257 deletions(-) > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
