Network Traffic Offloading

Network Offloading


The network offloading API provides hooks that a device vendor can use to provide an alternate implementation for an IP stack. This means that the actual network connection creation, data transfer, etc., is done in the vendor HAL instead of the Zephyr network stack.

API Reference

group net_offload

Network offloading interface.

Socket Offloading


In addition to the network offloading API, Zephyr allows offloading of networking functionality at the socket API level. With this approach, vendors who provide an alternate implementation of the networking stack, exposing socket API for their networking devices, can easily integrate it with Zephyr.

See drivers/wifi/simplelink/simplelink_sockets.c for a sample implementation on how to integrate network offloading at socket level.

API Reference

group socket_offload

Socket Offload Redirect API.


void socket_offload_register(const struct socket_offload *ops)

Register an offloaded socket API interface.

  • ops: A pointer to the offloaded socket API interface.

struct socket_offload
#include <socket_offload_ops.h>

An offloaded Socket API interface.

It is assumed that these offload functions follow the POSIX socket API standard for arguments, return values and setting of errno.