mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-11-01 23:18:21 +00:00
net: remove doarp flag from netdev
This commit is contained in:
@@ -29,7 +29,6 @@ typedef struct netdev_t {
|
|||||||
size_t mtu;
|
size_t mtu;
|
||||||
uint32_t ip;
|
uint32_t ip;
|
||||||
hashtable_t arpcache;
|
hashtable_t arpcache;
|
||||||
bool doarp;
|
|
||||||
int (*allocdesc)(size_t requestedsize, netdesc_t *desc);
|
int (*allocdesc)(size_t requestedsize, netdesc_t *desc);
|
||||||
int (*sendpacket)(struct netdev_t *_internal, netdesc_t desc, mac_t targetmac, int proto);
|
int (*sendpacket)(struct netdev_t *_internal, netdesc_t desc, mac_t targetmac, int proto);
|
||||||
} netdev_t;
|
} netdev_t;
|
||||||
|
|||||||
@@ -168,11 +168,9 @@ int ipv4_sendpacket(void *buffer, size_t packetsize, uint32_t ip, int proto, net
|
|||||||
if (entry.netdev == NULL)
|
if (entry.netdev == NULL)
|
||||||
return 0; // if a packet can't be routed to anywhere just pretend it was sent somewhere
|
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);
|
||||||
int error = arp_lookup(entry.netdev, entry.gateway ? entry.gateway : ip, &mac);
|
if (error)
|
||||||
if (error)
|
return error;
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
||||||
netdev = entry.netdev;
|
netdev = entry.netdev;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ void loopback_init() {
|
|||||||
loopbacknetdev.sendpacket = loopback_sendpacket;
|
loopbacknetdev.sendpacket = loopback_sendpacket;
|
||||||
loopbacknetdev.allocdesc = loopback_allocdesc;
|
loopbacknetdev.allocdesc = loopback_allocdesc;
|
||||||
loopbacknetdev.ip = 0x7f000001;
|
loopbacknetdev.ip = 0x7f000001;
|
||||||
loopbacknetdev.doarp = false;
|
|
||||||
__assert(hashtable_init(&loopbacknetdev.arpcache, 30) == 0);
|
__assert(hashtable_init(&loopbacknetdev.arpcache, 30) == 0);
|
||||||
|
|
||||||
for (int i = 0; i < 6; ++i)
|
for (int i = 0; i < 6; ++i)
|
||||||
|
|||||||
@@ -179,7 +179,6 @@ int vionet_newdevice(viodevice_t *viodevice) {
|
|||||||
netdev->netdev.mtu = 1500;
|
netdev->netdev.mtu = 1500;
|
||||||
netdev->netdev.sendpacket = vionet_sendpacket;
|
netdev->netdev.sendpacket = vionet_sendpacket;
|
||||||
netdev->netdev.allocdesc = vionet_allocdesc;
|
netdev->netdev.allocdesc = vionet_allocdesc;
|
||||||
netdev->netdev.doarp = true;
|
|
||||||
__assert(hashtable_init(&netdev->netdev.arpcache, 30) == 0);
|
__assert(hashtable_init(&netdev->netdev.arpcache, 30) == 0);
|
||||||
|
|
||||||
// initialize queues
|
// initialize queues
|
||||||
|
|||||||
Reference in New Issue
Block a user