Lines Matching full:devlink
3 * include/net/devlink.h - Network physical device Netlink interface
20 #include <uapi/linux/devlink.h>
24 struct devlink;
36 * struct devlink_port_pci_pf_attrs - devlink port's PCI PF attributes
38 * @pf: associated PCI function number for the devlink port instance
48 * struct devlink_port_pci_vf_attrs - devlink port's PCI VF attributes
50 * @pf: associated PCI function number for the devlink port instance
51 * @vf: associated PCI VF number of a PF for the devlink port instance;
63 * struct devlink_port_pci_sf_attrs - devlink port's PCI SF attributes
65 * @sf: associated SF number of a PF for the devlink port instance
66 * @pf: associated PCI function number for the devlink port instance
77 * struct devlink_port_attrs - devlink port object
109 struct devlink *devlink; member
133 struct devlink *devlink; member
324 * @cmd: devlink command
461 * struct devlink_flash_notify - devlink dev flash notify data
480 * struct devlink_param - devlink configuration parameter data
481 * @id: devlink parameter id number
505 int (*get)(struct devlink *devlink, u32 id,
508 int (*set)(struct devlink *devlink, u32 id,
511 int (*validate)(struct devlink *devlink, u32 id,
514 int (*get_default)(struct devlink *devlink, u32 id,
517 int (*reset_default)(struct devlink *devlink, u32 id,
750 * The function will be called while the devlink instance lock is
755 * while the devlink instance lock is held.
761 int (*snapshot)(struct devlink *devlink,
765 int (*read)(struct devlink *devlink,
778 * The function will be called while the devlink instance lock is
783 * while the devlink instance lock is held.
870 * with devlink.
890 * with devlink.
913 * devlink.
926 * Documentation/networking/devlink/devlink-trap.rst
1030 * Documentation/networking/devlink/devlink-trap.rst
1381 int (*reload_down)(struct devlink *devlink, bool netns_change,
1385 int (*reload_up)(struct devlink *devlink, enum devlink_reload_action action,
1388 int (*sb_pool_get)(struct devlink *devlink, unsigned int sb_index,
1391 int (*sb_pool_set)(struct devlink *devlink, unsigned int sb_index,
1412 int (*sb_occ_snapshot)(struct devlink *devlink,
1414 int (*sb_occ_max_clear)(struct devlink *devlink,
1425 int (*eswitch_mode_get)(struct devlink *devlink, u16 *p_mode);
1426 int (*eswitch_mode_set)(struct devlink *devlink, u16 mode,
1428 int (*eswitch_inline_mode_get)(struct devlink *devlink, u8 *p_inline_mode);
1429 int (*eswitch_inline_mode_set)(struct devlink *devlink, u8 inline_mode,
1431 int (*eswitch_encap_mode_get)(struct devlink *devlink,
1433 int (*eswitch_encap_mode_set)(struct devlink *devlink,
1436 int (*info_get)(struct devlink *devlink, struct devlink_info_req *req,
1445 int (*flash_update)(struct devlink *devlink,
1456 int (*trap_init)(struct devlink *devlink,
1464 void (*trap_fini)(struct devlink *devlink,
1469 int (*trap_action_set)(struct devlink *devlink,
1479 int (*trap_group_init)(struct devlink *devlink,
1487 int (*trap_group_set)(struct devlink *devlink,
1497 int (*trap_group_action_set)(struct devlink *devlink,
1505 * that have been dropped, and cannot be passed to the devlink
1508 int (*trap_drop_counter_get)(struct devlink *devlink,
1517 int (*trap_policer_init)(struct devlink *devlink,
1525 void (*trap_policer_fini)(struct devlink *devlink,
1530 int (*trap_policer_set)(struct devlink *devlink,
1540 int (*trap_policer_counter_get)(struct devlink *devlink,
1545 * @devlink: Devlink instance
1548 * @devlink_port: pointer to store new devlink port pointer
1550 * Devlink core will call this device driver function upon user request
1555 * - On success, drivers must register a port with devlink core
1559 int (*port_new)(struct devlink *devlink,
1612 * @devlink: devlink instance
1618 bool (*selftest_check)(struct devlink *devlink, unsigned int id,
1622 * @devlink: devlink instance
1629 (*selftest_run)(struct devlink *devlink, unsigned int id,
1633 void *devlink_priv(struct devlink *devlink);
1634 struct devlink *priv_to_devlink(void *priv);
1635 struct device *devlink_to_dev(const struct devlink *devlink);
1636 const char *devlink_bus_name(const struct devlink *devlink);
1637 const char *devlink_dev_name(const struct devlink *devlink);
1638 const char *devlink_dev_driver_name(const struct devlink *devlink);
1640 /* Devlink instance explicit locking */
1641 void devl_lock(struct devlink *devlink);
1642 int devl_trylock(struct devlink *devlink);
1643 void devl_unlock(struct devlink *devlink);
1644 void devl_assert_locked(struct devlink *devlink);
1645 bool devl_lock_is_held(struct devlink *devlink);
1646 DEFINE_GUARD(devl, struct devlink *, devl_lock(_T), devl_unlock(_T));
1650 struct net *devlink_net(const struct devlink *devlink);
1652 * devlink instances in other namespaces than init_net.
1656 struct devlink *devlink_alloc_ns(const struct devlink_ops *ops,
1659 static inline struct devlink *devlink_alloc(const struct devlink_ops *ops, in devlink_alloc()
1666 int devl_register(struct devlink *devlink);
1667 void devl_unregister(struct devlink *devlink);
1668 void devlink_register(struct devlink *devlink);
1669 void devlink_unregister(struct devlink *devlink);
1670 void devlink_free(struct devlink *devlink);
1672 struct devlink *devlink_shd_get(const char *id,
1676 void devlink_shd_put(struct devlink *devlink);
1677 void *devlink_shd_get_priv(struct devlink *devlink);
1686 * Devlink core calls this upon user request to delete
1691 * by the devlink port.
1694 * address of a function managed by the devlink port.
1698 * managed by the devlink port.
1702 * by the devlink port.
1706 * of a function managed by the devlink port.
1710 * a function managed by the devlink port.
1714 * function managed by the devlink port.
1718 * by the devlink port.
1722 * capability of a function managed by the devlink
1727 * function managed by the devlink port.
1731 * capability of a function managed by the devlink
1736 * function managed by the devlink port.
1740 * managed by the devlink port.
1744 * of a function managed by the devlink port.
1750 int (*port_split)(struct devlink *devlink, struct devlink_port *port,
1752 int (*port_unsplit)(struct devlink *devlink, struct devlink_port *port,
1756 int (*port_del)(struct devlink *devlink, struct devlink_port *port,
1802 void devlink_port_init(struct devlink *devlink,
1806 int devl_port_register_with_ops(struct devlink *devlink,
1811 static inline int devl_port_register(struct devlink *devlink, in devl_port_register() argument
1815 return devl_port_register_with_ops(devlink, devlink_port, in devl_port_register()
1819 int devlink_port_register_with_ops(struct devlink *devlink,
1824 static inline int devlink_port_register(struct devlink *devlink, in devlink_port_register() argument
1828 return devlink_port_register_with_ops(devlink, devlink_port, in devlink_port_register()
1848 struct devlink *fn_devlink);
1850 devl_rate_node_create(struct devlink *devlink, void *priv, char *node_name,
1856 void devl_rate_nodes_destroy(struct devlink *devlink);
1860 devl_linecard_create(struct devlink *devlink, unsigned int linecard_index,
1870 struct devlink *nested_devlink);
1871 int devl_sb_register(struct devlink *devlink, unsigned int sb_index,
1875 int devlink_sb_register(struct devlink *devlink, unsigned int sb_index,
1879 void devl_sb_unregister(struct devlink *devlink, unsigned int sb_index);
1880 void devlink_sb_unregister(struct devlink *devlink, unsigned int sb_index);
1881 int devl_dpipe_table_register(struct devlink *devlink,
1885 void devl_dpipe_table_unregister(struct devlink *devlink,
1887 void devl_dpipe_headers_register(struct devlink *devlink,
1889 void devl_dpipe_headers_unregister(struct devlink *devlink);
1890 bool devlink_dpipe_table_counter_enabled(struct devlink *devlink,
1905 int devl_resource_register(struct devlink *devlink,
1911 void devl_resources_unregister(struct devlink *devlink);
1912 void devlink_resources_unregister(struct devlink *devlink);
1913 int devl_resource_size_get(struct devlink *devlink,
1923 int devl_dpipe_table_resource_set(struct devlink *devlink,
1926 void devl_resource_occ_get_register(struct devlink *devlink,
1930 void devl_resource_occ_get_unregister(struct devlink *devlink,
1932 int devl_params_register(struct devlink *devlink,
1935 int devlink_params_register(struct devlink *devlink,
1938 void devl_params_unregister(struct devlink *devlink,
1941 void devlink_params_unregister(struct devlink *devlink,
1944 int devl_param_driverinit_value_get(struct devlink *devlink, u32 param_id,
1946 void devl_param_driverinit_value_set(struct devlink *devlink, u32 param_id,
1948 void devl_param_value_changed(struct devlink *devlink, u32 param_id);
1949 struct devlink_region *devl_region_create(struct devlink *devlink,
1954 devlink_region_create(struct devlink *devlink,
1963 int devlink_region_snapshot_id_get(struct devlink *devlink, u32 *id);
1964 void devlink_region_snapshot_id_put(struct devlink *devlink, u32 id);
2039 devl_health_reporter_create(struct devlink *devlink,
2044 devlink_health_reporter_create(struct devlink *devlink,
2064 int devl_nested_devlink_set(struct devlink *devlink,
2065 struct devlink *nested_devlink);
2066 bool devlink_is_reload_failed(const struct devlink *devlink);
2067 void devlink_remote_reload_actions_performed(struct devlink *devlink,
2071 void devlink_flash_update_status_notify(struct devlink *devlink,
2076 void devlink_flash_update_timeout_notify(struct devlink *devlink,
2081 int devl_traps_register(struct devlink *devlink,
2084 int devlink_traps_register(struct devlink *devlink,
2087 void devl_traps_unregister(struct devlink *devlink,
2090 void devlink_traps_unregister(struct devlink *devlink,
2093 void devlink_trap_report(struct devlink *devlink, struct sk_buff *skb,
2097 int devl_trap_groups_register(struct devlink *devlink,
2100 int devlink_trap_groups_register(struct devlink *devlink,
2103 void devl_trap_groups_unregister(struct devlink *devlink,
2106 void devlink_trap_groups_unregister(struct devlink *devlink,
2110 devl_trap_policers_register(struct devlink *devlink,
2114 devl_trap_policers_unregister(struct devlink *devlink,
2120 struct devlink *__must_check devlink_try_get(struct devlink *devlink);
2121 void devlink_put(struct devlink *devlink);
2123 void devlink_compat_running_version(struct devlink *devlink,
2125 int devlink_compat_flash_update(struct devlink *devlink, const char *file_name);
2137 static inline struct devlink *devlink_try_get(struct devlink *devlink) in devlink_try_get() argument
2142 static inline void devlink_put(struct devlink *devlink) in devlink_put() argument
2147 devlink_compat_running_version(struct devlink *devlink, char *buf, size_t len) in devlink_compat_running_version() argument
2152 devlink_compat_flash_update(struct devlink *devlink, const char *file_name) in devlink_compat_flash_update() argument