summaryrefslogtreecommitdiff
path: root/components/net/lwip-2.0.2
diff options
context:
space:
mode:
authorchenyong <[email protected]>2019-06-24 13:56:42 +0800
committerchenyong <[email protected]>2019-06-24 17:46:18 +0800
commit7d2ffe63e91a46380d04d4245fec56d6ba0d25f8 (patch)
tree8485d1c158c9e542ab383436056bc68a3cb7dcc2 /components/net/lwip-2.0.2
parentc574c49b2fe81ad2ee6f4ba7f3f61c978bea0497 (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.c15
-rw-r--r--components/net/lwip-2.0.2/src/netif/ethernetif.c8
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));
}
}