netdevsim: generate random switch id instead of using dev id
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>
This commit is contained in:
parent
d514f41e79
commit
514cf64cc5
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/random.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <net/devlink.h>
|
||||
|
||||
|
@ -204,6 +205,8 @@ static struct nsim_dev *nsim_dev_create(struct nsim_bus_dev *nsim_bus_dev)
|
|||
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)) {
|
||||
|
|
|
@ -32,8 +32,7 @@ static int nsim_get_port_parent_id(struct net_device *dev,
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -141,6 +141,7 @@ struct nsim_dev {
|
|||
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 *
|
||||
|
|
Loading…
Reference in New Issue