Transmit packet, determining link-layer address via neighbour discovery.
399 {
403
404
411 }
412
413
414
415
417
418
423
424
426
427
430
431
433
434
437 }
438
439 return 0;
440 }
441
442
444 netdev->ll_addr ) ) != 0 ) {
446 }
447
448 return 0;
449}
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.