Lines Matching full:skb
60 int devlink_dpipe_match_put(struct sk_buff *skb, in devlink_dpipe_match_put() argument
67 match_attr = nla_nest_start_noflag(skb, DEVLINK_ATTR_DPIPE_MATCH); in devlink_dpipe_match_put()
71 if (nla_put_u32(skb, DEVLINK_ATTR_DPIPE_MATCH_TYPE, match->type) || in devlink_dpipe_match_put()
72 nla_put_u32(skb, DEVLINK_ATTR_DPIPE_HEADER_INDEX, match->header_index) || in devlink_dpipe_match_put()
73 nla_put_u32(skb, DEVLINK_ATTR_DPIPE_HEADER_ID, header->id) || in devlink_dpipe_match_put()
74 nla_put_u32(skb, DEVLINK_ATTR_DPIPE_FIELD_ID, field->id) || in devlink_dpipe_match_put()
75 nla_put_u8(skb, DEVLINK_ATTR_DPIPE_HEADER_GLOBAL, header->global)) in devlink_dpipe_match_put()
78 nla_nest_end(skb, match_attr); in devlink_dpipe_match_put()
82 nla_nest_cancel(skb, match_attr); in devlink_dpipe_match_put()
88 struct sk_buff *skb) in devlink_dpipe_matches_put() argument
92 matches_attr = nla_nest_start_noflag(skb, in devlink_dpipe_matches_put()
97 if (table->table_ops->matches_dump(table->priv, skb)) in devlink_dpipe_matches_put()
100 nla_nest_end(skb, matches_attr); in devlink_dpipe_matches_put()
104 nla_nest_cancel(skb, matches_attr); in devlink_dpipe_matches_put()
108 int devlink_dpipe_action_put(struct sk_buff *skb, in devlink_dpipe_action_put() argument
115 action_attr = nla_nest_start_noflag(skb, DEVLINK_ATTR_DPIPE_ACTION); in devlink_dpipe_action_put()
119 if (nla_put_u32(skb, DEVLINK_ATTR_DPIPE_ACTION_TYPE, action->type) || in devlink_dpipe_action_put()
120 nla_put_u32(skb, DEVLINK_ATTR_DPIPE_HEADER_INDEX, action->header_index) || in devlink_dpipe_action_put()
121 nla_put_u32(skb, DEVLINK_ATTR_DPIPE_HEADER_ID, header->id) || in devlink_dpipe_action_put()
122 nla_put_u32(skb, DEVLINK_ATTR_DPIPE_FIELD_ID, field->id) || in devlink_dpipe_action_put()
123 nla_put_u8(skb, DEVLINK_ATTR_DPIPE_HEADER_GLOBAL, header->global)) in devlink_dpipe_action_put()
126 nla_nest_end(skb, action_attr); in devlink_dpipe_action_put()
130 nla_nest_cancel(skb, action_attr); in devlink_dpipe_action_put()
136 struct sk_buff *skb) in devlink_dpipe_actions_put() argument
140 actions_attr = nla_nest_start_noflag(skb, in devlink_dpipe_actions_put()
145 if (table->table_ops->actions_dump(table->priv, skb)) in devlink_dpipe_actions_put()
148 nla_nest_end(skb, actions_attr); in devlink_dpipe_actions_put()
152 nla_nest_cancel(skb, actions_attr); in devlink_dpipe_actions_put()
156 static int devlink_dpipe_table_put(struct sk_buff *skb, in devlink_dpipe_table_put() argument
163 table_attr = nla_nest_start_noflag(skb, DEVLINK_ATTR_DPIPE_TABLE); in devlink_dpipe_table_put()
167 if (nla_put_string(skb, DEVLINK_ATTR_DPIPE_TABLE_NAME, table->name) || in devlink_dpipe_table_put()
168 devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_TABLE_SIZE, table_size)) in devlink_dpipe_table_put()
170 if (nla_put_u8(skb, DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED, in devlink_dpipe_table_put()
175 if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID, in devlink_dpipe_table_put()
177 devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS, in devlink_dpipe_table_put()
181 if (devlink_dpipe_matches_put(table, skb)) in devlink_dpipe_table_put()
184 if (devlink_dpipe_actions_put(table, skb)) in devlink_dpipe_table_put()
187 nla_nest_end(skb, table_attr); in devlink_dpipe_table_put()
191 nla_nest_cancel(skb, table_attr); in devlink_dpipe_table_put()
219 struct sk_buff *skb = NULL; in devlink_dpipe_tables_fill() local
229 err = devlink_dpipe_send_and_alloc_skb(&skb, info); in devlink_dpipe_tables_fill()
233 hdr = genlmsg_put(skb, info->snd_portid, info->snd_seq, in devlink_dpipe_tables_fill()
236 nlmsg_free(skb); in devlink_dpipe_tables_fill()
240 if (devlink_nl_put_handle(skb, devlink)) in devlink_dpipe_tables_fill()
242 tables_attr = nla_nest_start_noflag(skb, DEVLINK_ATTR_DPIPE_TABLES); in devlink_dpipe_tables_fill()
250 err = devlink_dpipe_table_put(skb, table); in devlink_dpipe_tables_fill()
259 err = devlink_dpipe_table_put(skb, table); in devlink_dpipe_tables_fill()
267 nla_nest_end(skb, tables_attr); in devlink_dpipe_tables_fill()
268 genlmsg_end(skb, hdr); in devlink_dpipe_tables_fill()
273 nlh = nlmsg_put(skb, info->snd_portid, info->snd_seq, in devlink_dpipe_tables_fill()
276 err = devlink_dpipe_send_and_alloc_skb(&skb, info); in devlink_dpipe_tables_fill()
282 return genlmsg_reply(skb, info); in devlink_dpipe_tables_fill()
287 nlmsg_free(skb); in devlink_dpipe_tables_fill()
291 int devlink_nl_dpipe_table_get_doit(struct sk_buff *skb, struct genl_info *info) in devlink_nl_dpipe_table_get_doit() argument
304 static int devlink_dpipe_value_put(struct sk_buff *skb, in devlink_dpipe_value_put() argument
307 if (nla_put(skb, DEVLINK_ATTR_DPIPE_VALUE, in devlink_dpipe_value_put()
311 if (nla_put(skb, DEVLINK_ATTR_DPIPE_VALUE_MASK, in devlink_dpipe_value_put()
315 if (nla_put_u32(skb, DEVLINK_ATTR_DPIPE_VALUE_MAPPING, in devlink_dpipe_value_put()
321 static int devlink_dpipe_action_value_put(struct sk_buff *skb, in devlink_dpipe_action_value_put() argument
326 if (devlink_dpipe_action_put(skb, value->action)) in devlink_dpipe_action_value_put()
328 if (devlink_dpipe_value_put(skb, value)) in devlink_dpipe_action_value_put()
333 static int devlink_dpipe_action_values_put(struct sk_buff *skb, in devlink_dpipe_action_values_put() argument
342 action_attr = nla_nest_start_noflag(skb, in devlink_dpipe_action_values_put()
346 err = devlink_dpipe_action_value_put(skb, &values[i]); in devlink_dpipe_action_values_put()
349 nla_nest_end(skb, action_attr); in devlink_dpipe_action_values_put()
354 nla_nest_cancel(skb, action_attr); in devlink_dpipe_action_values_put()
358 static int devlink_dpipe_match_value_put(struct sk_buff *skb, in devlink_dpipe_match_value_put() argument
363 if (devlink_dpipe_match_put(skb, value->match)) in devlink_dpipe_match_value_put()
365 if (devlink_dpipe_value_put(skb, value)) in devlink_dpipe_match_value_put()
370 static int devlink_dpipe_match_values_put(struct sk_buff *skb, in devlink_dpipe_match_values_put() argument
379 match_attr = nla_nest_start_noflag(skb, in devlink_dpipe_match_values_put()
383 err = devlink_dpipe_match_value_put(skb, &values[i]); in devlink_dpipe_match_values_put()
386 nla_nest_end(skb, match_attr); in devlink_dpipe_match_values_put()
391 nla_nest_cancel(skb, match_attr); in devlink_dpipe_match_values_put()
395 static int devlink_dpipe_entry_put(struct sk_buff *skb, in devlink_dpipe_entry_put() argument
401 entry_attr = nla_nest_start_noflag(skb, DEVLINK_ATTR_DPIPE_ENTRY); in devlink_dpipe_entry_put()
405 if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_ENTRY_INDEX, entry->index)) in devlink_dpipe_entry_put()
408 if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_ENTRY_COUNTER, in devlink_dpipe_entry_put()
412 matches_attr = nla_nest_start_noflag(skb, in devlink_dpipe_entry_put()
417 err = devlink_dpipe_match_values_put(skb, entry->match_values, in devlink_dpipe_entry_put()
420 nla_nest_cancel(skb, matches_attr); in devlink_dpipe_entry_put()
423 nla_nest_end(skb, matches_attr); in devlink_dpipe_entry_put()
425 actions_attr = nla_nest_start_noflag(skb, in devlink_dpipe_entry_put()
430 err = devlink_dpipe_action_values_put(skb, entry->action_values, in devlink_dpipe_entry_put()
433 nla_nest_cancel(skb, actions_attr); in devlink_dpipe_entry_put()
436 nla_nest_end(skb, actions_attr); in devlink_dpipe_entry_put()
438 nla_nest_end(skb, entry_attr); in devlink_dpipe_entry_put()
445 nla_nest_cancel(skb, entry_attr); in devlink_dpipe_entry_put()
468 err = devlink_dpipe_send_and_alloc_skb(&dump_ctx->skb, in devlink_dpipe_entry_ctx_prepare()
473 dump_ctx->hdr = genlmsg_put(dump_ctx->skb, in devlink_dpipe_entry_ctx_prepare()
482 if (devlink_nl_put_handle(dump_ctx->skb, devlink)) in devlink_dpipe_entry_ctx_prepare()
484 dump_ctx->nest = nla_nest_start_noflag(dump_ctx->skb, in devlink_dpipe_entry_ctx_prepare()
491 nlmsg_free(dump_ctx->skb); in devlink_dpipe_entry_ctx_prepare()
499 return devlink_dpipe_entry_put(dump_ctx->skb, entry); in devlink_dpipe_entry_ctx_append()
505 nla_nest_end(dump_ctx->skb, dump_ctx->nest); in devlink_dpipe_entry_ctx_close()
506 genlmsg_end(dump_ctx->skb, dump_ctx->hdr); in devlink_dpipe_entry_ctx_close()
541 dump_ctx.skb = NULL; in devlink_dpipe_entries_fill()
552 nlh = nlmsg_put(dump_ctx.skb, info->snd_portid, info->snd_seq, in devlink_dpipe_entries_fill()
555 err = devlink_dpipe_send_and_alloc_skb(&dump_ctx.skb, info); in devlink_dpipe_entries_fill()
560 return genlmsg_reply(dump_ctx.skb, info); in devlink_dpipe_entries_fill()
563 int devlink_nl_dpipe_entries_get_doit(struct sk_buff *skb, in devlink_nl_dpipe_entries_get_doit() argument
586 static int devlink_dpipe_fields_put(struct sk_buff *skb, in devlink_dpipe_fields_put() argument
595 field_attr = nla_nest_start_noflag(skb, in devlink_dpipe_fields_put()
599 if (nla_put_string(skb, DEVLINK_ATTR_DPIPE_FIELD_NAME, field->name) || in devlink_dpipe_fields_put()
600 nla_put_u32(skb, DEVLINK_ATTR_DPIPE_FIELD_ID, field->id) || in devlink_dpipe_fields_put()
601 nla_put_u32(skb, DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH, field->bitwidth) || in devlink_dpipe_fields_put()
602 nla_put_u32(skb, DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE, field->mapping_type)) in devlink_dpipe_fields_put()
604 nla_nest_end(skb, field_attr); in devlink_dpipe_fields_put()
609 nla_nest_cancel(skb, field_attr); in devlink_dpipe_fields_put()
613 static int devlink_dpipe_header_put(struct sk_buff *skb, in devlink_dpipe_header_put() argument
619 header_attr = nla_nest_start_noflag(skb, DEVLINK_ATTR_DPIPE_HEADER); in devlink_dpipe_header_put()
623 if (nla_put_string(skb, DEVLINK_ATTR_DPIPE_HEADER_NAME, header->name) || in devlink_dpipe_header_put()
624 nla_put_u32(skb, DEVLINK_ATTR_DPIPE_HEADER_ID, header->id) || in devlink_dpipe_header_put()
625 nla_put_u8(skb, DEVLINK_ATTR_DPIPE_HEADER_GLOBAL, header->global)) in devlink_dpipe_header_put()
628 fields_attr = nla_nest_start_noflag(skb, in devlink_dpipe_header_put()
633 err = devlink_dpipe_fields_put(skb, header); in devlink_dpipe_header_put()
635 nla_nest_cancel(skb, fields_attr); in devlink_dpipe_header_put()
638 nla_nest_end(skb, fields_attr); in devlink_dpipe_header_put()
639 nla_nest_end(skb, header_attr); in devlink_dpipe_header_put()
644 nla_nest_cancel(skb, header_attr); in devlink_dpipe_header_put()
655 struct sk_buff *skb = NULL; in devlink_dpipe_headers_fill() local
663 err = devlink_dpipe_send_and_alloc_skb(&skb, info); in devlink_dpipe_headers_fill()
667 hdr = genlmsg_put(skb, info->snd_portid, info->snd_seq, in devlink_dpipe_headers_fill()
670 nlmsg_free(skb); in devlink_dpipe_headers_fill()
674 if (devlink_nl_put_handle(skb, devlink)) in devlink_dpipe_headers_fill()
676 headers_attr = nla_nest_start_noflag(skb, DEVLINK_ATTR_DPIPE_HEADERS); in devlink_dpipe_headers_fill()
682 err = devlink_dpipe_header_put(skb, dpipe_headers->headers[i]); in devlink_dpipe_headers_fill()
690 nla_nest_end(skb, headers_attr); in devlink_dpipe_headers_fill()
691 genlmsg_end(skb, hdr); in devlink_dpipe_headers_fill()
696 nlh = nlmsg_put(skb, info->snd_portid, info->snd_seq, in devlink_dpipe_headers_fill()
699 err = devlink_dpipe_send_and_alloc_skb(&skb, info); in devlink_dpipe_headers_fill()
704 return genlmsg_reply(skb, info); in devlink_dpipe_headers_fill()
709 nlmsg_free(skb); in devlink_dpipe_headers_fill()
713 int devlink_nl_dpipe_headers_get_doit(struct sk_buff *skb, in devlink_nl_dpipe_headers_get_doit() argument
747 int devlink_nl_dpipe_table_counters_set_doit(struct sk_buff *skb, in devlink_nl_dpipe_table_counters_set_doit() argument