[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [patch #7913] Enable Support for IPv6 Loopback
From: |
Grant Erickson |
Subject: |
[lwip-devel] [patch #7913] Enable Support for IPv6 Loopback |
Date: |
Fri, 04 Jan 2013 00:52:01 +0000 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.17 (KHTML, like Gecko) Version/6.0.2 Safari/536.26.17 |
URL:
<http://savannah.nongnu.org/patch/?7913>
Summary: Enable Support for IPv6 Loopback
Project: lwIP - A Lightweight TCP/IP stack
Submitted by: marathon96
Submitted on: Fri 04 Jan 2013 12:51:59 AM GMT
Category: None
Priority: 5 - Normal
Status: None
Privacy: Public
Assigned to: None
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Planned Release: None
_______________________________________________________
Details:
diff --git a/src/core/ipv6/ip6.c b/src/core/ipv6/ip6.c
index 94e423a..e3957b1 100644
--- a/src/core/ipv6/ip6.c
+++ b/src/core/ipv6/ip6.c
@@ -802,10 +802,11 @@ ip6_output_if(struct pbuf *p, ip6_addr_t *src,
ip6_addr_t *dest,
ip6_debug_print(p);
#if ENABLE_LOOPBACK
- /* TODO implement loopback for v6
- if (ip6_addr_cmp(dest, netif_ip6_addr(0))) {
+ if (ip6_addr_cmp(dest, netif_ip6_addr(netif, 0))) {
+ /* Packet to self, enqueue it for loopback */
+ LWIP_DEBUGF(IP6_DEBUG, ("netif_loop_output()\n"));
return netif_loop_output(netif, p, dest);
- }*/
+ }
#endif /* ENABLE_LOOPBACK */
#if LWIP_IPV6_FRAG
/* don't fragment if interface has mtu set to 0 [loopif] */
diff --git a/src/core/netif.c b/src/core/netif.c
index f8133f7..7b5ab17 100644
--- a/src/core/netif.c
+++ b/src/core/netif.c
@@ -88,6 +88,12 @@ static u8_t netif_num;
static err_t netif_null_output_ip6(struct netif *netif, struct pbuf *p,
ip6_addr_t *ipaddr);
#endif /* LWIP_IPV6 */
+#if LWIP_IPV6
+#define ipX_input(in, netif) (IP6H_V((const struct ip6_hdr *)in->payload) ==
6) ? ip6_input(in, netif) : ip_input(in, netif)
+#else
+#define ipX_input(in, netif) ip_input(in, netif)
+#endif
+
#if LWIP_HAVE_LOOPIF
static struct netif loop_netif;
@@ -127,6 +133,10 @@ netif_init(void)
#else /* NO_SYS */
netif_add(&loop_netif, &loop_ipaddr, &loop_netmask, &loop_gw, NULL,
netif_loopif_init, tcpip_input);
#endif /* NO_SYS */
+#if LWIP_IPV6
+ ip6_addr_set_loopback(&loop_netif.ip6_addr[0]);
+ netif_ip6_addr_set_state(&loop_netif, 0, IP6_ADDR_VALID);
+#endif /* LWIP_IPV6 */
netif_set_up(&loop_netif);
#endif /* LWIP_HAVE_LOOPIF */
@@ -798,7 +808,7 @@ netif_poll(struct netif *netif)
snmp_add_ifinoctets(stats_if, in->tot_len);
snmp_inc_ifinucastpkts(stats_if);
/* loopback packets are always IP packets! */
- if (ip_input(in, netif) != ERR_OK) {
+ if (ipX_input(in, netif) != ERR_OK) {
pbuf_free(in);
}
/* Don't reference the packet any more! */
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Fri 04 Jan 2013 12:51:59 AM GMT Name: ip6-loopback-0001.0.patch Size:
822B By: marathon96
These patches add support for IPv6 loopback.
<http://savannah.nongnu.org/patch/download.php?file_id=27196>
-------------------------------------------------------
Date: Fri 04 Jan 2013 12:51:59 AM GMT Name: ip6-loopback-0002.0.patch Size:
2kB By: marathon96
These patches add support for IPv6 loopback.
<http://savannah.nongnu.org/patch/download.php?file_id=27197>
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/patch/?7913>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [lwip-devel] [patch #7913] Enable Support for IPv6 Loopback,
Grant Erickson <=