Lines Matching defs:trap

6628  * struct devlink_trap_policer_item - Packet trap policer attributes.
6629 * @policer: Immutable packet trap policer attributes.
6634 * Describes packet trap policer attributes. Created by devlink during trap
6645 * struct devlink_trap_group_item - Packet trap group attributes.
6646 * @group: Immutable packet trap group attributes.
6651 * Describes packet trap group attributes. Created by devlink during trap
6662 * struct devlink_trap_item - Packet trap attributes.
6663 * @trap: Immutable packet trap attributes.
6670 * Describes both mutable and immutable packet trap attributes. Created by
6671 * devlink during trap registration and used for all trap related operations.
6674 const struct devlink_trap *trap;
6701 if (!strcmp(trap_item->trap->name, name))
6742 const struct devlink_trap *trap)
6750 if ((trap->metadata_cap & DEVLINK_TRAP_METADATA_TYPE_F_IN_PORT) &&
6753 if ((trap->metadata_cap & DEVLINK_TRAP_METADATA_TYPE_F_FA_COOKIE) &&
6838 if (nla_put_string(msg, DEVLINK_ATTR_TRAP_NAME, trap_item->trap->name))
6841 if (nla_put_u8(msg, DEVLINK_ATTR_TRAP_TYPE, trap_item->trap->type))
6844 if (trap_item->trap->generic &&
6851 err = devlink_trap_metadata_put(msg, trap_item->trap);
6882 NL_SET_ERR_MSG_MOD(extack, "Device did not register this trap");
6950 trap_item->trap->type != DEVLINK_TRAP_TYPE_DROP) {
6955 err = devlink->ops->trap_action_set(devlink, trap_item->trap,
6977 NL_SET_ERR_MSG_MOD(info->extack, "Invalid trap action");
6998 NL_SET_ERR_MSG_MOD(extack, "Device did not register this trap");
7104 NL_SET_ERR_MSG_MOD(extack, "Device did not register this trap group");
7187 trap_item->trap->type != DEVLINK_TRAP_TYPE_DROP)
7220 NL_SET_ERR_MSG_MOD(info->extack, "Invalid trap action");
7258 NL_SET_ERR_MSG_MOD(extack, "Device did not register this trap policer");
7288 NL_SET_ERR_MSG_MOD(extack, "Device did not register this trap group");
7410 NL_SET_ERR_MSG_MOD(extack, "Device did not register this trap policer");
7538 NL_SET_ERR_MSG_MOD(extack, "Device did not register this trap policer");
9549 static int devlink_trap_generic_verify(const struct devlink_trap *trap)
9551 if (trap->id > DEVLINK_TRAP_GENERIC_ID_MAX)
9554 if (strcmp(trap->name, devlink_trap_generic[trap->id].name))
9557 if (trap->type != devlink_trap_generic[trap->id].type)
9563 static int devlink_trap_driver_verify(const struct devlink_trap *trap)
9567 if (trap->id <= DEVLINK_TRAP_GENERIC_ID_MAX)
9571 if (!strcmp(trap->name, devlink_trap_generic[i].name))
9578 static int devlink_trap_verify(const struct devlink_trap *trap)
9580 if (!trap || !trap->name)
9583 if (trap->generic)
9584 return devlink_trap_generic_verify(trap);
9586 return devlink_trap_driver_verify(trap);
9655 u16 group_id = trap_item->trap->init_group_id;
9693 const struct devlink_trap *trap, void *priv)
9698 if (devlink_trap_item_lookup(devlink, trap->name))
9711 trap_item->trap = trap;
9712 trap_item->action = trap->init_action;
9719 err = devlink->ops->trap_init(devlink, trap, trap_item);
9737 const struct devlink_trap *trap)
9741 trap_item = devlink_trap_item_lookup(devlink, trap->name);
9748 devlink->ops->trap_fini(devlink, trap, trap_item);
9754 const struct devlink_trap *trap)
9758 trap_item = devlink_trap_item_lookup(devlink, trap->name);
9762 devlink->ops->trap_action_set(devlink, trap, DEVLINK_TRAP_ACTION_DROP,
9787 const struct devlink_trap *trap = &traps[i];
9789 err = devlink_trap_verify(trap);
9793 err = devlink_trap_register(devlink, trap, priv);
9854 metadata->trap_name = trap_item->trap->name;
9857 metadata->trap_type = trap_item->trap->type;
9990 * devlink_trap_groups_register - Register packet trap groups with devlink.
9992 * @groups: Packet trap groups.
9993 * @groups_count: Count of provided packet trap groups.
10029 * devlink_trap_groups_unregister - Unregister packet trap groups from devlink.
10031 * @groups: Packet trap groups.
10032 * @groups_count: Count of provided packet trap groups.
10127 * devlink_trap_policers_register - Register packet trap policers with devlink.
10129 * @policers: Packet trap policers.
10130 * @policers_count: Count of provided packet trap policers.
10170 * devlink_trap_policers_unregister - Unregister packet trap policers from devlink.
10172 * @policers: Packet trap policers.
10173 * @policers_count: Count of provided packet trap policers.