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
70 DEVLINK_CMD_DPIPE_ENTRIES_GET,70 DEVLINK_CMD_DPIPE_ENTRIES_GET,
71 DEVLINK_CMD_DPIPE_HEADERS_GET,71 DEVLINK_CMD_DPIPE_HEADERS_GET,
72 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET,72 DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET,
73 DEVLINK_CMD_RESOURCE_SET,
74 DEVLINK_CMD_RESOURCE_DUMP,
73 75
74 /* add new commands above here */76 /* add new commands above here */
75 __DEVLINK_CMD_MAX,77 __DEVLINK_CMD_MAX,
@@ -202,6 +204,18 @@ enum devlink_attr { · 126 unmodified lines
202 DEVLINK_ATTR_PAD,204 DEVLINK_ATTR_PAD,
203 205
204 DEVLINK_ATTR_ESWITCH_ENCAP_MODE, /* u8 */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 /* add new attributes above here, update the policy in devlink.c */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 DEVLINK_DPIPE_HEADER_IPV6,259 DEVLINK_DPIPE_HEADER_IPV6,
246};260};
247 261
262enum devlink_resource_unit {
263 DEVLINK_RESOURCE_UNIT_ENTRY,
264};
265
248#endif /* _UAPI_LINUX_DEVLINK_H_ */266#endif /* _UAPI_LINUX_DEVLINK_H_ */