diff options
| author | chenyong <[email protected]> | 2019-06-24 13:56:42 +0800 |
|---|---|---|
| committer | chenyong <[email protected]> | 2019-06-24 17:46:18 +0800 |
| commit | 7d2ffe63e91a46380d04d4245fec56d6ba0d25f8 (patch) | |
| tree | 8485d1c158c9e542ab383436056bc68a3cb7dcc2 /components/net/lwip-2.0.2 | |
| parent | c574c49b2fe81ad2ee6f4ba7f3f61c978bea0497 (diff) | |
[net][sal][netdev] Add IPv6 option configuration and feature support in SAL and netdev
Signed-off-by: chenyong <[email protected]>
Diffstat (limited to 'components/net/lwip-2.0.2')
| -rw-r--r-- | components/net/lwip-2.0.2/src/core/netif.c | 15 | ||||
| -rw-r--r-- | components/net/lwip-2.0.2/src/netif/ethernetif.c | 8 |
2 files changed, 16 insertions, 7 deletions
diff --git a/components/net/lwip-2.0.2/src/core/netif.c b/components/net/lwip-2.0.2/src/core/netif.c index 01e83676da..ee57bb9a9d 100644 --- a/components/net/lwip-2.0.2/src/core/netif.c +++ b/components/net/lwip-2.0.2/src/core/netif.c @@ -544,7 +544,7 @@ netif_set_ipaddr(struct netif *netif, const ip4_addr_t *ipaddr) #ifdef RT_USING_NETDEV /* rt-thread sal network interface device set IP address operations */ - netdev_low_level_set_ipaddr(netdev_get_by_name(netif->name), (ip_addr_t *)ipaddr); + netdev_low_level_set_ipaddr(netdev_get_by_name(netif->name), &netif->ip_addr); #endif /* RT_USING_NETDEV */ } @@ -579,7 +579,7 @@ netif_set_gw(struct netif *netif, const ip4_addr_t *gw) #ifdef RT_USING_NETDEV /* rt_thread network interface device set gateway address */ - netdev_low_level_set_gw(netdev_get_by_name(netif->name), (ip_addr_t *)gw); + netdev_low_level_set_gw(netdev_get_by_name(netif->name), &netif->gw); #endif /* RT_USING_NETDEV */ } @@ -610,7 +610,7 @@ netif_set_netmask(struct netif *netif, const ip4_addr_t *netmask) #ifdef RT_USING_NETDEV /* rt-thread network interface device set netmask address */ - netdev_low_level_set_netmask(netdev_get_by_name(netif->name), (ip_addr_t *)netmask); + netdev_low_level_set_netmask(netdev_get_by_name(netif->name), &netif->netmask); #endif /* RT_USING_NETDEV */ } #endif /* LWIP_IPV4 */ @@ -1241,6 +1241,11 @@ netif_create_ip6_linklocal_address(struct netif *netif, u8_t from_mac_48bit) } } +#ifdef RT_USING_NETDEV + /* rt-thread network interface device set ipv6 address */ + ip_addr_copy(netdev_get_by_name(netif->name)->ip6_addr[0], netif->ip6_addr[0]); +#endif /* RT_USING_NETDEV */ + /* Set address state. */ #if LWIP_IPV6_DUP_DETECT_ATTEMPTS /* Will perform duplicate address detection (DAD). */ @@ -1279,6 +1284,10 @@ netif_add_ip6_address(struct netif *netif, const ip6_addr_t *ip6addr, s8_t *chos for (i = 1; i < LWIP_IPV6_NUM_ADDRESSES; i++) { if (ip6_addr_isinvalid(netif_ip6_addr_state(netif, i))) { ip_addr_copy_from_ip6(netif->ip6_addr[i], *ip6addr); +#ifdef RT_USING_NETDEV + /* rt-thread network interface device set ipv6 address */ + ip_addr_copy(netdev_get_by_name(netif->name)->ip6_addr[i], netif->ip6_addr[i]); +#endif /* RT_USING_NETDEV */ netif_ip6_addr_set_state(netif, i, IP6_ADDR_TENTATIVE); if (chosen_idx != NULL) { *chosen_idx = i; diff --git a/components/net/lwip-2.0.2/src/netif/ethernetif.c b/components/net/lwip-2.0.2/src/netif/ethernetif.c index a5a1f94c0b..51e1ba511d 100644 --- a/components/net/lwip-2.0.2/src/netif/ethernetif.c +++ b/components/net/lwip-2.0.2/src/netif/ethernetif.c @@ -128,23 +128,23 @@ static int lwip_netdev_set_addr_info(struct netdev *netif, ip_addr_t *ip_addr, i { if (ip_addr && netmask && gw) { - netif_set_addr((struct netif *)netif->user_data, ip_addr, netmask, gw); + netif_set_addr((struct netif *)netif->user_data, ip_2_ip4(ip_addr), ip_2_ip4(netmask), ip_2_ip4(gw)); } else { if (ip_addr) { - netif_set_ipaddr((struct netif *)netif->user_data, ip_addr); + netif_set_ipaddr((struct netif *)netif->user_data, ip_2_ip4(ip_addr)); } if (netmask) { - netif_set_netmask((struct netif *)netif->user_data, netmask); + netif_set_netmask((struct netif *)netif->user_data, ip_2_ip4(netmask)); } if (gw) { - netif_set_gw((struct netif *)netif->user_data, gw); + netif_set_gw((struct netif *)netif->user_data, ip_2_ip4(gw)); } } |
