History

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.

Arkadi Sharshevsky committed 8 years ago

Commit d9f9b9a1 parent 2406e7e3 files · +488 −0Browse files

Showing the changes to include/uapi/linux (1 of 3 files). Show all

Unified · Split

include/uapi/linux/devlink.h+18−0
@@ -70,6 +70,8 @@ enum devlink_command { · 69 unmodified lines
7070 DEVLINK_CMD_DPIPE_ENTRIES_GET,
7171 DEVLINK_CMD_DPIPE_HEADERS_GET,
7272 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET,
73+ DEVLINK_CMD_RESOURCE_SET,
74+ DEVLINK_CMD_RESOURCE_DUMP,
7375
7476 /* add new commands above here */
7577 __DEVLINK_CMD_MAX,
@@ -202,6 +204,18 @@ enum devlink_attr { · 126 unmodified lines
202204 DEVLINK_ATTR_PAD,
203205
204206 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 */
205219
206220 /* add new attributes above here, update the policy in devlink.c */
207221
@@ -245,4 +259,8 @@ enum devlink_dpipe_header_id { · 37 unmodified lines
245259 DEVLINK_DPIPE_HEADER_IPV6,
246260 };
247261
262+enum devlink_resource_unit {
263+ DEVLINK_RESOURCE_UNIT_ENTRY,
264+};
265+
248266 #endif /* _UAPI_LINUX_DEVLINK_H_ */