Lines Matching defs:trap_item

88 	struct devlink_trap_item *trap_item;
90 list_for_each_entry(trap_item, &devlink->trap_list, list) {
91 if (!strcmp(trap_item->trap->name, name))
92 return trap_item;
212 const struct devlink_trap_item *trap_item)
221 trap_item->trap,
227 devlink_trap_stats_read(trap_item->stats, &stats);
258 const struct devlink_trap_item *trap_item,
262 struct devlink_trap_group_item *group_item = trap_item->group_item;
277 if (nla_put_string(msg, DEVLINK_ATTR_TRAP_NAME, trap_item->trap->name))
280 if (nla_put_u8(msg, DEVLINK_ATTR_TRAP_TYPE, trap_item->trap->type))
283 if (trap_item->trap->generic &&
287 if (nla_put_u8(msg, DEVLINK_ATTR_TRAP_ACTION, trap_item->action))
290 err = devlink_trap_metadata_put(msg, trap_item->trap);
294 err = devlink_trap_stats_put(msg, devlink, trap_item);
311 struct devlink_trap_item *trap_item;
318 trap_item = devlink_trap_item_get_from_info(devlink, info);
319 if (!trap_item) {
328 err = devlink_nl_trap_fill(msg, devlink, trap_item,
346 struct devlink_trap_item *trap_item;
350 list_for_each_entry(trap_item, &devlink->trap_list, list) {
355 err = devlink_nl_trap_fill(msg, devlink, trap_item,
375 struct devlink_trap_item *trap_item,
381 if (trap_item->action != trap_action &&
382 trap_item->trap->type != DEVLINK_TRAP_TYPE_DROP) {
387 err = devlink->ops->trap_action_set(devlink, trap_item->trap,
392 trap_item->action = trap_action;
398 struct devlink_trap_item *trap_item,
413 return __devlink_trap_action_set(devlink, trap_item, trap_action,
421 struct devlink_trap_item *trap_item;
426 trap_item = devlink_trap_item_get_from_info(devlink, info);
427 if (!trap_item) {
432 return devlink_trap_action_set(devlink, trap_item, info);
592 struct devlink_trap_item *trap_item;
601 list_for_each_entry(trap_item, &devlink->trap_list, list) {
602 if (strcmp(trap_item->group_item->group->name, group_name))
604 if (trap_item->action != trap_action &&
605 trap_item->trap->type != DEVLINK_TRAP_TYPE_DROP)
607 trap_item->action = trap_action;
613 list_for_each_entry(trap_item, &devlink->trap_list, list) {
614 if (strcmp(trap_item->group_item->group->name, group_name))
616 err = __devlink_trap_action_set(devlink, trap_item,
1215 struct devlink_trap_item *trap_item)
1217 u16 group_id = trap_item->trap->init_group_id;
1224 trap_item->group_item = group_item;
1230 const struct devlink_trap_item *trap_item,
1245 err = devlink_nl_trap_fill(msg, devlink, trap_item, cmd, 0, 0, 0);
1257 struct devlink_trap_item *trap_item;
1259 list_for_each_entry(trap_item, &devlink->trap_list, list)
1260 devlink_trap_notify(devlink, trap_item, DEVLINK_CMD_TRAP_NEW);
1265 struct devlink_trap_item *trap_item;
1267 list_for_each_entry_reverse(trap_item, &devlink->trap_list, list)
1268 devlink_trap_notify(devlink, trap_item, DEVLINK_CMD_TRAP_DEL);
1275 struct devlink_trap_item *trap_item;
1281 trap_item = kzalloc(sizeof(*trap_item), GFP_KERNEL);
1282 if (!trap_item)
1285 trap_item->stats = netdev_alloc_pcpu_stats(struct devlink_stats);
1286 if (!trap_item->stats) {
1291 trap_item->trap = trap;
1292 trap_item->action = trap->init_action;
1293 trap_item->priv = priv;
1295 err = devlink_trap_item_group_link(devlink, trap_item);
1299 err = devlink->ops->trap_init(devlink, trap, trap_item);
1303 list_add_tail(&trap_item->list, &devlink->trap_list);
1304 devlink_trap_notify(devlink, trap_item, DEVLINK_CMD_TRAP_NEW);
1310 free_percpu(trap_item->stats);
1312 kfree(trap_item);
1319 struct devlink_trap_item *trap_item;
1321 trap_item = devlink_trap_item_lookup(devlink, trap->name);
1322 if (WARN_ON_ONCE(!trap_item))
1325 devlink_trap_notify(devlink, trap_item, DEVLINK_CMD_TRAP_DEL);
1326 list_del(&trap_item->list);
1328 devlink->ops->trap_fini(devlink, trap, trap_item);
1329 free_percpu(trap_item->stats);
1330 kfree(trap_item);
1336 struct devlink_trap_item *trap_item;
1338 trap_item = devlink_trap_item_lookup(devlink, trap->name);
1339 if (WARN_ON_ONCE(!trap_item))
1344 trap_item->action = DEVLINK_TRAP_ACTION_DROP;
1469 const struct devlink_trap_item *trap_item,
1473 metadata->trap_name = trap_item->trap->name;
1474 metadata->trap_group_name = trap_item->group_item->group->name;
1476 metadata->trap_type = trap_item->trap->type;
1497 struct devlink_trap_item *trap_item = trap_ctx;
1499 devlink_trap_stats_update(trap_item->stats, skb->len);
1500 devlink_trap_stats_update(trap_item->group_item->stats, skb->len);
1505 devlink_trap_report_metadata_set(&metadata, trap_item,
1520 struct devlink_trap_item *trap_item = trap_ctx;
1522 return trap_item->priv;