$(LWIPDIR)/core/ipv4/ip4.c $(LWIPDIR)/core/ipv4/ip4_addr.c \
$(LWIPDIR)/core/ipv4/ip4_frag.c $(LWIPDIR)/core/ipv4/dhcp.c \
$(LWIPDIR)/core/ipv4/acd.c
+ LWIP_IPV6 := $(LWIPDIR)/core/ipv6/ethip6.c $(LWIPDIR)/core/ipv6/icmp6.c \
+ $(LWIPDIR)/core/ipv6/inet6.c $(LWIPDIR)/core/ipv6/ip6.c \
+ $(LWIPDIR)/core/ipv6/ip6_addr.c $(LWIPDIR)/core/ipv6/ip6_frag.c \
+ $(LWIPDIR)/core/ipv6/mld6.c $(LWIPDIR)/core/ipv6/nd6.c
LWIP_NETIF := $(LWIPDIR)/netif/ethernet.c
LWIP_API := $(LWIPDIR)/api/api_lib.c $(LWIPDIR)/api/api_msg.c \
$(LWIPDIR)/api/err.c $(LWIPDIR)/api/if_api.c $(LWIPDIR)/api/netbuf.c \
$(LWIPDIR)/api/netifapi.c $(LWIPDIR)/api/tcpip.c
- LWIP_SOURCES := $(LWIP_CORE) $(LWIP_IPV4) $(LWIP_NETIF) $(LWIP_API)
+ LWIP_SOURCES := $(LWIP_CORE) $(LWIP_IPV4) $(LWIP_IPV6) $(LWIP_NETIF) $(LWIP_API)
NET_SOURCES := $(wildcard $(SRC_DIR)/net/*.c) $(wildcard $(SRC_DIR)/net/lwip_port/*.c)
C_SOURCES += $(NET_SOURCES)
/* ---- IPv4 ---- */
#define LWIP_IPV4 1
-#define LWIP_IPV6 0
+#define LWIP_IPV6 1
+#define LWIP_IPV6_MLD 1
+#define LWIP_IPV6_AUTOCONFIG 1
+#define LWIP_ICMP6 1
+#define LWIP_IPV6_DHCP6 0
+#define MEMP_NUM_MLD6_GROUP 4
+#define LWIP_IPV6_NUM_ADDRESSES 3
+#define LWIP_ND6_NUM_NEIGHBORS 8
+#define LWIP_ND6_NUM_DESTINATIONS 8
+#define LWIP_ND6_NUM_PREFIXES 4
+#define LWIP_ND6_NUM_ROUTERS 2
#define LWIP_ARP 1
#define LWIP_ICMP 1
#define LWIP_UDP 1
if (!s) return -EBADF;
ip_addr_t ip;
- ip_addr_set_ip4_u32(&ip, addr->sin_addr);
+ ip_addr_set_zero_ip4(&ip);
+ ip4_addr_set_u32(ip_2_ip4(&ip), addr->sin_addr);
uint16_t port = ntohs(addr->sin_port);
err_t err;
if (!s) return -EBADF;
ip_addr_t ip;
- ip_addr_set_ip4_u32(&ip, addr->sin_addr);
+ ip_addr_set_zero_ip4(&ip);
+ ip4_addr_set_u32(ip_2_ip4(&ip), addr->sin_addr);
uint16_t port = ntohs(addr->sin_port);
if (s->type == SOCK_STREAM) {
if (s->type != SOCK_DGRAM) return -EOPNOTSUPP;
ip_addr_t ip;
- ip_addr_set_ip4_u32(&ip, dest->sin_addr);
+ ip_addr_set_zero_ip4(&ip);
+ ip4_addr_set_u32(ip_2_ip4(&ip), dest->sin_addr);
uint16_t port = ntohs(dest->sin_port);
struct pbuf* p = pbuf_alloc(PBUF_TRANSPORT, (u16_t)len, PBUF_RAM);
void dns_resolver_init(uint32_t server_ip) {
dns_init();
ip_addr_t dns_server;
- IP4_ADDR(&dns_server, (server_ip >> 24) & 0xFF,
- (server_ip >> 16) & 0xFF,
- (server_ip >> 8) & 0xFF,
- server_ip & 0xFF);
+ ip_addr_set_zero_ip4(&dns_server);
+ IP4_ADDR(ip_2_ip4(&dns_server), (server_ip >> 24) & 0xFF,
+ (server_ip >> 16) & 0xFF,
+ (server_ip >> 8) & 0xFF,
+ server_ip & 0xFF);
dns_setserver(0, &dns_server);
kprintf("[DNS] Resolver initialized\n");
}
process_sleep(2 * TIMER_HZ); /* ~2 seconds */
ip_addr_t target;
- IP4_ADDR(&target, 10, 0, 2, 2);
+ ip_addr_set_zero_ip4(&target);
+ IP4_ADDR(ip_2_ip4(&target), 10, 0, 2, 2);
int ok = 0;
for (int i = 0; i < PING_COUNT; i++) {