62 const void *net_dest,
const void *net_source ) {
94 DBGC (
netdev,
"ARP %s %s %s could not transmit request: %s\n",
198 netdev->ll_addr ) ) != 0 ) {
199 DBGC (
netdev,
"ARP %s %s %s could not transmit reply: %s\n",
#define NULL
NULL pointer (VOID *)
struct arbelprm_rc_send_wqe rc
static const char * arp_ntoa(const void *net_addr __unused)
Transcribe ARP address.
int arp_tx_request(struct net_device *netdev, struct net_protocol *net_protocol, const void *net_dest, const void *net_source)
Transmit ARP request.
static struct arp_net_protocol * arp_find_protocol(uint16_t net_proto)
Identify ARP protocol.
struct neighbour_discovery arp_discovery
ARP neighbour discovery protocol.
static int arp_rx(struct io_buffer *iobuf, struct net_device *netdev, const void *ll_dest __unused, const void *ll_source __unused, unsigned int flags __unused)
Process incoming ARP packets.
Address Resolution Protocol.
#define ARP_NET_PROTOCOLS
ARP protocol table.
struct bofm_section_header done
static struct net_device * netdev
#define __unused
Declare a variable or data structure as unused.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define EINVAL
Invalid argument.
#define ENOMEM
Not enough space.
#define EPROTONOSUPPORT
Protocol not supported.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Address Resolution Protocol constants and types.
static void * arp_sender_pa(struct arphdr *arphdr)
ARP packet sender protocol address.
static void * arp_target_ha(struct arphdr *arphdr)
ARP packet target hardware address.
#define ARPOP_REQUEST
ARP request.
static void * arp_target_pa(struct arphdr *arphdr)
ARP packet target protocol address.
#define ARPOP_REPLY
ARP reply.
static size_t arp_len(struct arphdr *arphdr)
ARP packet length.
static void * arp_sender_ha(struct arphdr *arphdr)
ARP packet sender hardware address.
void * memcpy(void *dest, const void *src, size_t len) __nonnull
void * memset(void *dest, int character, size_t len) __nonnull
void free_iob(struct io_buffer *iobuf)
Free I/O buffer.
struct io_buffer * alloc_iob(size_t len)
Allocate I/O buffer.
#define iob_put(iobuf, len)
#define iob_disown(iobuf)
Disown an I/O buffer.
static size_t iob_len(struct io_buffer *iobuf)
Calculate length of data in an I/O buffer.
#define iob_reserve(iobuf, len)
int neighbour_update(struct net_device *netdev, struct net_protocol *net_protocol, const void *net_dest, const void *ll_dest)
Update existing neighbour cache entry.
int net_tx(struct io_buffer *iobuf, struct net_device *netdev, struct net_protocol *net_protocol, const void *ll_dest, const void *ll_source)
Transmit network-layer packet.
Network device management.
#define MAX_LL_HEADER_LEN
Maximum length of a link-layer header.
#define MAX_NET_ADDR_LEN
Maximum length of a network-layer address.
#define __net_protocol
Declare a network-layer protocol.
#define MAX_LL_ADDR_LEN
Maximum length of a link-layer address.
char * strerror(int errno)
Retrieve string representation of error number.
void * memswap(void *first, void *second, size_t len)
Swap memory regions.
A network-layer protocol that relies upon ARP.
struct net_protocol * net_protocol
Network-layer protocol.
int(* check)(struct net_device *netdev, const void *net_addr)
Check existence of address.
uint8_t ar_hln
Link-layer address length.
uint16_t ar_op
ARP opcode.
uint16_t ar_pro
Network-layer protocol.
uint8_t ar_pln
Network-layer address length.
uint16_t ar_hrd
Link-layer protocol.
void * data
Start of data.
const char * name
Protocol name.
const char *(* ntoa)(const void *ll_addr)
Transcribe link-layer address.
uint8_t ll_addr_len
Link-layer address length.
uint16_t ll_proto
Link-layer protocol.
A neighbour discovery protocol.
A network-layer protocol.
const char * name
Protocol name.
uint16_t net_proto
Network-layer protocol.
uint8_t net_addr_len
Network-layer address length.
const char *(* ntoa)(const void *net_addr)
Transcribe network-layer address.
#define for_each_table_entry(pointer, table)
Iterate through all entries within a linker table.