Transmit packet, determining link-layer address via neighbour discovery.
380 {
384
385
392 }
393
394
395
396
398
399
404
405
407
408
411
412
414
415
418 }
419
420 return 0;
421 }
422
423
425 netdev->ll_addr ) ) != 0 ) {
427 }
428
429 return 0;
430}
struct arbelprm_rc_send_wqe rc
#define NEIGHBOUR_DELAY_MS
static struct net_device * netdev
#define ENOMEM
Not enough space.
#define iob_push(iobuf, len)
#define list_add_tail(new, head)
Add a new entry to the tail of a list.
static struct neighbour * neighbour_create(struct net_device *netdev, struct net_protocol *net_protocol, const void *net_dest)
Create neighbour cache entry.
static struct neighbour * neighbour_find(struct net_device *netdev, struct net_protocol *net_protocol, const void *net_dest)
Find neighbour cache entry.
static struct pending_operation neighbour_delayed
Pending operation for delayed transmissions.
static void neighbour_tx_queue(struct neighbour *neighbour)
Transmit deferred packets.
static void neighbour_discover(struct neighbour *neighbour, struct neighbour_discovery *discovery, const void *net_source)
Start neighbour discovery.
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.
void pending_get(struct pending_operation *pending)
Mark an operation as pending.
struct list_head list
List of which this buffer is a member.
A neighbour transmission delay pseudo-header.
struct neighbour_discovery * discovery
Neighbour discovery protocol (if discovery is ongoing)
struct list_head tx_queue
Pending I/O buffers.
uint8_t ll_dest[MAX_LL_ADDR_LEN]
Link-layer destination address.
A network-layer protocol.
const char * name
Protocol name.
const char *(* ntoa)(const void *net_addr)
Transcribe network-layer address.
unsigned long currticks(void)
Get current system time in ticks.