Lines Matching refs:devlink_port
133 static struct devlink_port *devlink_port_get_by_index(struct devlink *devlink, in devlink_port_get_by_index()
136 struct devlink_port *devlink_port; in devlink_port_get_by_index() local
138 list_for_each_entry(devlink_port, &devlink->port_list, list) { in devlink_port_get_by_index()
139 if (devlink_port->index == port_index) in devlink_port_get_by_index()
140 return devlink_port; in devlink_port_get_by_index()
150 static struct devlink_port *devlink_port_get_from_attrs(struct devlink *devlink, in devlink_port_get_from_attrs()
155 struct devlink_port *devlink_port; in devlink_port_get_from_attrs() local
157 devlink_port = devlink_port_get_by_index(devlink, port_index); in devlink_port_get_from_attrs()
158 if (!devlink_port) in devlink_port_get_from_attrs()
160 return devlink_port; in devlink_port_get_from_attrs()
165 static struct devlink_port *devlink_port_get_from_info(struct devlink *devlink, in devlink_port_get_from_info()
407 struct devlink_port *devlink_port; in devlink_nl_pre_doit() local
409 devlink_port = devlink_port_get_from_info(devlink, info); in devlink_nl_pre_doit()
410 if (IS_ERR(devlink_port)) { in devlink_nl_pre_doit()
411 err = PTR_ERR(devlink_port); in devlink_nl_pre_doit()
414 info->user_ptr[0] = devlink_port; in devlink_nl_pre_doit()
508 struct devlink_port *devlink_port) in devlink_nl_port_attrs_put() argument
510 struct devlink_port_attrs *attrs = &devlink_port->attrs; in devlink_nl_port_attrs_put()
529 struct devlink_port *devlink_port, in devlink_nl_port_fill() argument
541 if (nla_put_u32(msg, DEVLINK_ATTR_PORT_INDEX, devlink_port->index)) in devlink_nl_port_fill()
543 if (nla_put_u16(msg, DEVLINK_ATTR_PORT_TYPE, devlink_port->type)) in devlink_nl_port_fill()
545 if (devlink_port->desired_type != DEVLINK_PORT_TYPE_NOTSET && in devlink_nl_port_fill()
547 devlink_port->desired_type)) in devlink_nl_port_fill()
549 if (devlink_port->type == DEVLINK_PORT_TYPE_ETH) { in devlink_nl_port_fill()
550 struct net_device *netdev = devlink_port->type_dev; in devlink_nl_port_fill()
559 if (devlink_port->type == DEVLINK_PORT_TYPE_IB) { in devlink_nl_port_fill()
560 struct ib_device *ibdev = devlink_port->type_dev; in devlink_nl_port_fill()
567 if (devlink_nl_port_attrs_put(msg, devlink_port)) in devlink_nl_port_fill()
578 static void devlink_port_notify(struct devlink_port *devlink_port, in devlink_port_notify() argument
581 struct devlink *devlink = devlink_port->devlink; in devlink_port_notify()
585 if (!devlink_port->registered) in devlink_port_notify()
594 err = devlink_nl_port_fill(msg, devlink, devlink_port, cmd, 0, 0, 0); in devlink_port_notify()
657 struct devlink_port *devlink_port = info->user_ptr[0]; in devlink_nl_cmd_port_get_doit() local
658 struct devlink *devlink = devlink_port->devlink; in devlink_nl_cmd_port_get_doit()
666 err = devlink_nl_port_fill(msg, devlink, devlink_port, in devlink_nl_cmd_port_get_doit()
681 struct devlink_port *devlink_port; in devlink_nl_cmd_port_get_dumpit() local
691 list_for_each_entry(devlink_port, &devlink->port_list, list) { in devlink_nl_cmd_port_get_dumpit()
696 err = devlink_nl_port_fill(msg, devlink, devlink_port, in devlink_nl_cmd_port_get_dumpit()
717 struct devlink_port *devlink_port, in devlink_port_type_set() argument
726 if (port_type == devlink_port->type) in devlink_port_type_set()
728 err = devlink->ops->port_type_set(devlink_port, port_type); in devlink_port_type_set()
731 devlink_port->desired_type = port_type; in devlink_port_type_set()
732 devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW); in devlink_port_type_set()
741 struct devlink_port *devlink_port = info->user_ptr[0]; in devlink_nl_cmd_port_set_doit() local
742 struct devlink *devlink = devlink_port->devlink; in devlink_nl_cmd_port_set_doit()
749 err = devlink_port_type_set(devlink, devlink_port, port_type); in devlink_nl_cmd_port_set_doit()
1078 struct devlink_port *devlink_port, in devlink_nl_sb_port_pool_fill() argument
1089 err = ops->sb_port_pool_get(devlink_port, devlink_sb->index, in devlink_nl_sb_port_pool_fill()
1100 if (nla_put_u32(msg, DEVLINK_ATTR_PORT_INDEX, devlink_port->index)) in devlink_nl_sb_port_pool_fill()
1113 err = ops->sb_occ_port_pool_get(devlink_port, devlink_sb->index, in devlink_nl_sb_port_pool_fill()
1136 struct devlink_port *devlink_port = info->user_ptr[0]; in devlink_nl_cmd_sb_port_pool_get_doit() local
1137 struct devlink *devlink = devlink_port->devlink; in devlink_nl_cmd_sb_port_pool_get_doit()
1155 err = devlink_nl_sb_port_pool_fill(msg, devlink, devlink_port, in devlink_nl_cmd_sb_port_pool_get_doit()
1172 struct devlink_port *devlink_port; in __sb_port_pool_get_dumpit() local
1177 list_for_each_entry(devlink_port, &devlink->port_list, list) { in __sb_port_pool_get_dumpit()
1184 devlink_port, in __sb_port_pool_get_dumpit()
1232 static int devlink_sb_port_pool_set(struct devlink_port *devlink_port, in devlink_sb_port_pool_set() argument
1237 const struct devlink_ops *ops = devlink_port->devlink->ops; in devlink_sb_port_pool_set()
1240 return ops->sb_port_pool_set(devlink_port, sb_index, in devlink_sb_port_pool_set()
1248 struct devlink_port *devlink_port = info->user_ptr[0]; in devlink_nl_cmd_sb_port_pool_set_doit() local
1263 return devlink_sb_port_pool_set(devlink_port, devlink_sb->index, in devlink_nl_cmd_sb_port_pool_set_doit()
1269 struct devlink_port *devlink_port, in devlink_nl_sb_tc_pool_bind_fill() argument
1281 err = ops->sb_tc_pool_bind_get(devlink_port, devlink_sb->index, in devlink_nl_sb_tc_pool_bind_fill()
1293 if (nla_put_u32(msg, DEVLINK_ATTR_PORT_INDEX, devlink_port->index)) in devlink_nl_sb_tc_pool_bind_fill()
1310 err = ops->sb_occ_tc_port_bind_get(devlink_port, in devlink_nl_sb_tc_pool_bind_fill()
1335 struct devlink_port *devlink_port = info->user_ptr[0]; in devlink_nl_cmd_sb_tc_pool_bind_get_doit() local
1336 struct devlink *devlink = devlink_port->devlink; in devlink_nl_cmd_sb_tc_pool_bind_get_doit()
1359 err = devlink_nl_sb_tc_pool_bind_fill(msg, devlink, devlink_port, in devlink_nl_cmd_sb_tc_pool_bind_get_doit()
1378 struct devlink_port *devlink_port; in __sb_tc_pool_bind_get_dumpit() local
1382 list_for_each_entry(devlink_port, &devlink->port_list, list) { in __sb_tc_pool_bind_get_dumpit()
1390 devlink_port, in __sb_tc_pool_bind_get_dumpit()
1408 devlink_port, in __sb_tc_pool_bind_get_dumpit()
1460 static int devlink_sb_tc_pool_bind_set(struct devlink_port *devlink_port, in devlink_sb_tc_pool_bind_set() argument
1466 const struct devlink_ops *ops = devlink_port->devlink->ops; in devlink_sb_tc_pool_bind_set()
1469 return ops->sb_tc_pool_bind_set(devlink_port, sb_index, in devlink_sb_tc_pool_bind_set()
1478 struct devlink_port *devlink_port = info->user_ptr[0]; in devlink_nl_cmd_sb_tc_pool_bind_set_doit() local
1504 return devlink_sb_tc_pool_bind_set(devlink_port, devlink_sb->index, in devlink_nl_cmd_sb_tc_pool_bind_set_doit()
3923 struct devlink_port *devlink_port, in devlink_port_register() argument
3931 devlink_port->devlink = devlink; in devlink_port_register()
3932 devlink_port->index = port_index; in devlink_port_register()
3933 devlink_port->registered = true; in devlink_port_register()
3934 list_add_tail(&devlink_port->list, &devlink->port_list); in devlink_port_register()
3936 devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW); in devlink_port_register()
3946 void devlink_port_unregister(struct devlink_port *devlink_port) in devlink_port_unregister() argument
3948 struct devlink *devlink = devlink_port->devlink; in devlink_port_unregister()
3950 devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_DEL); in devlink_port_unregister()
3952 list_del(&devlink_port->list); in devlink_port_unregister()
3957 static void __devlink_port_type_set(struct devlink_port *devlink_port, in __devlink_port_type_set() argument
3961 devlink_port->type = type; in __devlink_port_type_set()
3962 devlink_port->type_dev = type_dev; in __devlink_port_type_set()
3963 devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW); in __devlink_port_type_set()
3972 void devlink_port_type_eth_set(struct devlink_port *devlink_port, in devlink_port_type_eth_set() argument
3975 return __devlink_port_type_set(devlink_port, in devlink_port_type_eth_set()
3986 void devlink_port_type_ib_set(struct devlink_port *devlink_port, in devlink_port_type_ib_set() argument
3989 return __devlink_port_type_set(devlink_port, in devlink_port_type_ib_set()
3999 void devlink_port_type_clear(struct devlink_port *devlink_port) in devlink_port_type_clear() argument
4001 return __devlink_port_type_set(devlink_port, in devlink_port_type_clear()
4017 void devlink_port_attrs_set(struct devlink_port *devlink_port, in devlink_port_attrs_set() argument
4022 struct devlink_port_attrs *attrs = &devlink_port->attrs; in devlink_port_attrs_set()
4029 devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW); in devlink_port_attrs_set()
4033 int devlink_port_get_phys_port_name(struct devlink_port *devlink_port, in devlink_port_get_phys_port_name() argument
4036 struct devlink_port_attrs *attrs = &devlink_port->attrs; in devlink_port_get_phys_port_name()