summaryrefslogtreecommitdiffstats
path: root/net/openvswitch/meter.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2019-04-27 17:03:44 -0400
committerDavid S. Miller <davem@davemloft.net>2019-04-27 17:03:44 -0400
commitf6ad55a6a184ebdf3d98a90eab0895f73ce9797e (patch)
treeb49e3af8f5cac309bae80ad390ee8fc3b3679065 /net/openvswitch/meter.c
parentc7881b4a97e21b617b8243094dfa4b62028b956c (diff)
parentf78c6032c4cb89b408190afd4feb61ff4461a114 (diff)
Merge branch 'nla_nest_start'
Michal Kubecek says: ==================== make nla_nest_start() add NLA_F_NESTED flag One of the comments in recent review of the ethtool netlink series pointed out that proposed ethnl_nest_start() helper which adds NLA_F_NESTED to second argument of nla_nest_start() is not really specific to ethtool netlink code. That is hard to argue with as closer inspection revealed that exactly the same helper already exists in ipset code (except it's a macro rather than an inline function). Another observation was that even if NLA_F_NESTED flag was introduced in 2007, only few netlink based interfaces set it in kernel generated messages and even many recently added APIs omit it. That is unfortunate as without the flag, message parsers not familiar with attribute semantics cannot recognize nested attributes and do not see message structure; this affects e.g. wireshark dissector or mnl_nlmsg_fprintf() from libmnl. This is why I'm suggesting to rename existing nla_nest_start() to different name (nla_nest_start_noflag) and reintroduce nla_nest_start() as a wrapper adding NLA_F_NESTED flag. This is implemented in first patch which is mostly generated by spatch. Second patch drops ipset helper macros which lose their purpose. Third patch cleans up minor coding style issues found by checkpatch.pl in first patch. We could leave nla_nest_start() untouched and simply add a wrapper adding NLA_F_NESTED but that would probably preserve the state when even most new code doesn't set the flag. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/openvswitch/meter.c')
-rw-r--r--net/openvswitch/meter.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/openvswitch/meter.c b/net/openvswitch/meter.c
index 0be3d097ae01..fdc8be7fd8f3 100644
--- a/net/openvswitch/meter.c
+++ b/net/openvswitch/meter.c
@@ -127,7 +127,7 @@ static int ovs_meter_cmd_reply_stats(struct sk_buff *reply, u32 meter_id,
127 OVS_METER_ATTR_PAD)) 127 OVS_METER_ATTR_PAD))
128 goto error; 128 goto error;
129 129
130 nla = nla_nest_start(reply, OVS_METER_ATTR_BANDS); 130 nla = nla_nest_start_noflag(reply, OVS_METER_ATTR_BANDS);
131 if (!nla) 131 if (!nla)
132 goto error; 132 goto error;
133 133
@@ -136,7 +136,7 @@ static int ovs_meter_cmd_reply_stats(struct sk_buff *reply, u32 meter_id,
136 for (i = 0; i < meter->n_bands; ++i, ++band) { 136 for (i = 0; i < meter->n_bands; ++i, ++band) {
137 struct nlattr *band_nla; 137 struct nlattr *band_nla;
138 138
139 band_nla = nla_nest_start(reply, OVS_BAND_ATTR_UNSPEC); 139 band_nla = nla_nest_start_noflag(reply, OVS_BAND_ATTR_UNSPEC);
140 if (!band_nla || nla_put(reply, OVS_BAND_ATTR_STATS, 140 if (!band_nla || nla_put(reply, OVS_BAND_ATTR_STATS,
141 sizeof(struct ovs_flow_stats), 141 sizeof(struct ovs_flow_stats),
142 &band->stats)) 142 &band->stats))
@@ -166,11 +166,11 @@ static int ovs_meter_cmd_features(struct sk_buff *skb, struct genl_info *info)
166 nla_put_u32(reply, OVS_METER_ATTR_MAX_BANDS, DP_MAX_BANDS)) 166 nla_put_u32(reply, OVS_METER_ATTR_MAX_BANDS, DP_MAX_BANDS))
167 goto nla_put_failure; 167 goto nla_put_failure;
168 168
169 nla = nla_nest_start(reply, OVS_METER_ATTR_BANDS); 169 nla = nla_nest_start_noflag(reply, OVS_METER_ATTR_BANDS);
170 if (!nla) 170 if (!nla)
171 goto nla_put_failure; 171 goto nla_put_failure;
172 172
173 band_nla = nla_nest_start(reply, OVS_BAND_ATTR_UNSPEC); 173 band_nla = nla_nest_start_noflag(reply, OVS_BAND_ATTR_UNSPEC);
174 if (!band_nla) 174 if (!band_nla)
175 goto nla_put_failure; 175 goto nla_put_failure;
176 /* Currently only DROP band type is supported. */ 176 /* Currently only DROP band type is supported. */