소스 검색

core: Change the address randomization API

eth_hw_addr_random doesn't seem to be generating truly random IIDs.
Use eth_random_addr instead as it is explicitly assigning random
IIDs to the device permanent address.

Before this change-

16: rmnet_data0@rmnet_ipa0: <UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN group default qlen 1000
    inet6 fe80::200:ff:fe00:0/64 scope link
17: rmnet_data1@rmnet_ipa0: <UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN group default qlen 1000
    inet6 fe80::200:ff:fe00:0/64 scope link

After this change-

16: rmnet_data0@rmnet_ipa0: <UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN group default qlen 1000
    inet6 fe80::d8f9:85ff:fee4:4444/64 scope link
17: rmnet_data1@rmnet_ipa0: <UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN group default qlen 1000
    inet6 fe80::1856:3aff:fe22:e519/64 scope link

CRs-Fixed: 3361274
Change-Id: I79d37725c332a289682ac26e751bc97dc7ce1ebb
Signed-off-by: Subash Abhinov Kasiviswanathan <[email protected]>
Subash Abhinov Kasiviswanathan 2 년 전
부모
커밋
a84874631c
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      core/rmnet_vnd.c

+ 2 - 2
core/rmnet_vnd.c

@@ -709,7 +709,7 @@ void rmnet_vnd_setup(struct net_device *rmnet_dev)
 	rmnet_dev->netdev_ops = &rmnet_vnd_ops;
 	rmnet_dev->mtu = RMNET_DFLT_PACKET_SIZE;
 	rmnet_dev->needed_headroom = RMNET_NEEDED_HEADROOM;
-	eth_hw_addr_random(rmnet_dev);
+	eth_random_addr(rmnet_dev->perm_addr);
 	rmnet_dev->tx_queue_len = RMNET_TX_QUEUE_LEN;
 
 	/* Raw IP mode */
@@ -806,5 +806,5 @@ void rmnet_vnd_reset_mac_addr(struct net_device *dev)
 	if (dev->netdev_ops != &rmnet_vnd_ops)
 		return;
 
-	eth_hw_addr_random(dev);
+	eth_random_addr(dev->perm_addr);
 }