summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraozima <[email protected]>2024-06-27 13:47:59 +0800
committersakumisu <[email protected]>2024-06-28 16:33:45 +0800
commit6e7502ec07b296919c882162519eb62b2fd3358d (patch)
tree3ebe19f03cecbd265fce6e8fa00b862bdefd84d7
parentab7ef4b116fbe4b5bfe2751a35a071dc011181fd (diff)
fix(demo/cdc_rndis_template): device tcp/ip stack mac can't same as host.
-rw-r--r--demo/cdc_rndis_template.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/demo/cdc_rndis_template.c b/demo/cdc_rndis_template.c
index 032ea710..cb4aef62 100644
--- a/demo/cdc_rndis_template.c
+++ b/demo/cdc_rndis_template.c
@@ -143,7 +143,11 @@ static rt_err_t rt_usbd_rndis_control(rt_device_t dev, int cmd, void *args)
/* get mac address */
if (args)
- rt_memcpy(args, mac, 6);
+ {
+ uint8_t *mac_dev = (uint8_t *)args;
+ rt_memcpy(mac_dev, mac, 6);
+ mac_dev[5] = ~mac_dev[5]; /* device mac can't same as host. */
+ }
else
return -RT_ERROR;
@@ -247,6 +251,7 @@ void rndis_lwip_init(void)
netif->hwaddr_len = 6;
memcpy(netif->hwaddr, mac, 6);
+ netif->hwaddr[5] = ~netif->hwaddr[5]; /* device mac can't same as host. */
netif = netif_add(netif, &ipaddr, &netmask, &gateway, NULL, rndisif_init, netif_input);
netif_set_default(netif);