Lines Matching defs:devlink
29 #include <net/devlink.h>
32 #include <uapi/linux/devlink.h>
43 nsim_dev_take_snapshot(struct devlink *devlink,
66 struct devlink *devlink;
71 devlink = priv_to_devlink(nsim_dev);
73 err = nsim_dev_take_snapshot(devlink, NULL, NULL, &dummy_data);
77 err = devlink_region_snapshot_id_get(devlink, &id);
85 devlink_region_snapshot_id_put(devlink, id);
265 static int nsim_dev_resources_register(struct devlink *devlink)
275 err = devlink_resource_register(devlink, "IPv4", (u64)-1,
284 err = devlink_resource_register(devlink, "fib", (u64)-1,
292 err = devlink_resource_register(devlink, "fib-rules", (u64)-1,
301 err = devlink_resource_register(devlink, "IPv6", (u64)-1,
310 err = devlink_resource_register(devlink, "fib", (u64)-1,
318 err = devlink_resource_register(devlink, "fib-rules", (u64)-1,
346 struct devlink *devlink)
351 devlink_param_driverinit_value_set(devlink,
355 devlink_param_driverinit_value_set(devlink,
360 static void nsim_devlink_param_load_driverinit_values(struct devlink *devlink)
362 struct nsim_dev *nsim_dev = devlink_priv(devlink);
366 err = devlink_param_driverinit_value_get(devlink,
371 err = devlink_param_driverinit_value_get(devlink,
387 struct devlink *devlink)
390 devlink_region_create(devlink, &dummy_region_ops,
415 * Documentation/networking/devlink/netdevsim.rst
541 struct devlink *devlink = priv_to_devlink(nsim_dev);
566 /* Trapped packets are usually passed to devlink in softIRQ,
574 devlink_trap_report(devlink, skb, nsim_trap_item->trap_ctx,
610 static int nsim_dev_traps_init(struct devlink *devlink)
613 struct nsim_dev *nsim_dev = devlink_priv(devlink);
645 err = devlink_trap_policers_register(devlink, nsim_trap_policers_arr,
650 err = devlink_trap_groups_register(devlink, nsim_trap_groups_arr,
655 err = devlink_traps_register(devlink, nsim_traps_arr,
668 devlink_trap_groups_unregister(devlink, nsim_trap_groups_arr,
671 devlink_trap_policers_unregister(devlink, nsim_trap_policers_arr,
682 static void nsim_dev_traps_exit(struct devlink *devlink)
684 struct nsim_dev *nsim_dev = devlink_priv(devlink);
687 devlink_traps_unregister(devlink, nsim_traps_arr,
689 devlink_trap_groups_unregister(devlink, nsim_trap_groups_arr,
691 devlink_trap_policers_unregister(devlink, nsim_trap_policers_arr,
702 static int nsim_dev_reload_down(struct devlink *devlink, bool netns_change,
706 struct nsim_dev *nsim_dev = devlink_priv(devlink);
720 static int nsim_dev_reload_up(struct devlink *devlink, enum devlink_reload_action action,
724 struct nsim_dev *nsim_dev = devlink_priv(devlink);
738 static int nsim_dev_info_get(struct devlink *devlink,
749 static int nsim_dev_flash_update(struct devlink *devlink,
753 struct nsim_dev *nsim_dev = devlink_priv(devlink);
760 devlink_flash_update_begin_notify(devlink);
761 devlink_flash_update_status_notify(devlink,
768 devlink_flash_update_status_notify(devlink, "Flashing",
776 devlink_flash_update_status_notify(devlink, "Flashing",
780 devlink_flash_update_timeout_notify(devlink, "Flash select",
782 devlink_flash_update_status_notify(devlink, "Flashing done",
784 devlink_flash_update_end_notify(devlink);
804 static int nsim_dev_devlink_trap_init(struct devlink *devlink,
808 struct nsim_dev *nsim_dev = devlink_priv(devlink);
822 nsim_dev_devlink_trap_action_set(struct devlink *devlink,
827 struct nsim_dev *nsim_dev = devlink_priv(devlink);
842 nsim_dev_devlink_trap_group_set(struct devlink *devlink,
847 struct nsim_dev *nsim_dev = devlink_priv(devlink);
856 nsim_dev_devlink_trap_policer_set(struct devlink *devlink,
861 struct nsim_dev *nsim_dev = devlink_priv(devlink);
872 nsim_dev_devlink_trap_policer_counter_get(struct devlink *devlink,
876 struct nsim_dev *nsim_dev = devlink_priv(devlink);
998 struct devlink *devlink;
1001 devlink = priv_to_devlink(nsim_dev);
1002 nsim_dev = devlink_priv(devlink);
1008 nsim_devlink_param_load_driverinit_values(devlink);
1010 err = nsim_dev_dummy_region_init(nsim_dev, devlink);
1014 err = nsim_dev_traps_init(devlink);
1018 nsim_dev->fib_data = nsim_fib_create(devlink, extack);
1024 err = nsim_dev_health_init(nsim_dev, devlink);
1042 nsim_fib_destroy(devlink, nsim_dev->fib_data);
1044 nsim_dev_traps_exit(devlink);
1053 struct devlink *devlink;
1056 devlink = devlink_alloc(&nsim_dev_devlink_ops, sizeof(*nsim_dev));
1057 if (!devlink)
1059 devlink_net_set(devlink, nsim_bus_dev->initial_net);
1060 nsim_dev = devlink_priv(devlink);
1074 err = nsim_dev_resources_register(devlink);
1078 err = devlink_register(devlink, &nsim_bus_dev->dev);
1082 err = devlink_params_register(devlink, nsim_devlink_params,
1086 nsim_devlink_set_params_init_values(nsim_dev, devlink);
1088 err = nsim_dev_dummy_region_init(nsim_dev, devlink);
1092 err = nsim_dev_traps_init(devlink);
1100 nsim_dev->fib_data = nsim_fib_create(devlink, NULL);
1106 err = nsim_dev_health_init(nsim_dev, devlink);
1118 devlink_params_publish(devlink);
1119 devlink_reload_enable(devlink);
1127 nsim_fib_destroy(devlink, nsim_dev->fib_data);
1131 nsim_dev_traps_exit(devlink);
1135 devlink_params_unregister(devlink, nsim_devlink_params,
1138 devlink_unregister(devlink);
1140 devlink_resources_unregister(devlink, NULL);
1142 devlink_free(devlink);
1148 struct devlink *devlink = priv_to_devlink(nsim_dev);
1150 if (devlink_is_reload_failed(devlink))
1155 nsim_fib_destroy(devlink, nsim_dev->fib_data);
1156 nsim_dev_traps_exit(devlink);
1164 struct devlink *devlink = priv_to_devlink(nsim_dev);
1166 devlink_reload_disable(devlink);
1172 devlink_params_unregister(devlink, nsim_devlink_params,
1174 devlink_unregister(devlink);
1175 devlink_resources_unregister(devlink, NULL);
1176 devlink_free(devlink);