haiku/headers/private/net/arp_control.h
Hugo Santos 624c52d8b7 ARP now queues packets while resolving a destination instead of blocking on send_data(). This fixes several issues:
- TCP now behaves correctly when receiving new connections as its SYN/ACK is queued, or if lost correctly retransmitted when the peer resends a SYN.
 - The first ICMP Replies from an external on-link host pinging Haiku are no longer lost.
 - Reduced the number of ARP messages Haiku needs to generate until resolving an entry.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20712 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-15 21:00:12 +00:00

40 lines
747 B
C

/*
* Copyright 2006, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef ARP_CONTROL_H
#define ARP_CONTROL_H
#include <ethernet.h>
#include <netinet/in.h>
// ARP flags
#define ARP_FLAG_LOCAL 0x01
#define ARP_FLAG_REJECT 0x02
#define ARP_FLAG_PERMANENT 0x04
#define ARP_FLAG_PUBLISH 0x08
#define ARP_FLAG_VALID 0x10
// generic syscall interface
#define ARP_SYSCALLS "network/arp"
#define ARP_SET_ENTRY 1
#define ARP_GET_ENTRY 2
#define ARP_GET_ENTRIES 3
#define ARP_DELETE_ENTRY 4
#define ARP_FLUSH_ENTRIES 5
#define ARP_IGNORE_REPLIES 6
struct arp_control {
in_addr_t address;
uint8 ethernet_address[ETHER_ADDRESS_LENGTH];
uint32 flags;
uint32 cookie;
};
#endif // ARP_CONTROL_H