Netfilter_queue 知识总结

本文详细介绍了Netfilter_queue的相关函数,包括nfnl_open()、nfq_unbind_pf/bind_pf()、nfq_create_queue()、nfq_set_mode()和nfq_handle_packet()。这些函数用于在用户空间与内核之间建立通信,处理网络数据包,并通过nfq_create_queue时传入的回调函数cb来处理接收到的数据包。
摘要由CSDN通过智能技术生成

Netfilter_queue 知识总结

函数名称:

struct nfnl_handle *nfnl_open(void)

 

函数说明:

开启nfnetlink 处理程序

函数参数:

void
函数功能:

该函数创建一个nfnetlink 处理程序,此函数创建NFNETLink处理程序,这是需要建立的用户空间与NFNETLink系统之间的通信。

 

返回值:

成功 指向nfnl_handle structure的有效地址。

失败:NULL

 

 

 

 

 

函数名称:

int nfq_unbind_pf(struct nfq_handle *h, u_int16_t pf)

或者

int nfq_bind_pf(struct nfq_handle *h, u_int16_t pf)

函数说明:

解绑(绑定)nf_queue 队列

函数参数:

h:nfq_open()返回struct nfnl_handle结构的指针;

pf: 协议族 AF_BRIDGE:7多协议桥,AF_INET:2 路由模式

 

返回值:失败 : -1

 成功 :  0

 

 

 

 

函数名称:

struct nfq_q_handle *nfq_create_queue(struct nfq_handle *h,

u_int16_t num,

nfq_callback *cb,

void *data)

 

函数说明:

将此套接字绑定到特定的队列号.

函数参数:

h : nfq_open()返回struct nfnl_handle结构的指针;

num: 队列的序列号

cb : 数据包的处理函数(回调函数)

data: 自定义数据

 

返回值:

成功:struct nfq_q_handle 指针

失败 : null

 

 

 

 

 

函数名称:

int nfq_set_mode(struct nfq_q_handle *qh,u_int8_t mode, u_int32_t range)

 

函数说明:

从netlink系统里设置copy数据的方式

 

函数参数:

       qh   :  nfq_create_queue()函数的返回值

mode : copy 方式

NFQNL_COPY_NONE,

NFQNL_COPY_META,

NFQNL_COPY_PACKET,

range:copy 数据长度

 

返回值:

成功0

失败 -1

 

 

函数名称:

int nfq_handle_packet(struct nfq_handle *h, char *buf, int len)

函数说明:

处理接收的数据

 

函数参数:

       h   : nfq_open()返回struct nfnl_handle结构的指针;

buf: 待处理的数据

len:数据长度

综上所述:

nf_queue仍然使用的netlink机制与内核之间进行通信,不同的是</

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值