一、FF API接口汇总
头文件 ff_api.h 定义了如下 API,在使用 F-Stack 时应该用来替换系统调用。
1.ff_init
函数:int ff_init(const char *conf, int argc, char * const argv[]);
参数:
conf:配置文件路径
argc:入参个数
argv:-c <coremask>,可以覆盖配置文件中的coremask
功能:初始化F-Stack,包括DPDK/FreeBSD网络栈等。
2.ff_run
函数:void ff_run(loop_func_t loop, void *arg);
参数:
loop:是一个回调函数,服务逻辑由用户实现,由 F-Stack 的每次 poll 调用。
arg:用户数据
功能:启动fstack,并注册一个回调函数
二、控制API汇总
1.ff_fcntl
函数:int ff_fcntl(int fd, int cmd, ...);
参数:
功能:fcntl() 对打开的文件描述符 fd 执行下述操作之一。 操作由cmd决定。
更多信息请参见 man fcntl。
2.ff_sysctl
函数:int ff_sysctl(const int *name, u_int namelen, void *oldp, size_t *oldlenp,
const void *newp, size_t newlen);
参数:
功能:ff_sysctl 用于在运行时修改内核参数。但是,目前仅在启动 F-Stack 之前才支持。
3.ff_ioctl
函数:int ff_ioctl(int fd, unsigned long request, ...);
参数:
功能:ioctl() 函数操作特殊文件的底层设备参数。更多信息请参见 man ioctl。
三、网络API汇总
1.ff_socket
函数:int ff_socket(int domain, int type, int protocol);
参数:
功能:ff_socket 创建一个用于通信的端点并返回一个引用该端点的文件描述符。
更多信息请参见 man socket。
2.ff_setsockopt & ff_getsockopt
<