Skip to content

Commit

Permalink
netdevsim: generate random switch id instead of using dev id
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
jpirko authored and davem330 committed Apr 26, 2019
1 parent d514f41 commit 514cf64
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 2 deletions.
3 changes: 3 additions & 0 deletions drivers/net/netdevsim/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

#include <linux/debugfs.h>
#include <linux/device.h>
#include <linux/random.h>
#include <linux/rtnetlink.h>
#include <net/devlink.h>

Expand Down Expand Up @@ -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)) {
Expand Down
3 changes: 1 addition & 2 deletions drivers/net/netdevsim/netdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
1 change: 1 addition & 0 deletions drivers/net/netdevsim/netdevsim.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 *
Expand Down

0 comments on commit 514cf64

Please sign in to comment.