devlink_linux.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package nl
  2. // All the following constants are coming from:
  3. // https://github.com/torvalds/linux/blob/master/include/uapi/linux/devlink.h
  4. const (
  5. GENL_DEVLINK_VERSION = 1
  6. GENL_DEVLINK_NAME = "devlink"
  7. )
  8. const (
  9. DEVLINK_CMD_GET = 1
  10. DEVLINK_CMD_PORT_GET = 5
  11. DEVLINK_CMD_PORT_SET = 6
  12. DEVLINK_CMD_PORT_NEW = 7
  13. DEVLINK_CMD_PORT_DEL = 8
  14. DEVLINK_CMD_ESWITCH_GET = 29
  15. DEVLINK_CMD_ESWITCH_SET = 30
  16. DEVLINK_CMD_RESOURCE_DUMP = 36
  17. DEVLINK_CMD_PARAM_GET = 38
  18. DEVLINK_CMD_PARAM_SET = 39
  19. DEVLINK_CMD_INFO_GET = 51
  20. )
  21. const (
  22. DEVLINK_ATTR_BUS_NAME = 1
  23. DEVLINK_ATTR_DEV_NAME = 2
  24. DEVLINK_ATTR_PORT_INDEX = 3
  25. DEVLINK_ATTR_PORT_TYPE = 4
  26. DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 6
  27. DEVLINK_ATTR_PORT_NETDEV_NAME = 7
  28. DEVLINK_ATTR_PORT_IBDEV_NAME = 8
  29. DEVLINK_ATTR_ESWITCH_MODE = 25
  30. DEVLINK_ATTR_ESWITCH_INLINE_MODE = 26
  31. DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 62
  32. DEVLINK_ATTR_RESOURCE_LIST = 63 /* nested */
  33. DEVLINK_ATTR_RESOURCE = 64 /* nested */
  34. DEVLINK_ATTR_RESOURCE_NAME = 65 /* string */
  35. DEVLINK_ATTR_RESOURCE_ID = 66 /* u64 */
  36. DEVLINK_ATTR_RESOURCE_SIZE = 67 /* u64 */
  37. DEVLINK_ATTR_RESOURCE_SIZE_NEW = 68 /* u64 */
  38. DEVLINK_ATTR_RESOURCE_SIZE_VALID = 69 /* u8 */
  39. DEVLINK_ATTR_RESOURCE_SIZE_MIN = 70 /* u64 */
  40. DEVLINK_ATTR_RESOURCE_SIZE_MAX = 71 /* u64 */
  41. DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 72 /* u64 */
  42. DEVLINK_ATTR_RESOURCE_UNIT = 73 /* u8 */
  43. DEVLINK_ATTR_RESOURCE_OCC = 74 /* u64 */
  44. DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 75 /* u64 */
  45. DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 76 /* u64 */
  46. DEVLINK_ATTR_PORT_FLAVOUR = 77
  47. DEVLINK_ATTR_INFO_DRIVER_NAME = 98
  48. DEVLINK_ATTR_INFO_SERIAL_NUMBER = 99
  49. DEVLINK_ATTR_INFO_VERSION_FIXED = 100
  50. DEVLINK_ATTR_INFO_VERSION_RUNNING = 101
  51. DEVLINK_ATTR_INFO_VERSION_STORED = 102
  52. DEVLINK_ATTR_INFO_VERSION_NAME = 103
  53. DEVLINK_ATTR_INFO_VERSION_VALUE = 104
  54. DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 127
  55. DEVLINK_ATTR_PORT_FUNCTION = 145
  56. DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 150
  57. DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 164
  58. )
  59. const (
  60. DEVLINK_ESWITCH_MODE_LEGACY = 0
  61. DEVLINK_ESWITCH_MODE_SWITCHDEV = 1
  62. )
  63. const (
  64. DEVLINK_ESWITCH_INLINE_MODE_NONE = 0
  65. DEVLINK_ESWITCH_INLINE_MODE_LINK = 1
  66. DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 2
  67. DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 3
  68. )
  69. const (
  70. DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0
  71. DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1
  72. )
  73. const (
  74. DEVLINK_PORT_FLAVOUR_PHYSICAL = 0
  75. DEVLINK_PORT_FLAVOUR_CPU = 1
  76. DEVLINK_PORT_FLAVOUR_DSA = 2
  77. DEVLINK_PORT_FLAVOUR_PCI_PF = 3
  78. DEVLINK_PORT_FLAVOUR_PCI_VF = 4
  79. DEVLINK_PORT_FLAVOUR_VIRTUAL = 5
  80. DEVLINK_PORT_FLAVOUR_UNUSED = 6
  81. DEVLINK_PORT_FLAVOUR_PCI_SF = 7
  82. )
  83. const (
  84. DEVLINK_PORT_TYPE_NOTSET = 0
  85. DEVLINK_PORT_TYPE_AUTO = 1
  86. DEVLINK_PORT_TYPE_ETH = 2
  87. DEVLINK_PORT_TYPE_IB = 3
  88. )
  89. const (
  90. DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 1
  91. DEVLINK_PORT_FN_ATTR_STATE = 2
  92. DEVLINK_PORT_FN_ATTR_OPSTATE = 3
  93. )
  94. const (
  95. DEVLINK_PORT_FN_STATE_INACTIVE = 0
  96. DEVLINK_PORT_FN_STATE_ACTIVE = 1
  97. )
  98. const (
  99. DEVLINK_PORT_FN_OPSTATE_DETACHED = 0
  100. DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1
  101. )
  102. const (
  103. DEVLINK_RESOURCE_UNIT_ENTRY uint8 = 0
  104. )
  105. const (
  106. DEVLINK_ATTR_PARAM = iota + 80 /* nested */
  107. DEVLINK_ATTR_PARAM_NAME /* string */
  108. DEVLINK_ATTR_PARAM_GENERIC /* flag */
  109. DEVLINK_ATTR_PARAM_TYPE /* u8 */
  110. DEVLINK_ATTR_PARAM_VALUES_LIST /* nested */
  111. DEVLINK_ATTR_PARAM_VALUE /* nested */
  112. DEVLINK_ATTR_PARAM_VALUE_DATA /* dynamic */
  113. DEVLINK_ATTR_PARAM_VALUE_CMODE /* u8 */
  114. )
  115. const (
  116. DEVLINK_PARAM_TYPE_U8 = 1
  117. DEVLINK_PARAM_TYPE_U16 = 2
  118. DEVLINK_PARAM_TYPE_U32 = 3
  119. DEVLINK_PARAM_TYPE_STRING = 5
  120. DEVLINK_PARAM_TYPE_BOOL = 6
  121. )
  122. const (
  123. DEVLINK_PARAM_CMODE_RUNTIME = iota
  124. DEVLINK_PARAM_CMODE_DRIVERINIT
  125. DEVLINK_PARAM_CMODE_PERMANENT
  126. )