diff --git a/kernel-src/include/kernel/net.h b/kernel-src/include/kernel/net.h index 0ee2a10a..3ebde20a 100644 --- a/kernel-src/include/kernel/net.h +++ b/kernel-src/include/kernel/net.h @@ -29,7 +29,6 @@ typedef struct netdev_t { size_t mtu; uint32_t ip; hashtable_t arpcache; - bool doarp; int (*allocdesc)(size_t requestedsize, netdesc_t *desc); int (*sendpacket)(struct netdev_t *_internal, netdesc_t desc, mac_t targetmac, int proto); } netdev_t; diff --git a/kernel-src/io/net/ipv4.c b/kernel-src/io/net/ipv4.c index 162fb251..330435a2 100644 --- a/kernel-src/io/net/ipv4.c +++ b/kernel-src/io/net/ipv4.c @@ -168,11 +168,9 @@ int ipv4_sendpacket(void *buffer, size_t packetsize, uint32_t ip, int proto, net if (entry.netdev == NULL) return 0; // if a packet can't be routed to anywhere just pretend it was sent somewhere - if (entry.netdev->doarp) { - int error = arp_lookup(entry.netdev, entry.gateway ? entry.gateway : ip, &mac); - if (error) - return error; - } + int error = arp_lookup(entry.netdev, entry.gateway ? entry.gateway : ip, &mac); + if (error) + return error; netdev = entry.netdev; } else { diff --git a/kernel-src/io/net/loopback.c b/kernel-src/io/net/loopback.c index 228bc3c2..9f5345ae 100644 --- a/kernel-src/io/net/loopback.c +++ b/kernel-src/io/net/loopback.c @@ -51,7 +51,6 @@ void loopback_init() { loopbacknetdev.sendpacket = loopback_sendpacket; loopbacknetdev.allocdesc = loopback_allocdesc; loopbacknetdev.ip = 0x7f000001; - loopbacknetdev.doarp = false; __assert(hashtable_init(&loopbacknetdev.arpcache, 30) == 0); for (int i = 0; i < 6; ++i) diff --git a/kernel-src/io/net/vionet.c b/kernel-src/io/net/vionet.c index d294eab5..4bd24ebd 100644 --- a/kernel-src/io/net/vionet.c +++ b/kernel-src/io/net/vionet.c @@ -179,7 +179,6 @@ int vionet_newdevice(viodevice_t *viodevice) { netdev->netdev.mtu = 1500; netdev->netdev.sendpacket = vionet_sendpacket; netdev->netdev.allocdesc = vionet_allocdesc; - netdev->netdev.doarp = true; __assert(hashtable_init(&netdev->netdev.arpcache, 30) == 0); // initialize queues