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.
Showing the changes to include/uapi/linux (1 of 3 files). Show all
Unified · Split
| @@ -70,6 +70,8 @@ enum devlink_command { · 69 unmodified lines | ||
| 70 | 70 | DEVLINK_CMD_DPIPE_ENTRIES_GET, |
| 71 | 71 | DEVLINK_CMD_DPIPE_HEADERS_GET, |
| 72 | 72 | DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET, |
| 73 | + DEVLINK_CMD_RESOURCE_SET, | |
| 74 | + DEVLINK_CMD_RESOURCE_DUMP, | |
| 73 | 75 | |
| 74 | 76 | /* add new commands above here */ |
| 75 | 77 | __DEVLINK_CMD_MAX, |
| @@ -202,6 +204,18 @@ enum devlink_attr { · 126 unmodified lines | ||
| 202 | 204 | DEVLINK_ATTR_PAD, |
| 203 | 205 | |
| 204 | 206 | DEVLINK_ATTR_ESWITCH_ENCAP_MODE, /* u8 */ |
| 207 | + DEVLINK_ATTR_RESOURCE_LIST, /* nested */ | |
| 208 | + DEVLINK_ATTR_RESOURCE, /* nested */ | |
| 209 | + DEVLINK_ATTR_RESOURCE_NAME, /* string */ | |
| 210 | + DEVLINK_ATTR_RESOURCE_ID, /* u64 */ | |
| 211 | + DEVLINK_ATTR_RESOURCE_SIZE, /* u64 */ | |
| 212 | + DEVLINK_ATTR_RESOURCE_SIZE_NEW, /* u64 */ | |
| 213 | + DEVLINK_ATTR_RESOURCE_SIZE_VALID, /* u8 */ | |
| 214 | + DEVLINK_ATTR_RESOURCE_SIZE_MIN, /* u64 */ | |
| 215 | + DEVLINK_ATTR_RESOURCE_SIZE_MAX, /* u64 */ | |
| 216 | + DEVLINK_ATTR_RESOURCE_SIZE_GRAN, /* u64 */ | |
| 217 | + DEVLINK_ATTR_RESOURCE_UNIT, /* u8 */ | |
| 218 | + DEVLINK_ATTR_RESOURCE_OCC, /* u64 */ | |
| 205 | 219 | |
| 206 | 220 | /* add new attributes above here, update the policy in devlink.c */ |
| 207 | 221 | |
| @@ -245,4 +259,8 @@ enum devlink_dpipe_header_id { · 37 unmodified lines | ||
| 245 | 259 | DEVLINK_DPIPE_HEADER_IPV6, |
| 246 | 260 | }; |
| 247 | 261 | |
| 262 | +enum devlink_resource_unit { | |
| 263 | + DEVLINK_RESOURCE_UNIT_ENTRY, | |
| 264 | +}; | |
| 265 | + | |
| 248 | 266 | #endif /* _UAPI_LINUX_DEVLINK_H_ */ |