Barrelfish
|
Unidirectional bulk data transfer via shared memory. More...
Data Structures | |
struct | bulk_net_msgdesc |
Macros | |
#define | BULK_NET_ENABLE_DEBUG 1 |
enables/disables the entire debug outputs of the bulk net backend | |
#define | BULK_NET_ENABLE_STATUS 1 |
enables/disables status messages | |
#define | BULK_NET_ENABLE_TRACE 0 |
enables/disables the tracing debug output | |
#define | BULK_NET_ENABLE_DEBUG_E10K 0 |
enables/disables the debug output for the e10k module | |
#define | BULK_NET_ENABLE_DEBUG_TRANSF 0 |
enables/disables the debug output for the transfer module | |
#define | BULK_NET_ENABLE_DEBUG_BACKEND 1 |
enables/disables the debug output for the backend module | |
#define | DO_MSG_DUMP 0 |
switch to turn on message dumping | |
Functions | |
errval_t | bulk_e10k_init (struct bulk_e10k *bu, struct waitset *ws, const char *card, uint8_t queue, size_t buffer_size, size_t ring_size, void(*received)(struct bulk_e10k *, struct bulk_net_msgdesc *), void(*transmitted)(struct bulk_e10k *, void *)) |
errval_t | bulk_e10k_rx_add (struct bulk_e10k *bu, uint64_t phys, uint64_t header, void *opaque) |
errval_t | bulk_e10k_send (struct bulk_e10k *bu, struct bulk_net_msgdesc *desc) |
errval_t | bulk_e10k_port_add (struct bulk_e10k *bu, uint16_t port) |
errval_t | bulk_e10k_port_alloc (struct bulk_e10k *bu, uint16_t *port) |
errval_t | bulk_e10k_ip_info (struct bulk_e10k *bu, uint32_t *ip) |
errval_t | bulk_e10k_arp_lookup (struct bulk_e10k *bu, uint32_t ip, uint64_t *mac) |
Unidirectional bulk data transfer via shared memory.
errval_t bulk_e10k_arp_lookup | ( | struct bulk_e10k * | bu, |
uint32_t | ip, | ||
uint64_t * | mac | ||
) |
Do an ARP lookup on this interface
bu | Channnel struct |
ip | IP address to resolve (in host byte order) |
mac | Pointer to variable where MAC address will be stored |
errval_t bulk_e10k_init | ( | struct bulk_e10k * | bu, |
struct waitset * | ws, | ||
const char * | card, | ||
uint8_t | queue, | ||
size_t | buffer_size, | ||
size_t | ring_size, | ||
void(*)(struct bulk_e10k *, struct bulk_net_msgdesc *) | received, | ||
void(*)(struct bulk_e10k *, void *) | transmitted | ||
) |
Initialize directly mapped RX/TX queue pair with e10k NIC.
bu | Channel struct |
ws | Waitset |
card | Card name |
queue | Queue ID to use |
buffer_size | Size of receive buffers in bytes |
ring_size | Number of descriptors in the RX/TX rings |
received | Callback for a received packet |
transmitted | Callback for a transmitted packet |
errval_t bulk_e10k_ip_info | ( | struct bulk_e10k * | bu, |
uint32_t * | ip | ||
) |
Get IP address configured for this interface.
bu | Channel struct |
ip | Pointer to variable where IP will be stored (host byte order) |
errval_t bulk_e10k_port_add | ( | struct bulk_e10k * | bu, |
uint16_t | port | ||
) |
Steer a specific UDP port to this queue.
bu | Channel struct |
port | Port to allocate (in host byte order) |
errval_t bulk_e10k_port_alloc | ( | struct bulk_e10k * | bu, |
uint16_t * | port | ||
) |
Allocate an unused UDP port and steer it to this queue.
bu | Channel struct |
port | Pointer to variable where port number will be stored (host byte order) |
errval_t bulk_e10k_rx_add | ( | struct bulk_e10k * | bu, |
uint64_t | phys, | ||
uint64_t | header, | ||
void * | opaque | ||
) |
Add a buffer to the receive queue.
bu | Channel struct |
phys | Physical address of buffer |
header | Physical address of header buffer (needs E10K_HDRSZ bytes) |
opaque | User-Data for this buffer, will be returned when it is used in a received packet. |
errval_t bulk_e10k_send | ( | struct bulk_e10k * | bu, |
struct bulk_net_msgdesc * | desc | ||
) |
Send out a packet.
bu | Channel struct |
decs | Descriptor for buffer chain to transmit |