Lines Matching defs:attrs
122 struct nlattr **attrs)
128 if (!attrs[DEVLINK_ATTR_BUS_NAME] || !attrs[DEVLINK_ATTR_DEV_NAME])
131 busname = nla_data(attrs[DEVLINK_ATTR_BUS_NAME]);
132 devname = nla_data(attrs[DEVLINK_ATTR_DEV_NAME]);
148 return devlink_get_from_attrs(genl_info_net(info), info->attrs);
170 struct nlattr **attrs)
172 if (attrs[DEVLINK_ATTR_PORT_INDEX]) {
173 u32 port_index = nla_get_u32(attrs[DEVLINK_ATTR_PORT_INDEX]);
187 return devlink_port_get_from_attrs(devlink, info->attrs);
224 struct nlattr **attrs)
226 if (attrs[DEVLINK_ATTR_SB_INDEX]) {
227 u32 sb_index = nla_get_u32(attrs[DEVLINK_ATTR_SB_INDEX]);
241 return devlink_sb_get_from_attrs(devlink, info->attrs);
245 struct nlattr **attrs,
250 if (!attrs[DEVLINK_ATTR_SB_POOL_INDEX])
253 val = nla_get_u16(attrs[DEVLINK_ATTR_SB_POOL_INDEX]);
264 return devlink_sb_pool_index_get_from_attrs(devlink_sb, info->attrs,
269 devlink_sb_pool_type_get_from_attrs(struct nlattr **attrs,
274 if (!attrs[DEVLINK_ATTR_SB_POOL_TYPE])
277 val = nla_get_u8(attrs[DEVLINK_ATTR_SB_POOL_TYPE]);
289 return devlink_sb_pool_type_get_from_attrs(info->attrs, p_pool_type);
293 devlink_sb_th_type_get_from_attrs(struct nlattr **attrs,
298 if (!attrs[DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE])
301 val = nla_get_u8(attrs[DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE]);
313 return devlink_sb_th_type_get_from_attrs(info->attrs, p_th_type);
318 struct nlattr **attrs,
324 if (!attrs[DEVLINK_ATTR_SB_TC_INDEX])
327 val = nla_get_u16(attrs[DEVLINK_ATTR_SB_TC_INDEX]);
344 return devlink_sb_tc_index_get_from_attrs(devlink_sb, info->attrs,
663 struct devlink_port_attrs *attrs = &devlink_port->attrs;
667 if (attrs->lanes) {
668 if (nla_put_u32(msg, DEVLINK_ATTR_PORT_LANES, attrs->lanes))
671 if (nla_put_u8(msg, DEVLINK_ATTR_PORT_SPLITTABLE, attrs->splittable))
673 if (nla_put_u16(msg, DEVLINK_ATTR_PORT_FLAVOUR, attrs->flavour))
675 switch (devlink_port->attrs.flavour) {
678 attrs->pci_pf.controller) ||
679 nla_put_u16(msg, DEVLINK_ATTR_PORT_PCI_PF_NUMBER, attrs->pci_pf.pf))
681 if (nla_put_u8(msg, DEVLINK_ATTR_PORT_EXTERNAL, attrs->pci_pf.external))
686 attrs->pci_vf.controller) ||
687 nla_put_u16(msg, DEVLINK_ATTR_PORT_PCI_PF_NUMBER, attrs->pci_vf.pf) ||
688 nla_put_u16(msg, DEVLINK_ATTR_PORT_PCI_VF_NUMBER, attrs->pci_vf.vf))
690 if (nla_put_u8(msg, DEVLINK_ATTR_PORT_EXTERNAL, attrs->pci_vf.external))
697 attrs->phys.port_number))
699 if (!attrs->split)
702 attrs->phys.port_number))
705 attrs->phys.split_subport_number))
1049 if (info->attrs[DEVLINK_ATTR_PORT_TYPE]) {
1052 port_type = nla_get_u16(info->attrs[DEVLINK_ATTR_PORT_TYPE]);
1058 if (info->attrs[DEVLINK_ATTR_PORT_FUNCTION]) {
1059 struct nlattr *attr = info->attrs[DEVLINK_ATTR_PORT_FUNCTION];
1088 if (!info->attrs[DEVLINK_ATTR_PORT_INDEX] ||
1089 !info->attrs[DEVLINK_ATTR_PORT_SPLIT_COUNT])
1093 port_index = nla_get_u32(info->attrs[DEVLINK_ATTR_PORT_INDEX]);
1094 count = nla_get_u32(info->attrs[DEVLINK_ATTR_PORT_SPLIT_COUNT]);
1099 if (!devlink_port->attrs.splittable) {
1101 if (devlink_port->attrs.split)
1108 if (count < 2 || !is_power_of_2(count) || count > devlink_port->attrs.lanes) {
1131 if (!info->attrs[DEVLINK_ATTR_PORT_INDEX])
1134 port_index = nla_get_u32(info->attrs[DEVLINK_ATTR_PORT_INDEX]);
1423 if (!info->attrs[DEVLINK_ATTR_SB_POOL_SIZE])
1426 size = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_POOL_SIZE]);
1632 if (!info->attrs[DEVLINK_ATTR_SB_THRESHOLD])
1635 threshold = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_THRESHOLD]);
1888 if (!info->attrs[DEVLINK_ATTR_SB_THRESHOLD])
1891 threshold = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_THRESHOLD]);
2016 if (info->attrs[DEVLINK_ATTR_ESWITCH_MODE]) {
2019 mode = nla_get_u16(info->attrs[DEVLINK_ATTR_ESWITCH_MODE]);
2025 if (info->attrs[DEVLINK_ATTR_ESWITCH_INLINE_MODE]) {
2029 info->attrs[DEVLINK_ATTR_ESWITCH_INLINE_MODE]);
2036 if (info->attrs[DEVLINK_ATTR_ESWITCH_ENCAP_MODE]) {
2039 encap_mode = nla_get_u8(info->attrs[DEVLINK_ATTR_ESWITCH_ENCAP_MODE]);
2287 if (info->attrs[DEVLINK_ATTR_DPIPE_TABLE_NAME])
2288 table_name = nla_data(info->attrs[DEVLINK_ATTR_DPIPE_TABLE_NAME]);
2561 if (!info->attrs[DEVLINK_ATTR_DPIPE_TABLE_NAME])
2564 table_name = nla_data(info->attrs[DEVLINK_ATTR_DPIPE_TABLE_NAME]);
2745 if (!info->attrs[DEVLINK_ATTR_DPIPE_TABLE_NAME] ||
2746 !info->attrs[DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED])
2749 table_name = nla_data(info->attrs[DEVLINK_ATTR_DPIPE_TABLE_NAME]);
2750 counters_enable = !!nla_get_u8(info->attrs[DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED]);
2835 if (!info->attrs[DEVLINK_ATTR_RESOURCE_ID] ||
2836 !info->attrs[DEVLINK_ATTR_RESOURCE_SIZE])
2838 resource_id = nla_get_u64(info->attrs[DEVLINK_ATTR_RESOURCE_ID]);
2844 size = nla_get_u64(info->attrs[DEVLINK_ATTR_RESOURCE_SIZE]);
3043 struct nlattr *netns_pid_attr = info->attrs[DEVLINK_ATTR_NETNS_PID];
3044 struct nlattr *netns_fd_attr = info->attrs[DEVLINK_ATTR_NETNS_FD];
3045 struct nlattr *netns_id_attr = info->attrs[DEVLINK_ATTR_NETNS_ID];
3268 if (info->attrs[DEVLINK_ATTR_RELOAD_ACTION])
3269 action = nla_get_u8(info->attrs[DEVLINK_ATTR_RELOAD_ACTION]);
3280 if (info->attrs[DEVLINK_ATTR_RELOAD_LIMITS]) {
3284 limits = nla_get_bitfield32(info->attrs[DEVLINK_ATTR_RELOAD_LIMITS]);
3310 if (info->attrs[DEVLINK_ATTR_NETNS_PID] ||
3311 info->attrs[DEVLINK_ATTR_NETNS_FD] ||
3312 info->attrs[DEVLINK_ATTR_NETNS_ID]) {
3326 if (!info->attrs[DEVLINK_ATTR_RELOAD_ACTION] && !info->attrs[DEVLINK_ATTR_RELOAD_LIMITS])
3471 if (!info->attrs[DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME])
3476 params.file_name = nla_data(info->attrs[DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME]);
3478 nla_component = info->attrs[DEVLINK_ATTR_FLASH_UPDATE_COMPONENT];
3488 nla_overwrite_mask = info->attrs[DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK];
3872 if (!info->attrs[DEVLINK_ATTR_PARAM_TYPE])
3875 switch (nla_get_u8(info->attrs[DEVLINK_ATTR_PARAM_TYPE])) {
3906 param_data = info->attrs[DEVLINK_ATTR_PARAM_VALUE_DATA];
3949 if (!info->attrs[DEVLINK_ATTR_PARAM_NAME])
3952 param_name = nla_data(info->attrs[DEVLINK_ATTR_PARAM_NAME]);
4015 if (!info->attrs[DEVLINK_ATTR_PARAM_VALUE_CMODE])
4017 cmode = nla_get_u8(info->attrs[DEVLINK_ATTR_PARAM_VALUE_CMODE]);
4561 if (!info->attrs[DEVLINK_ATTR_REGION_NAME])
4564 if (info->attrs[DEVLINK_ATTR_PORT_INDEX]) {
4565 index = nla_get_u32(info->attrs[DEVLINK_ATTR_PORT_INDEX]);
4572 region_name = nla_data(info->attrs[DEVLINK_ATTR_REGION_NAME]);
4696 if (!info->attrs[DEVLINK_ATTR_REGION_NAME] ||
4697 !info->attrs[DEVLINK_ATTR_REGION_SNAPSHOT_ID])
4700 region_name = nla_data(info->attrs[DEVLINK_ATTR_REGION_NAME]);
4701 snapshot_id = nla_get_u32(info->attrs[DEVLINK_ATTR_REGION_SNAPSHOT_ID]);
4703 if (info->attrs[DEVLINK_ATTR_PORT_INDEX]) {
4704 index = nla_get_u32(info->attrs[DEVLINK_ATTR_PORT_INDEX]);
4741 if (!info->attrs[DEVLINK_ATTR_REGION_NAME]) {
4746 region_name = nla_data(info->attrs[DEVLINK_ATTR_REGION_NAME]);
4748 if (info->attrs[DEVLINK_ATTR_PORT_INDEX]) {
4749 index = nla_get_u32(info->attrs[DEVLINK_ATTR_PORT_INDEX]);
4776 snapshot_id_attr = info->attrs[DEVLINK_ATTR_REGION_SNAPSHOT_ID];
4877 struct nlattr **attrs,
4889 snapshot_id = nla_get_u32(attrs[DEVLINK_ATTR_REGION_SNAPSHOT_ID]);
4922 struct nlattr **attrs = info->attrs;
4935 devlink = devlink_get_from_attrs(sock_net(cb->skb->sk), attrs);
4943 if (!attrs[DEVLINK_ATTR_REGION_NAME] ||
4944 !attrs[DEVLINK_ATTR_REGION_SNAPSHOT_ID]) {
4949 if (info->attrs[DEVLINK_ATTR_PORT_INDEX]) {
4950 index = nla_get_u32(info->attrs[DEVLINK_ATTR_PORT_INDEX]);
4959 region_name = nla_data(attrs[DEVLINK_ATTR_REGION_NAME]);
4971 if (attrs[DEVLINK_ATTR_REGION_CHUNK_ADDR] &&
4972 attrs[DEVLINK_ATTR_REGION_CHUNK_LEN]) {
4975 nla_get_u64(attrs[DEVLINK_ATTR_REGION_CHUNK_ADDR]);
4977 end_offset = nla_get_u64(attrs[DEVLINK_ATTR_REGION_CHUNK_ADDR]);
4978 end_offset += nla_get_u64(attrs[DEVLINK_ATTR_REGION_CHUNK_LEN]);
5020 region, attrs,
6256 struct nlattr **attrs)
6262 if (!attrs[DEVLINK_ATTR_HEALTH_REPORTER_NAME])
6265 reporter_name = nla_data(attrs[DEVLINK_ATTR_HEALTH_REPORTER_NAME]);
6266 devlink_port = devlink_port_get_from_attrs(devlink, attrs);
6288 return devlink_health_reporter_get_from_attrs(devlink, info->attrs);
6296 struct nlattr **attrs = info->attrs;
6300 devlink = devlink_get_from_attrs(sock_net(cb->skb->sk), attrs);
6304 reporter = devlink_health_reporter_get_from_attrs(devlink, attrs);
6447 (info->attrs[DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD] ||
6448 info->attrs[DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER])) {
6453 info->attrs[DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP]) {
6458 if (info->attrs[DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD])
6460 nla_get_u64(info->attrs[DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD]);
6462 if (info->attrs[DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER])
6464 nla_get_u8(info->attrs[DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER]);
6466 if (info->attrs[DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP])
6468 nla_get_u8(info->attrs[DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP]);
6714 if (!info->attrs[DEVLINK_ATTR_TRAP_NAME])
6716 attr = info->attrs[DEVLINK_ATTR_TRAP_NAME];
6727 val = nla_get_u8(info->attrs[DEVLINK_ATTR_TRAP_ACTION]);
6972 if (!info->attrs[DEVLINK_ATTR_TRAP_ACTION])
7041 if (!info->attrs[DEVLINK_ATTR_TRAP_GROUP_NAME])
7043 name = nla_data(info->attrs[DEVLINK_ATTR_TRAP_GROUP_NAME]);
7215 if (!info->attrs[DEVLINK_ATTR_TRAP_ACTION])
7241 struct nlattr **attrs = info->attrs;
7244 if (!attrs[DEVLINK_ATTR_TRAP_POLICER_ID])
7251 if (attrs[DEVLINK_ATTR_TRAP_POLICER_ID]) {
7254 policer_id = nla_get_u32(attrs[DEVLINK_ATTR_TRAP_POLICER_ID]);
7315 if (!info->attrs[DEVLINK_ATTR_TRAP_POLICER_ID])
7317 id = nla_get_u32(info->attrs[DEVLINK_ATTR_TRAP_POLICER_ID]);
7479 struct nlattr **attrs = info->attrs;
7486 if (attrs[DEVLINK_ATTR_TRAP_POLICER_RATE])
7487 rate = nla_get_u64(attrs[DEVLINK_ATTR_TRAP_POLICER_RATE]);
7489 if (attrs[DEVLINK_ATTR_TRAP_POLICER_BURST])
7490 burst = nla_get_u64(attrs[DEVLINK_ATTR_TRAP_POLICER_BURST]);
8104 return devlink_port->attrs.flavour != DEVLINK_PORT_FLAVOUR_CPU &&
8105 devlink_port->attrs.flavour != DEVLINK_PORT_FLAVOUR_DSA &&
8106 devlink_port->attrs.flavour != DEVLINK_PORT_FLAVOUR_UNUSED;
8287 struct devlink_port_attrs *attrs = &devlink_port->attrs;
8290 attrs->flavour = flavour;
8291 if (attrs->switch_id.id_len) {
8293 if (WARN_ON(attrs->switch_id.id_len > MAX_PHYS_ITEM_ID_LEN))
8294 attrs->switch_id.id_len = MAX_PHYS_ITEM_ID_LEN;
8305 * @attrs: devlink port attrs
8308 struct devlink_port_attrs *attrs)
8314 devlink_port->attrs = *attrs;
8315 ret = __devlink_port_attrs_set(devlink_port, attrs->flavour);
8318 WARN_ON(attrs->splittable && attrs->split);
8333 struct devlink_port_attrs *attrs = &devlink_port->attrs;
8342 attrs->pci_pf.controller = controller;
8343 attrs->pci_pf.pf = pf;
8344 attrs->pci_pf.external = external;
8360 struct devlink_port_attrs *attrs = &devlink_port->attrs;
8369 attrs->pci_vf.controller = controller;
8370 attrs->pci_vf.pf = pf;
8371 attrs->pci_vf.vf = vf;
8372 attrs->pci_vf.external = external;
8379 struct devlink_port_attrs *attrs = &devlink_port->attrs;
8385 switch (attrs->flavour) {
8387 if (!attrs->split)
8388 n = snprintf(name, len, "p%u", attrs->phys.port_number);
8391 attrs->phys.port_number,
8392 attrs->phys.split_subport_number);
8403 if (attrs->pci_pf.external) {
8404 n = snprintf(name, len, "c%u", attrs->pci_pf.controller);
8410 n = snprintf(name, len, "pf%u", attrs->pci_pf.pf);
8413 if (attrs->pci_vf.external) {
8414 n = snprintf(name, len, "c%u", attrs->pci_vf.controller);
8421 attrs->pci_vf.pf, attrs->pci_vf.vf);
10305 memcpy(ppid, &devlink_port->attrs.switch_id, sizeof(*ppid));