Current implementation of parent_id/switch_id does not follow the
original idea of being unique. The values are "0", "1", etc. Instead of
that, generate 32 random bytes.
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
#include <linux/debugfs.h>
#include <linux/device.h>
+#include <linux/random.h>
#include <linux/rtnetlink.h>
#include <net/devlink.h>
return ERR_PTR(-ENOMEM);
nsim_dev = devlink_priv(devlink);
nsim_dev->nsim_bus_dev = nsim_bus_dev;
+ nsim_dev->switch_id.id_len = sizeof(nsim_dev->switch_id.id);
+ get_random_bytes(nsim_dev->switch_id.id, nsim_dev->switch_id.id_len);
nsim_dev->fib_data = nsim_fib_create();
if (IS_ERR(nsim_dev->fib_data)) {
{
struct netdevsim *ns = netdev_priv(dev);
- ppid->id_len = sizeof(ns->nsim_dev->nsim_bus_dev->dev.id);
- memcpy(&ppid->id, &ns->nsim_dev->nsim_bus_dev->dev.id, ppid->id_len);
+ memcpy(ppid, &ns->nsim_dev->switch_id, sizeof(*ppid));
return 0;
}
u32 prog_id_gen;
struct list_head bpf_bound_progs;
struct list_head bpf_bound_maps;
+ struct netdev_phys_item_id switch_id;
};
struct nsim_dev *