devlink: Add support for resource abstraction
Add support for hardware resource abstraction over devlink. Each resource is identified via id, furthermore it contains information regarding its size and its related sub resources. Each resource can also provide its current occupancy. In some cases the sizes of some resources can be changed, yet for those changes to take place a hot driver reload may be needed. The reload capability will be introduced in the next patch. Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
2406e7e546
commit
d9f9b9a4d0
@@ -70,6 +70,8 @@ enum devlink_command {
|
||||
DEVLINK_CMD_DPIPE_ENTRIES_GET,
|
||||
DEVLINK_CMD_DPIPE_HEADERS_GET,
|
||||
DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET,
|
||||
DEVLINK_CMD_RESOURCE_SET,
|
||||
DEVLINK_CMD_RESOURCE_DUMP,
|
||||
|
||||
/* add new commands above here */
|
||||
__DEVLINK_CMD_MAX,
|
||||
@@ -202,6 +204,18 @@ enum devlink_attr {
|
||||
DEVLINK_ATTR_PAD,
|
||||
|
||||
DEVLINK_ATTR_ESWITCH_ENCAP_MODE, /* u8 */
|
||||
DEVLINK_ATTR_RESOURCE_LIST, /* nested */
|
||||
DEVLINK_ATTR_RESOURCE, /* nested */
|
||||
DEVLINK_ATTR_RESOURCE_NAME, /* string */
|
||||
DEVLINK_ATTR_RESOURCE_ID, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE_NEW, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE_VALID, /* u8 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE_MIN, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE_MAX, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_SIZE_GRAN, /* u64 */
|
||||
DEVLINK_ATTR_RESOURCE_UNIT, /* u8 */
|
||||
DEVLINK_ATTR_RESOURCE_OCC, /* u64 */
|
||||
|
||||
/* add new attributes above here, update the policy in devlink.c */
|
||||
|
||||
@@ -245,4 +259,8 @@ enum devlink_dpipe_header_id {
|
||||
DEVLINK_DPIPE_HEADER_IPV6,
|
||||
};
|
||||
|
||||
enum devlink_resource_unit {
|
||||
DEVLINK_RESOURCE_UNIT_ENTRY,
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_DEVLINK_H_ */
|
||||
|
Reference in New Issue
Block a user