On Wed, Mar 11, 2015 at 5:01 AM, Stefano Salsano <stefano.sals...@uniroma2.it> wrote: > Il 27/02/2015 00:52, Pravin Shelar ha scritto: >> >> On Thu, Feb 26, 2015 at 5:17 AM, Stefano Salsano wrote: >>> >>> >>> there is a limit of 3 MPLS labels that are supported by Open vSwitch >>> we need to raise it at 5 labels, to implement a segment routing scenario >>> >> You can start with changing FLOW_MAX_MPLS_LABELS to 5. > > > Dear Pravin, > > thanks for your hint, we have tried and we realized that we also need to > change an assert in lib/flow.h > > current code is > BUILD_ASSERT_DECL(offsetof(struct flow, igmp_group_ip4) + sizeof(uint32_t) > == sizeof(struct flow_tnl) + 192 && FLOW_WC_SEQ == 31); > > we need to change it into: > BUILD_ASSERT_DECL(offsetof(struct flow, igmp_group_ip4) + sizeof(uint32_t) > == sizeof(struct flow_tnl) + 176 + (4 * ROUND_UP(FLOW_MAX_MPLS_LABELS, 2)) > && FLOW_WC_SEQ == 31); > > basically, we need to split the 192 bytes in a fixed part of 176 bytes and > in a part that depends on the number of supported MPLS labels > > we tried it, and it compiles and runs well :-) > > do you think it is OK ? do you want us to provide a patch ? > I think we need to handle any number of MPLS labels and not limit to specific number. I discussed it offline with Jarno and it is doable using single mpls label (in struct flow) and recirculation context. I will work on it next week.
Thanks, Pravin. _______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss