Lines Matching refs:reply
108 static int ovs_meter_cmd_reply_stats(struct sk_buff *reply, u32 meter_id, in ovs_meter_cmd_reply_stats() argument
115 if (nla_put_u32(reply, OVS_METER_ATTR_ID, meter_id)) in ovs_meter_cmd_reply_stats()
121 if (nla_put(reply, OVS_METER_ATTR_STATS, in ovs_meter_cmd_reply_stats()
123 nla_put_u64_64bit(reply, OVS_METER_ATTR_USED, meter->used, in ovs_meter_cmd_reply_stats()
127 nla = nla_nest_start_noflag(reply, OVS_METER_ATTR_BANDS); in ovs_meter_cmd_reply_stats()
136 band_nla = nla_nest_start_noflag(reply, OVS_BAND_ATTR_UNSPEC); in ovs_meter_cmd_reply_stats()
137 if (!band_nla || nla_put(reply, OVS_BAND_ATTR_STATS, in ovs_meter_cmd_reply_stats()
141 nla_nest_end(reply, band_nla); in ovs_meter_cmd_reply_stats()
143 nla_nest_end(reply, nla); in ovs_meter_cmd_reply_stats()
152 struct sk_buff *reply; in ovs_meter_cmd_features() local
157 reply = ovs_meter_cmd_reply_start(info, OVS_METER_CMD_FEATURES, in ovs_meter_cmd_features()
159 if (IS_ERR(reply)) in ovs_meter_cmd_features()
160 return PTR_ERR(reply); in ovs_meter_cmd_features()
162 if (nla_put_u32(reply, OVS_METER_ATTR_MAX_METERS, U32_MAX) || in ovs_meter_cmd_features()
163 nla_put_u32(reply, OVS_METER_ATTR_MAX_BANDS, DP_MAX_BANDS)) in ovs_meter_cmd_features()
166 nla = nla_nest_start_noflag(reply, OVS_METER_ATTR_BANDS); in ovs_meter_cmd_features()
170 band_nla = nla_nest_start_noflag(reply, OVS_BAND_ATTR_UNSPEC); in ovs_meter_cmd_features()
174 if (nla_put_u32(reply, OVS_BAND_ATTR_TYPE, OVS_METER_BAND_TYPE_DROP)) in ovs_meter_cmd_features()
176 nla_nest_end(reply, band_nla); in ovs_meter_cmd_features()
177 nla_nest_end(reply, nla); in ovs_meter_cmd_features()
179 genlmsg_end(reply, ovs_reply_header); in ovs_meter_cmd_features()
180 return genlmsg_reply(reply, info); in ovs_meter_cmd_features()
183 nlmsg_free(reply); in ovs_meter_cmd_features()
272 struct sk_buff *reply; in ovs_meter_cmd_set() local
288 reply = ovs_meter_cmd_reply_start(info, OVS_METER_CMD_SET, in ovs_meter_cmd_set()
290 if (IS_ERR(reply)) { in ovs_meter_cmd_set()
291 err = PTR_ERR(reply); in ovs_meter_cmd_set()
313 failed = nla_put_u32(reply, OVS_METER_ATTR_ID, meter_id); in ovs_meter_cmd_set()
318 err = ovs_meter_cmd_reply_stats(reply, meter_id, in ovs_meter_cmd_set()
326 genlmsg_end(reply, ovs_reply_header); in ovs_meter_cmd_set()
327 return genlmsg_reply(reply, info); in ovs_meter_cmd_set()
331 nlmsg_free(reply); in ovs_meter_cmd_set()
345 struct sk_buff *reply; in ovs_meter_cmd_get() local
353 reply = ovs_meter_cmd_reply_start(info, OVS_METER_CMD_GET, in ovs_meter_cmd_get()
355 if (IS_ERR(reply)) in ovs_meter_cmd_get()
356 return PTR_ERR(reply); in ovs_meter_cmd_get()
374 err = ovs_meter_cmd_reply_stats(reply, meter_id, meter); in ovs_meter_cmd_get()
381 genlmsg_end(reply, ovs_reply_header); in ovs_meter_cmd_get()
382 return genlmsg_reply(reply, info); in ovs_meter_cmd_get()
386 nlmsg_free(reply); in ovs_meter_cmd_get()
398 struct sk_buff *reply; in ovs_meter_cmd_del() local
405 reply = ovs_meter_cmd_reply_start(info, OVS_METER_CMD_DEL, in ovs_meter_cmd_del()
407 if (IS_ERR(reply)) in ovs_meter_cmd_del()
408 return PTR_ERR(reply); in ovs_meter_cmd_del()
421 err = ovs_meter_cmd_reply_stats(reply, meter_id, old_meter); in ovs_meter_cmd_del()
428 genlmsg_end(reply, ovs_reply_header); in ovs_meter_cmd_del()
429 return genlmsg_reply(reply, info); in ovs_meter_cmd_del()
433 nlmsg_free(reply); in ovs_meter_cmd_del()