On Wed, May 27, 2015 at 3:03 PM, Andy Zhou <az...@nicira.com> wrote: > On Wed, May 27, 2015 at 10:48 AM, Jesse Gross <je...@nicira.com> wrote: >> When formatting netlink attributes if no mask is present a wildcarded >> attribute is synthesized for the purposes of later processing. In >> the case of nested attributes this must be done recursively, filling >> in the correct attributes at each level rather than just generating >> a set of zeros of the correct size. This is done already but it >> always uses the attribute type for the top level keys - this corresponds >> to nested ENCAP attributes. However, we have several levels of potentially >> nested attributes for tunnels that each have their own types. >> >> This uses an approach similar to the kernel where we have sets of >> tables for the type of each attribute linked together by pointers. >> This allows the mask generation function to automatically traverse >> the nested attributes and always get the right types. >> >> Signed-off-by: Jesse Gross <je...@nicira.com> >> --- >> lib/odp-util.c | 151 >> ++++++++++++++++++++++++++++++++------------------------- >> 1 file changed, 86 insertions(+), 65 deletions(-) >> >> diff --git a/lib/odp-util.c b/lib/odp-util.c >> index 4845d28..09a1ff2 100644 >> --- a/lib/odp-util.c >> +++ b/lib/odp-util.c >> @@ -1208,45 +1208,73 @@ odp_actions_from_string(const char *s, const struct >> simap *port_names, >> return 0; >> } >> >> + >> +struct attr_len_tbl { >> + int len; >> + const struct attr_len_tbl *next; >> + int next_max; >> +}; >> +#define ATTR_LEN_VARIABLE -2 >> +#define ATTR_LEN_NESTED -3 >> + > > Might be nice to also '#define ATTR_LEN_INVALID -1' for completeness. > Although it is expected to be used in > tables, but only a possible return value from function calls, > > There are still a few places '-2' are hard coded, including some > comments. It might be nice to change them those as well.
Thanks, I think these are both good suggestions for consistency so I made those changes. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev