已合并
包过滤与重定向C API文档 #147281
heqianmo创建于 5月28日
包过滤与重定向C API文档 #147281
已合并
heqianmo创建于 5月28日
共 17 个文件变更+838-3
@@ -29,12 +29,13 @@
29 - [@ohos.net.policy (网络策略管理)(系统接口)](js-apis-net-policy-sys.md)29 - [@ohos.net.policy (网络策略管理)(系统接口)](js-apis-net-policy-sys.md)
30 - [@ohos.net.sharing (网络共享管理)(系统接口)](js-apis-net-sharing-sys.md)30 - [@ohos.net.sharing (网络共享管理)(系统接口)](js-apis-net-sharing-sys.md)
31 - [@ohos.net.statistics (流量管理)(系统接口)](js-apis-net-statistics-sys.md)31 - [@ohos.net.statistics (流量管理)(系统接口)](js-apis-net-statistics-sys.md)
32- - [@ohos.net.vpn (VPN管理)(系统接口)](js-apis-net-vpn-sys.md)32+ - [@ohos.net.vpn (VPN 管理)(系统接口)](js-apis-net-vpn-sys.md)
33- - [@ohos.net.vpnExtension (VPN增强管理)(系统接口)](js-apis-net-vpnExtension-sys.md)33+ - [@ohos.net.vpnExtension (VPN 增强管理)(系统接口)](js-apis-net-vpnExtension-sys.md)
34 - [@ohos.net.netFirewall (网络防火墙)(系统接口)](js-apis-net-netfirewall-sys.md)34 - [@ohos.net.netFirewall (网络防火墙)(系统接口)](js-apis-net-netfirewall-sys.md)
35 <!--DelEnd-->35 <!--DelEnd-->
36- C API<!--network-c-->36- C API<!--network-c-->
37 - 模块<!--network-module-->37 - 模块<!--network-module-->
38+ - [TrafficFilter](capi-trafficfilter.md)
38 - [NetConnection](capi-netconnection.md)39 - [NetConnection](capi-netconnection.md)
39 - [Netstack](capi-netstack.md)40 - [Netstack](capi-netstack.md)
40 - 头文件<!--network-headerfile-->41 - 头文件<!--network-headerfile-->
@@ -42,6 +43,8 @@
42 - [net_connection_type.h](capi-net-connection-type-h.md)43 - [net_connection_type.h](capi-net-connection-type-h.md)
43 - [net_ssl_c.h](capi-net-ssl-c-h.md)44 - [net_ssl_c.h](capi-net-ssl-c-h.md)
44 - [net_ssl_c_type.h](capi-net-ssl-c-type-h.md)45 - [net_ssl_c_type.h](capi-net-ssl-c-type-h.md)
46+ - [net_trafficfilter.h](capi-net-trafficfilter-h.md)
47+ - [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
45 - [net_websocket.h](capi-net-websocket-h.md)48 - [net_websocket.h](capi-net-websocket-h.md)
46 - [net_websocket_type.h](capi-net-websocket-type-h.md)49 - [net_websocket_type.h](capi-net-websocket-type-h.md)
47 - [net_http.h](capi-net-http-h.md)50 - [net_http.h](capi-net-http-h.md)
@@ -83,6 +86,19 @@
83 - [Http_Request](capi-netstack-http-request.md)86 - [Http_Request](capi-netstack-http-request.md)
84 - [Http_EventsHandler](capi-netstack-http-eventshandler.md)87 - [Http_EventsHandler](capi-netstack-http-eventshandler.md)
85 - [Http_Headers](capi-netstack-http-headers.md)88 - [Http_Headers](capi-netstack-http-headers.md)
89+ - [OH_TrafficFilter_IPAddress](capi-trafficfilter-oh-trafficfilter-ipaddress.md)
90+ - [OH_TrafficFilter_IPCidr](capi-trafficfilter-oh-trafficfilter-ipcidr.md)
91+ - [OH_TrafficFilter_IPRange](capi-trafficfilter-oh-trafficfilter-iprange.md)
92+ - [OH_TrafficFilter_IPMulti](capi-trafficfilter-oh-trafficfilter-ipmulti.md)
93+ - [OH_TrafficFilter_IPMatch](capi-trafficfilter-oh-trafficfilter-ipmatch.md)
94+ - [OH_TrafficFilter_InterfaceMatch](capi-trafficfilter-oh-trafficfilter-interfacematch.md)
95+ - [OH_TrafficFilter_PortRange](capi-trafficfilter-oh-trafficfilter-portrange.md)
96+ - [OH_TrafficFilter_PortMulti](capi-trafficfilter-oh-trafficfilter-portmulti.md)
97+ - [OH_TrafficFilter_PortMatch](capi-trafficfilter-oh-trafficfilter-portmatch.md)
98+ - [OH_TrafficFilter_ConnectionInfo](capi-trafficfilter-oh-trafficfilter-connectioninfo.md)
99+ - [OH_TrafficFilter_ProcessInfo](capi-trafficfilter-oh-trafficfilter-processinfo.md)
100+ - [OH_TrafficFilter_RedirectRule](capi-trafficfilter-oh-trafficfilter-redirectrule.md)
101+ - [OH_TrafficFilter_Redirector](capi-trafficfilter-oh-trafficfilter-redirector.md)
86 - [OH_Http_Interceptor_Headers](capi-netstack-http-interceptor-headers.md)102 - [OH_Http_Interceptor_Headers](capi-netstack-http-interceptor-headers.md)
87 - [OH_Http_Interceptor_Request](capi-netstack-http-interceptor-request.md)103 - [OH_Http_Interceptor_Request](capi-netstack-http-interceptor-request.md)
88 - [OH_Http_Interceptor_Response](capi-netstack-http-interceptor-response.md)104 - [OH_Http_Interceptor_Response](capi-netstack-http-interceptor-response.md)
@@ -104,4 +120,4 @@
104 - [VPN错误码](errorcode-net-vpn.md)120 - [VPN错误码](errorcode-net-vpn.md)
105 - [网络安全校验错误码](errorcode-net-networkSecurity.md)121 - [网络安全校验错误码](errorcode-net-networkSecurity.md)
106 - [内核错误码](errorcode-kernel.md)122 - [内核错误码](errorcode-kernel.md)
107- - [防火墙错误码](errorcode-net-netfirewall.md)123+ - [防火墙错误码](errorcode-net-netfirewall.md)
@@ -0,0 +1,170 @@
1+# net_trafficfilter.h
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
A

❌疑似检测出中文错别字问题

错误原因:"Adviser" 通常应拼写为 "Advisor",虽然两者在某些上下文中都可接受,但在技术文档中 "Advisor" 更为常见和规范。 建议修改为:

改动建议
8
- <!--Adviser: @zhang_yixin13-->
8
+ <!--Advisor: @zhang_yixin13-->
应用建议

💡 温馨提示: 请审视上述建议的准确性。若您认为检测结果不合理或属于误报,请通过 反馈通道 告知我们。您的反馈对于提升 AI 检测精度的意义重大,我们将据此持续改进此工具
likedislike
9+ 
10+## 概述
11+ 
12+声明网络流量过滤与重定向功能的C接口。该头文件提供创建和销毁报文控制器、注册报文回调、添加和清除过滤规则,以及创建和销毁流量重定向器、添加和清除重定向规则的接口。<br> 适用于需要在系统层面对网络数据包进行拦截、过滤和重定向的应用场景。
13+ 
14+**库:** libnet_trafficfilter.so
15+ 
16+**系统能力:** SystemCapability.Communication.NetManager.NetFirewall
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+## 汇总
23+ 
24+### 函数
25+ 
26+| 名称 | 描述 |
27+| -- | -- |
28+| [int32_t OH_TrafficFilter_CreateRedirector(uint32_t group_id, uint32_t priority, OH_TrafficFilter_Redirector** redirector)](#oh_trafficfilter_createredirector) | 创建流量重定向实例,用于将TCP流量重定向到代理服务器。资源管理:必须调用[OH_TrafficFilter_DestroyRedirector](capi-net-trafficfilter-h.md#oh_trafficfilter_destroyredirector)释放资源。如果该函数失败,不会返回有效的重定向器。 |
29+| [int32_t OH_TrafficFilter_DestroyRedirector(OH_TrafficFilter_Redirector* redirector)](#oh_trafficfilter_destroyredirector) | 销毁重定向实例并释放相关资源(包括规则),调用后句柄将失效。 |
30+| [int32_t OH_TrafficFilter_AddRedirectRule(OH_TrafficFilter_Redirector* redirector, const OH_TrafficFilter_RedirectRule* rule)](#oh_trafficfilter_addredirectrule) | 添加TCP流量重定向规则,将匹配的流量重定向到指定的代理服务器。如需清除重定向规则,需要调用[OH_TrafficFilter_ClearRedirectRule](capi-net-trafficfilter-h.md#oh_trafficfilter_clearredirectrule)。 |
31+| [int32_t OH_TrafficFilter_ClearRedirectRule(OH_TrafficFilter_Redirector* redirector)](#oh_trafficfilter_clearredirectrule) | 清除所有重定向规则。 |
32+| [int32_t OH_TrafficFilter_QueryProcess(const OH_TrafficFilter_ConnectionInfo* connection_info, OH_TrafficFilter_ProcessInfo* process_info)](#oh_trafficfilter_queryprocess) | 根据网络连接信息查询对应的进程信息。通过源IP、目的IP、源端口、目的端口和协议类型组成的五元组连接信息,查询发起该连接的进程信息。 |
33+ 
34+## 函数说明
35+ 
36+### OH_TrafficFilter_CreateRedirector()
37+ 
38+```c
39+int32_t OH_TrafficFilter_CreateRedirector(uint32_t group_id, uint32_t priority, OH_TrafficFilter_Redirector** redirector)
40+```
41+ 
42+**描述**
43+ 
44+创建流量重定向实例,用于将TCP流量重定向到代理服务器。资源管理:必须调用[OH_TrafficFilter_DestroyRedirector](capi-net-trafficfilter-h.md#oh_trafficfilter_destroyredirector)释放资源。如果该函数失败,不会返回有效的重定向器。
45+ 
46+**需要权限:** ohos.permission.kernel.TRAFFIC_FILTER
47+ 
48+**起始版本:** 26.0.0
49+ 
50+**参数:**
51+ 
52+| 参数项 | 描述 |
53+| -- | -- |
54+| uint32_t group_id | 重定向链标识符。这是应用内的逻辑分组ID。同一应用内的多个重定向器可以使用不同的group_id。不同应用的相同group_id会自动隔离。有效范围为[[OH_TRAFFICFILTER_MIN_GROUP_ID](capi-net-trafficfilter-type-h.md#宏定义), [OH_TRAFFICFILTER_MAX_GROUP_ID](capi-net-trafficfilter-type-h.md#宏定义)],包含两个边界。如果group_id超出此范围,该函数返回[OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)。 |
55+| uint32_t priority | 优先级。决定不同group_id链之间的执行顺序,数值越小越先执行。注意:重定向器优先级高于报文过滤器优先级。有效范围为[[OH_TRAFFICFILTER_MIN_PRIORITY](capi-net-trafficfilter-type-h.md#宏定义), [OH_TRAFFICFILTER_MAX_PRIORITY](capi-net-trafficfilter-type-h.md#宏定义)],包含两个边界。如果priority超出此范围,该函数返回[OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)。 |
56+| redirector | 出参,成功时为重定向句柄。 |
57+ 
58+**返回:**
59+ 
60+| 类型 | 说明 |
61+| -- | -- |
62+| int32_t | [OH_TRAFFICFILTER_OK](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 成功。<br> [OH_TRAFFICFILTER_ERROR_PERMISSION_DENIED](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 缺少权限。<br> [OH_TRAFFICFILTER_ERROR_GROUP_ID_IN_USE](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - group_id已存在。<br> [OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 优先级无效。 |
63+ 
64+### OH_TrafficFilter_DestroyRedirector()
65+ 
66+```c
67+int32_t OH_TrafficFilter_DestroyRedirector(OH_TrafficFilter_Redirector* redirector)
68+```
69+ 
70+**描述**
71+ 
72+销毁重定向实例并释放相关资源(包括规则),调用后句柄将失效。
73+ 
74+**需要权限:** ohos.permission.kernel.TRAFFIC_FILTER
75+ 
76+**起始版本:** 26.0.0
77+ 
78+**参数:**
79+ 
80+| 参数项 | 描述 |
81+| -- | -- |
82+| [OH_TrafficFilter_Redirector](capi-trafficfilter-oh-trafficfilter-redirector.md)* redirector | OH_TrafficFilter_Redirector句柄。 |
83+ 
84+**返回:**
85+ 
86+| 类型 | 说明 |
87+| -- | -- |
88+| int32_t | [OH_TRAFFICFILTER_OK](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 成功。<br> [OH_TRAFFICFILTER_ERROR_PERMISSION_DENIED](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 缺少权限。<br> [OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - redirector为NULL。<br> [OH_TRAFFICFILTER_ERROR_NOT_FOUND](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 未找到指定的重定向器句柄。 |
89+ 
90+### OH_TrafficFilter_AddRedirectRule()
91+ 
92+```c
93+int32_t OH_TrafficFilter_AddRedirectRule(OH_TrafficFilter_Redirector* redirector, const OH_TrafficFilter_RedirectRule* rule)
94+```
95+ 
96+**描述**
97+ 
98+添加TCP流量重定向规则,将匹配的流量重定向到指定的代理服务器。如需清除重定向规则,需要调用[OH_TrafficFilter_ClearRedirectRule](capi-net-trafficfilter-h.md#oh_trafficfilter_clearredirectrule)。
99+ 
100+**需要权限:** ohos.permission.kernel.TRAFFIC_FILTER
101+ 
102+**起始版本:** 26.0.0
103+ 
104+**参数:**
105+ 
106+| 参数项 | 描述 |
107+| -- | -- |
108+| [OH_TrafficFilter_Redirector](capi-trafficfilter-oh-trafficfilter-redirector.md)* redirector | OH_TrafficFilter_Redirector句柄。 |
109+| rule | 重定向规则,不能为NULL。 |
110+ 
111+**返回:**
112+ 
113+| 类型 | 说明 |
114+| -- | -- |
115+| int32_t | [OH_TRAFFICFILTER_OK](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 成功。<br> [OH_TRAFFICFILTER_ERROR_PERMISSION_DENIED](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 缺少权限。<br> [OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - redirector或rule为NULL。<br> [OH_TRAFFICFILTER_ERROR_TOO_MANY_RULES](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 添加的规则过多。 |
116+ 
117+### OH_TrafficFilter_ClearRedirectRule()
118+ 
119+```c
120+int32_t OH_TrafficFilter_ClearRedirectRule(OH_TrafficFilter_Redirector* redirector)
121+```
122+ 
123+**描述**
124+ 
125+清除所有重定向规则。
126+ 
127+**需要权限:** ohos.permission.kernel.TRAFFIC_FILTER
128+ 
129+**起始版本:** 26.0.0
130+ 
131+**参数:**
132+ 
133+| 参数项 | 描述 |
134+| -- | -- |
135+| [OH_TrafficFilter_Redirector](capi-trafficfilter-oh-trafficfilter-redirector.md)* redirector | OH_TrafficFilter_Redirector句柄。 |
136+ 
137+**返回:**
138+ 
139+| 类型 | 说明 |
140+| -- | -- |
141+| int32_t | [OH_TRAFFICFILTER_OK](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 成功。<br> [OH_TRAFFICFILTER_ERROR_PERMISSION_DENIED](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 缺少权限。<br> [OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - redirector为NULL。 |
142+ 
143+### OH_TrafficFilter_QueryProcess()
144+ 
145+```c
146+int32_t OH_TrafficFilter_QueryProcess(const OH_TrafficFilter_ConnectionInfo* connection_info, OH_TrafficFilter_ProcessInfo* process_info)
147+```
148+ 
149+**描述**
150+ 
151+根据网络连接信息查询对应的进程信息。通过源IP、目的IP、源端口、目的端口和协议类型组成的五元组连接信息,查询发起该连接的进程信息。
152+ 
153+**需要权限:** ohos.permission.kernel.TRAFFIC_FILTER
154+ 
155+**起始版本:** 26.0.0
156+ 
157+**参数:**
158+ 
159+| 参数项 | 描述 |
160+| -- | -- |
161+| [const OH_TrafficFilter_ConnectionInfo](capi-trafficfilter-oh-trafficfilter-connectioninfo.md)* connection_info | 输入的连接信息。 |
162+| process_info | 输出的进程信息。 |
163+ 
164+**返回:**
165+ 
166+| 类型 | 说明 |
167+| -- | -- |
168+| int32_t | [OH_TRAFFICFILTER_OK](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 成功。<br> [OH_TRAFFICFILTER_ERROR_PERMISSION_DENIED](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 缺少权限。<br> [OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 输入参数无效。<br> [OH_TRAFFICFILTER_ERROR_NOT_FOUND](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode) - 未找到进程。 |
169+ 
170+ 
@@ -0,0 +1,173 @@
1+# net_trafficfilter_type.h
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
A

❌疑似检测出中文错别字问题

错误原因:"Adviser" 通常应拼写为 "Advisor",虽然两者在某些上下文中都可接受,但在技术文档中 "Advisor" 更为常见和规范。 建议修改为:

改动建议
8
- <!--Adviser: @zhang_yixin13-->
8
+ <!--Advisor: @zhang_yixin13-->
应用建议

💡 温馨提示: 请审视上述建议的准确性。若您认为检测结果不合理或属于误报,请通过 反馈通道 告知我们。您的反馈对于提升 AI 检测精度的意义重大,我们将据此持续改进此工具
likedislike
张译心
张译心
7月7日 评论:
9+ 
10+## 概述
11+ 
12+声明网络流量过滤与重定向功能所需的通用类型和错误码。该头文件定义了流量过滤与重定向功能中使用的IP地址、端口、接口等匹配条件结构体,报文过滤规则、重定向规则等配置结构体,以及操作返回的错误码。<br> 适用于调用[OH_TrafficFilter_CreateRedirector](capi-net-trafficfilter-h.md#oh_trafficfilter_createredirector)等接口时构造参数和解析返回值。
13+ 
14+**库:** libnet_trafficfilter.so
15+ 
16+**系统能力:** SystemCapability.Communication.NetManager.NetFirewall
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+## 汇总
23+ 
24+### 结构体
25+ 
26+| 名称 | typedef关键字 | 描述 |
27+| -- | -- | -- |
28+| [OH_TrafficFilter_IPAddress](capi-trafficfilter-oh-trafficfilter-ipaddress.md) | OH_TrafficFilter_IPAddress | 二进制形式的IP地址,支持IPv4和IPv6。 |
29+| [OH_TrafficFilter_IPCidr](capi-trafficfilter-oh-trafficfilter-ipcidr.md) | OH_TrafficFilter_IPCidr | CIDR(Classless Inter-Domain Routing,无类别域间路由)匹配的IP匹配值。 |
30+| [OH_TrafficFilter_IPRange](capi-trafficfilter-oh-trafficfilter-iprange.md) | OH_TrafficFilter_IPRange | 范围匹配的IP匹配值。 |
31+| [OH_TrafficFilter_IPMulti](capi-trafficfilter-oh-trafficfilter-ipmulti.md) | OH_TrafficFilter_IPMulti | 多IP匹配的IP匹配值。 |
32+| [OH_TrafficFilter_IPMatch](capi-trafficfilter-oh-trafficfilter-ipmatch.md) | OH_TrafficFilter_IPMatch | IP匹配条件。 |
33+| [OH_TrafficFilter_InterfaceMatch](capi-trafficfilter-oh-trafficfilter-interfacematch.md) | OH_TrafficFilter_InterfaceMatch | 接口匹配条件。 |
34+| [OH_TrafficFilter_PortRange](capi-trafficfilter-oh-trafficfilter-portrange.md) | OH_TrafficFilter_PortRange | 范围匹配的端口匹配值。 |
35+| [OH_TrafficFilter_PortMulti](capi-trafficfilter-oh-trafficfilter-portmulti.md) | OH_TrafficFilter_PortMulti | 多端口匹配的端口匹配值。 |
36+| [OH_TrafficFilter_PortMatch](capi-trafficfilter-oh-trafficfilter-portmatch.md) | OH_TrafficFilter_PortMatch | 端口匹配条件。 |
37+| [OH_TrafficFilter_ConnectionInfo](capi-trafficfilter-oh-trafficfilter-connectioninfo.md) | OH_TrafficFilter_ConnectionInfo | 连接信息结构体。描述一条网络连接的五元组信息(源IP、目的IP、源端口、目的端口、协议类型),用于查询发起该连接的进程信息。初始化规则:调用[OH_TrafficFilter_QueryProcess](capi-net-trafficfilter-h.md#oh_trafficfilter_queryprocess)之前,调用者必须将该结构体清零(例如使用memset),然后将[size](capi-trafficfilter-oh-trafficfilter-connectioninfo.md#成员变量)设置为调用者分配的结构体实际大小,通常为sizeof(OH_TrafficFilter_ConnectionInfo)。二进制兼容规则(ABI,即应用程序二进制接口,保证新旧版本编译的代码能互相识别结构体布局):系统通过[size](capi-trafficfilter-oh-trafficfilter-connectioninfo.md#成员变量)来确定哪些字段可以被安全读取。如果[size](capi-trafficfilter-oh-trafficfilter-connectioninfo.md#成员变量)小于当前接口所需的最小大小,接口将返回[OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)。如果[size](capi-trafficfilter-oh-trafficfilter-connectioninfo.md#成员变量)大于系统已知的大小,多余的字段将被忽略。 |
38+| [OH_TrafficFilter_ProcessInfo](capi-trafficfilter-oh-trafficfilter-processinfo.md) | OH_TrafficFilter_ProcessInfo | 进程信息结构体。存储[OH_TrafficFilter_QueryProcess](capi-net-trafficfilter-h.md#oh_trafficfilter_queryprocess)返回的进程信息。初始化规则:调用[OH_TrafficFilter_QueryProcess](capi-net-trafficfilter-h.md#oh_trafficfilter_queryprocess)之前,调用者必须将该结构体清零(例如使用memset),然后将[size](capi-trafficfilter-oh-trafficfilter-processinfo.md#成员变量)设置为调用者分配的结构体实际大小,通常为sizeof(OH_TrafficFilter_ProcessInfo)。二进制兼容规则(ABI,即应用程序二进制接口,保证新旧版本编译的代码能互相识别结构体布局):系统通过[size](capi-trafficfilter-oh-trafficfilter-processinfo.md#成员变量)来确定哪些输出字段可以被安全写入。只有被[size](capi-trafficfilter-oh-trafficfilter-processinfo.md#成员变量)完全覆盖的字段才会被系统写入。如果[size](capi-trafficfilter-oh-trafficfilter-processinfo.md#成员变量)小于读取[size](capi-trafficfilter-oh-trafficfilter-processinfo.md#成员变量)字段本身所需的最小大小,接口将返回[OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)。如果[size](capi-trafficfilter-oh-trafficfilter-processinfo.md#成员变量)大于系统已知的大小,多余的字段将被忽略。输出有效性规则:当[OH_TrafficFilter_QueryProcess](capi-net-trafficfilter-h.md#oh_trafficfilter_queryprocess)返回[OH_TRAFFICFILTER_OK](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)时,被[size](capi-trafficfilter-oh-trafficfilter-processinfo.md#成员变量)覆盖的字段包含有效的输出值。当接口返回错误时,调用者不应依赖[size](capi-trafficfilter-oh-trafficfilter-processinfo.md#成员变量)以外的输出字段的值。 |
39+| [OH_TrafficFilter_RedirectRule](capi-trafficfilter-oh-trafficfilter-redirectrule.md) | OH_TrafficFilter_RedirectRule | 流量重定向规则。定义TCP流量重定向规则,将匹配的流量重定向到指定的代理服务器。初始化规则:调用[OH_TrafficFilter_AddRedirectRule](capi-net-trafficfilter-h.md#oh_trafficfilter_addredirectrule)之前,调用者必须将该结构体清零(例如使用memset),然后将[size](capi-trafficfilter-oh-trafficfilter-redirectrule.md#成员变量)设置为调用者分配的结构体实际大小,通常为sizeof(OH_TrafficFilter_RedirectRule)。二进制兼容规则(ABI,即应用程序二进制接口,保证新旧版本编译的代码能互相识别结构体布局):系统通过[size](capi-trafficfilter-oh-trafficfilter-redirectrule.md#成员变量)来确定哪些字段可以被安全读取。如果[size](capi-trafficfilter-oh-trafficfilter-redirectrule.md#成员变量)小于当前接口所需的最小大小,接口将返回[OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)。如果[size](capi-trafficfilter-oh-trafficfilter-redirectrule.md#成员变量)大于系统已知的大小,多余的字段将被忽略。失败规则:如果[OH_TrafficFilter_AddRedirectRule](capi-net-trafficfilter-h.md#oh_trafficfilter_addredirectrule)返回错误,不保证规则已被添加或生效。调用者应在假设规则生效之前检查返回值。 |
40+| [OH_TrafficFilter_Redirector](capi-trafficfilter-oh-trafficfilter-redirector.md) | OH_TrafficFilter_Redirector | 流量重定向器。 |
41+ 
42+### 枚举
43+ 
44+| 名称 | typedef关键字 | 描述 |
45+| -- | -- | -- |
46+| [OH_TrafficFilter_ErrCode](#oh_trafficfilter_errcode) | OH_TrafficFilter_ErrCode | 流量过滤与重定向错误码。 |
47+| [OH_TrafficFilter_IPMatchType](#oh_trafficfilter_ipmatchtype) | OH_TrafficFilter_IPMatchType | IP匹配类型。 |
48+| [OH_TrafficFilter_IPFamily](#oh_trafficfilter_ipfamily) | OH_TrafficFilter_IPFamily | IP地址族。 |
49+| [OH_TrafficFilter_PortMatchType](#oh_trafficfilter_portmatchtype) | OH_TrafficFilter_PortMatchType | 端口匹配类型。 |
50+| [OH_TrafficFilter_HookPoint](#oh_trafficfilter_hookpoint) | OH_TrafficFilter_HookPoint | 钩子点类型,指定规则在网络协议栈中生效的位置。报文经过内核网络协议栈时会在不同阶段触发钩子点,规则在对应钩子点处对报文进行拦截。例如INPUT链处理进入本机的报文,OUTPUT链处理本机发出的报文。 |
51+ 
52+### 宏定义
53+ 
54+| 名称 | 描述 |
55+| -- | -- |
56+| OH_TRAFFICFILTER_IP_ADDRLEN 16 | IP地址字节数组最大长度(兼容IPv4和IPv6)。<br>**起始版本:** 26.0.0 |
57+| OH_TRAFFICFILTER_MAX_MULTI_IP_COUNT 16 | 多IP匹配支持的最大IP数量。<br>**起始版本:** 26.0.0 |
58+| OH_TRAFFICFILTER_MAX_MULTI_PORT_COUNT 64 | 多端口匹配支持的最大端口数量。<br>**起始版本:** 26.0.0 |
59+| OH_TRAFFICFILTER_NFQUEUE_COPY_META 0 | NFQueue报文拷贝模式:仅拷贝元数据。<br>**起始版本:** 26.0.0 |
60+| OH_TRAFFICFILTER_NFQUEUE_COPY_PACKET 0xFFFF | NFQueue报文拷贝模式:拷贝整个报文。<br>**起始版本:** 26.0.0 |
61+| OH_TRAFFICFILTER_DEFAULT_COPY_LEN 0xFFFF | 默认NFQueue报文拷贝长度(字节)。设置为0xFFFF表示拷贝整个报文,较小的值(如128)仅拷贝报文头。<br>**起始版本:** 26.0.0 |
62+| OH_TRAFFICFILTER_DEFAULT_QUEUE_MAXLEN 1024 | 默认NFQueue最大队列长度(报文数量)。<br>**起始版本:** 26.0.0 |
63+| OH_TRAFFICFILTER_NFQUEUE_FLAG_FAIL_OPEN 0x1 | NFQueue队列标志:FAIL-OPEN模式。当用户态进程崩溃时,内核自动放行报文以避免网络中断。<br>**起始版本:** 26.0.0 |
64+| OH_TRAFFICFILTER_MIN_PRIORITY 1 | 最小优先级值。<br>**起始版本:** 26.0.0 |
65+| OH_TRAFFICFILTER_MAX_PRIORITY 10000 | 最大优先级值。<br>**起始版本:** 26.0.0 |
66+| OH_TRAFFICFILTER_MIN_GROUP_ID 1 | 最小Group ID值。<br>**起始版本:** 26.0.0 |
67+| OH_TRAFFICFILTER_MAX_GROUP_ID 65535 | 最大Group ID值。<br>**起始版本:** 26.0.0 |
68+| OH_TRAFFICFILTER_IFNAMSIZ 32 | 网络接口名称最大长度。<br>**起始版本:** 26.0.0 |
69+| OH_TRAFFICFILTER_PROTO_ANY 0 <br>OH_TRAFFICFILTER_PROTO_TCP 6 <br>OH_TRAFFICFILTER_PROTO_UDP 17 <br>OH_TRAFFICFILTER_PROTO_ICMP 1 <br>OH_TRAFFICFILTER_PROTO_ICMPV6 58 | 协议类型常量。<br>**起始版本:** 26.0.0 |
70+ 
71+## 枚举类型说明
72+ 
73+### OH_TrafficFilter_ErrCode
74+ 
75+```c
76+enum OH_TrafficFilter_ErrCode
77+```
78+ 
79+**描述**
80+ 
81+流量过滤与重定向错误码。
82+ 
83+**起始版本:** 26.0.0
84+ 
85+| 枚举项 | 描述 |
86+| -- | -- |
87+| OH_TRAFFICFILTER_OK = 0 | 操作成功。<br>**起始版本:** 26.0.0 |
88+| OH_TRAFFICFILTER_E_BASE = 29410000 | 错误码基值。<br>**起始版本:** 26.0.0 |
89+| OH_TRAFFICFILTER_ERROR_PERMISSION_DENIED = 201 | 缺少权限。<br>**起始版本:** 26.0.0 |
90+| OH_TRAFFICFILTER_ERROR_INVALID_PARAM = (OH_TRAFFICFILTER_E_BASE + 101) | 参数错误(无效的优先级、IP地址、端口或Group ID)。<br>**起始版本:** 26.0.0 |
91+| OH_TRAFFICFILTER_ERROR_NOT_FOUND = (OH_TRAFFICFILTER_E_BASE + 102) | 资源未找到(规则、目标、进程或Group ID未找到)。<br>**起始版本:** 26.0.0 |
92+| OH_TRAFFICFILTER_ERROR_TOO_MANY_RULES = (OH_TRAFFICFILTER_E_BASE + 103) | 规则数量过多。<br>**起始版本:** 26.0.0 |
93+| OH_TRAFFICFILTER_ERROR_GROUP_ID_IN_USE = (OH_TRAFFICFILTER_E_BASE + 104) | Group ID已被占用。<br>**起始版本:** 26.0.0 |
94+| OH_TRAFFICFILTER_ERROR_NFQUEUE_ERROR = (OH_TRAFFICFILTER_E_BASE + 105) | NFQueue错误(初始化失败或无可用队列)。<br>**起始版本:** 26.0.0 |
95+ 
96+### OH_TrafficFilter_IPMatchType
97+ 
98+```c
99+enum OH_TrafficFilter_IPMatchType
100+```
101+ 
102+**描述**
103+ 
104+IP匹配类型。
105+ 
106+**起始版本:** 26.0.0
107+ 
108+| 枚举项 | 描述 |
109+| -- | -- |
110+| OH_TRAFFICFILTER_IP_MATCH_ANY = 0 | 任意IP。<br>**起始版本:** 26.0.0 |
111+| OH_TRAFFICFILTER_IP_MATCH_SINGLE | 单个IP。<br>**起始版本:** 26.0.0 |
112+| OH_TRAFFICFILTER_IP_MATCH_CIDR | CIDR格式(如192.168.1.0/24,表示匹配该子网内的所有IP)。<br>**起始版本:** 26.0.0 |
113+| OH_TRAFFICFILTER_IP_MATCH_RANGE | IP范围。<br>**起始版本:** 26.0.0 |
114+| OH_TRAFFICFILTER_IP_MATCH_MULTI | 多个IP。<br>**起始版本:** 26.0.0 |
115+ 
116+### OH_TrafficFilter_IPFamily
117+ 
118+```c
119+enum OH_TrafficFilter_IPFamily
120+```
121+ 
122+**描述**
123+ 
124+IP地址族。
125+ 
126+**起始版本:** 26.0.0
127+ 
128+| 枚举项 | 描述 |
129+| -- | -- |
130+| OH_TRAFFICFILTER_IP_FAMILY_UNSPEC = 0 | 未指定的IP地址族。<br>**起始版本:** 26.0.0 |
131+| OH_TRAFFICFILTER_IP_FAMILY_V4 = 1 | IPv4地址族。<br>**起始版本:** 26.0.0 |
132+| OH_TRAFFICFILTER_IP_FAMILY_V6 = 2 | IPv6地址族。<br>**起始版本:** 26.0.0 |
133+ 
134+### OH_TrafficFilter_PortMatchType
135+ 
136+```c
137+enum OH_TrafficFilter_PortMatchType
138+```
139+ 
140+**描述**
141+ 
142+端口匹配类型。
143+ 
144+**起始版本:** 26.0.0
145+ 
146+| 枚举项 | 描述 |
147+| -- | -- |
148+| OH_TRAFFICFILTER_PORT_MATCH_ANY = 0 | 任意端口。<br>**起始版本:** 26.0.0 |
149+| OH_TRAFFICFILTER_PORT_MATCH_SINGLE | 单个端口。<br>**起始版本:** 26.0.0 |
150+| OH_TRAFFICFILTER_PORT_MATCH_RANGE | 端口范围。<br>**起始版本:** 26.0.0 |
151+| OH_TRAFFICFILTER_PORT_MATCH_MULTI | 多个端口。<br>**起始版本:** 26.0.0 |
152+ 
153+### OH_TrafficFilter_HookPoint
154+ 
155+```c
156+enum OH_TrafficFilter_HookPoint
157+```
158+ 
159+**描述**
160+ 
161+钩子点类型,指定规则在网络协议栈中生效的位置。报文经过内核网络协议栈时会在不同阶段触发钩子点,规则在对应钩子点处对报文进行拦截。例如INPUT链处理进入本机的报文,OUTPUT链处理本机发出的报文。
162+ 
163+**起始版本:** 26.0.0
164+ 
165+| 枚举项 | 描述 |
166+| -- | -- |
167+| OH_TRAFFICFILTER_HOOK_INPUT = 0 | INPUT链,处理进入本机的报文。<br>**起始版本:** 26.0.0 |
168+| OH_TRAFFICFILTER_HOOK_OUTPUT | OUTPUT链,处理本机发出的报文。<br>**起始版本:** 26.0.0 |
169+| OH_TRAFFICFILTER_HOOK_FORWARD | FORWARD链,处理本机转发的报文。<br>**起始版本:** 26.0.0 |
170+| OH_TRAFFICFILTER_HOOK_PREROUTING | PREROUTING链,处理刚到达网卡、尚未路由的报文。<br>**起始版本:** 26.0.0 |
171+| OH_TRAFFICFILTER_HOOK_POSTROUTING | POSTROUTING链,处理即将从网卡发出的报文。<br>**起始版本:** 26.0.0 |
172+ 
173+ 
@@ -0,0 +1,41 @@
1+# OH_TrafficFilter_ConnectionInfo
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_ConnectionInfo {...} OH_TrafficFilter_ConnectionInfo
12+```
13+ 
14+## 概述
15+ 
16+连接信息结构体。描述一条网络连接的五元组信息(源IP、目的IP、源端口、目的端口、协议类型),用于查询发起该连接的进程信息。
17+ 
18+初始化规则:调用[OH_TrafficFilter_QueryProcess](capi-net-trafficfilter-h.md#oh_trafficfilter_queryprocess)之前,调用者必须将该结构体清零(例如使用memset),然后将[size](#成员变量)设置为调用者分配的结构体实际大小,通常为sizeof(OH_TrafficFilter_ConnectionInfo)。
19+ 
20+二进制兼容规则(ABI,即应用程序二进制接口,保证新旧版本编译的代码能互相识别结构体布局):系统通过[size](#成员变量)来确定哪些字段可以被安全读取。如果[size](#成员变量)小于当前接口所需的最小大小,接口将返回[OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)。如果[size](#成员变量)大于系统已知的大小,多余的字段将被忽略。
21+ 
22+**起始版本:** 26.0.0
23+ 
24+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
25+ 
26+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
27+ 
28+## 汇总
29+ 
30+### 成员变量
31+ 
32+| 名称 | 描述 |
33+| -- | -- |
34+| uint32_t size | 调用者分配的结构体实际大小。<br>**起始版本:** 26.0.0 |
35+| [OH_TrafficFilter_IPAddress](capi-trafficfilter-oh-trafficfilter-ipaddress.md) srcIp | 源IP地址,支持IPv4和IPv6。<br>**起始版本:** 26.0.0 |
36+| uint16_t srcPort | 源端口。0表示任意源端口。<br>**起始版本:** 26.0.0 |
37+| [OH_TrafficFilter_IPAddress](capi-trafficfilter-oh-trafficfilter-ipaddress.md) dstIp | 目的IP地址,支持IPv4和IPv6,需要与源IP地址的地址族相同。<br>**起始版本:** 26.0.0 |
38+| uint16_t dstPort | 目的端口。0表示任意目的端口。<br>**起始版本:** 26.0.0 |
39+| uint8_t protocol | 协议类型。支持的取值:- OH_TRAFFICFILTER_PROTO_TCP (6)- OH_TRAFFICFILTER_PROTO_UDP (17)<br>**起始版本:** 26.0.0 |
40+ 
41+ 
@@ -0,0 +1,35 @@
1+# OH_TrafficFilter_InterfaceMatch
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_InterfaceMatch {...} OH_TrafficFilter_InterfaceMatch
12+```
13+ 
14+## 概述
15+ 
16+接口匹配条件。
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
23+ 
24+## 汇总
25+ 
26+### 成员变量
27+ 
28+| 名称 | 描述 |
29+| -- | -- |
30+| bool enabled | 是否启用接口匹配,true表示启用接口匹配,false表示不启用接口匹配。<br>**起始版本:** 26.0.0 |
31+| bool invert | 是否反转匹配结果,true表示反转匹配结果,false表示不反转匹配结果。<br>**起始版本:** 26.0.0 |
32+| bool isPrefix | 接口名称是否按前缀匹配,true表示按前缀匹配,false表示不按前缀匹配。<br>**起始版本:** 26.0.0 |
33+| char ifName[OH_TRAFFICFILTER_IFNAMSIZ] | 接口名称。字符串必须使用UTF-8编码且以NULL结尾。该缓冲区容量为[OH_TRAFFICFILTER_IFNAMSIZ](capi-net-trafficfilter-type-h.md#宏定义)字节,包含结尾的NULL字符。因此接口名称最大长度为[OH_TRAFFICFILTER_IFNAMSIZ](capi-net-trafficfilter-type-h.md#宏定义) - 1字节,不包含结尾的NULL字符。如果[enabled](#成员变量)为true,该字符串不能为空。如果该字符串在[OH_TRAFFICFILTER_IFNAMSIZ](capi-net-trafficfilter-type-h.md#宏定义)字节内未以NULL结尾,或其长度超过[OH_TRAFFICFILTER_IFNAMSIZ](capi-net-trafficfilter-type-h.md#宏定义) - 1字节,使用该结构的接口将返回[OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)。如果[enabled](#成员变量)为false,该字段将被忽略。建议在禁用接口匹配时将该缓冲区全部置零。<br>**起始版本:** 26.0.0 |
34+ 
35+ 
@@ -0,0 +1,33 @@
1+# OH_TrafficFilter_IPAddress
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_IPAddress {...} OH_TrafficFilter_IPAddress
12+```
13+ 
14+## 概述
15+ 
16+二进制形式的IP地址,支持IPv4和IPv6。
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
23+ 
24+## 汇总
25+ 
26+### 成员变量
27+ 
28+| 名称 | 描述 |
29+| -- | -- |
30+| [OH_TrafficFilter_IPFamily](capi-net-trafficfilter-type-h.md#oh_trafficfilter_ipfamily) family | 地址族。若指定为OH_TRAFFICFILTER_IP_FAMILY_UNSPEC,默认使用IPv4。<br>**起始版本:** 26.0.0 |
31+| uint8_t addr[OH_TRAFFICFILTER_IP_ADDRLEN] | IP地址字节。字节必须以网络字节序存储。对于IPv4,[addr](#成员变量)[0]到[addr](#成员变量)[3]存储IPv4地址,[addr](#成员变量)[4]到[addr](#成员变量)[15]必须设置为0。对于IPv6,[addr](#成员变量)[0]到[addr](#成员变量)[15]存储IPv6地址。如果字节与[family](#成员变量)要求的地址布局不匹配,使用该结构的接口将返回[OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)。<br>**起始版本:** 26.0.0 |
32+ 
33+ 
@@ -0,0 +1,33 @@
1+# OH_TrafficFilter_IPCidr
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_IPCidr {...} OH_TrafficFilter_IPCidr
12+```
13+ 
14+## 概述
15+ 
16+CIDR(Classless Inter-Domain Routing,无类别域间路由)匹配的IP匹配值。
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
23+ 
24+## 汇总
25+ 
26+### 成员变量
27+ 
28+| 名称 | 描述 |
29+| -- | -- |
30+| [OH_TrafficFilter_IPAddress](capi-trafficfilter-oh-trafficfilter-ipaddress.md) base | CIDR(无类别域间路由)块的基IP地址。<br>**起始版本:** 26.0.0 |
31+| uint8_t prefixLen | CIDR前缀长度,表示网络掩码中前导1的位数(如24表示子网掩码255.255.255.0)。<br>**起始版本:** 26.0.0 |
32+ 
33+ 
@@ -0,0 +1,34 @@
1+# OH_TrafficFilter_IPMatch
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_IPMatch {...} OH_TrafficFilter_IPMatch
12+```
13+ 
14+## 概述
15+ 
16+IP匹配条件。
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
23+ 
24+## 汇总
25+ 
26+### 成员变量
27+ 
28+| 名称 | 描述 |
29+| -- | -- |
30+| [OH_TrafficFilter_IPMatchType](capi-net-trafficfilter-type-h.md#oh_trafficfilter_ipmatchtype) type | 匹配类型。<br>**起始版本:** 26.0.0 |
31+| bool invert | 是否反转匹配结果。<br>**起始版本:** 26.0.0 |
32+| union | 匹配规则。<br>**起始版本:** 26.0.0 |
33+ 
34+ 
@@ -0,0 +1,33 @@
1+# OH_TrafficFilter_IPMulti
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_IPMulti {...} OH_TrafficFilter_IPMulti
12+```
13+ 
14+## 概述
15+ 
16+多IP匹配的IP匹配值。
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
23+ 
24+## 汇总
25+ 
26+### 成员变量
27+ 
28+| 名称 | 描述 |
29+| -- | -- |
30+| uint32_t ipCount | 数组中的IP地址数量。<br>**起始版本:** 26.0.0 |
31+| [OH_TrafficFilter_IPAddress](capi-trafficfilter-oh-trafficfilter-ipaddress.md) ips[OH_TRAFFICFILTER_MAX_MULTI_IP_COUNT] | IP地址数组。<br>**起始版本:** 26.0.0 |
32+ 
33+ 
@@ -0,0 +1,33 @@
1+# OH_TrafficFilter_IPRange
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_IPRange {...} OH_TrafficFilter_IPRange
12+```
13+ 
14+## 概述
15+ 
16+范围匹配的IP匹配值。
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
23+ 
24+## 汇总
25+ 
26+### 成员变量
27+ 
28+| 名称 | 描述 |
29+| -- | -- |
30+| [OH_TrafficFilter_IPAddress](capi-trafficfilter-oh-trafficfilter-ipaddress.md) start | 范围的起始IP地址。<br>**起始版本:** 26.0.0 |
31+| [OH_TrafficFilter_IPAddress](capi-trafficfilter-oh-trafficfilter-ipaddress.md) end | 范围的结束IP地址。<br>**起始版本:** 26.0.0 |
32+ 
33+ 
@@ -0,0 +1,34 @@
1+# OH_TrafficFilter_PortMatch
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_PortMatch {...} OH_TrafficFilter_PortMatch
12+```
13+ 
14+## 概述
15+ 
16+端口匹配条件。
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
23+ 
24+## 汇总
25+ 
26+### 成员变量
27+ 
28+| 名称 | 描述 |
29+| -- | -- |
30+| [OH_TrafficFilter_PortMatchType](capi-net-trafficfilter-type-h.md#oh_trafficfilter_portmatchtype) type | 匹配类型。<br>**起始版本:** 26.0.0 |
31+| bool invert | 是否反转匹配结果。<br>**起始版本:** 26.0.0 |
32+| union | 匹配规则。<br>**起始版本:** 26.0.0 |
33+ 
34+ 
@@ -0,0 +1,33 @@
1+# OH_TrafficFilter_PortMulti
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_PortMulti {...} OH_TrafficFilter_PortMulti
12+```
13+ 
14+## 概述
15+ 
16+多端口匹配的端口匹配值。
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
23+ 
24+## 汇总
25+ 
26+### 成员变量
27+ 
28+| 名称 | 描述 |
29+| -- | -- |
30+| uint32_t portCount | 数组中的端口数量。<br>**起始版本:** 26.0.0 |
31+| uint16_t ports[OH_TRAFFICFILTER_MAX_MULTI_PORT_COUNT] | 端口数组。<br>**起始版本:** 26.0.0 |
32+ 
33+ 
@@ -0,0 +1,33 @@
1+# OH_TrafficFilter_PortRange
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_PortRange {...} OH_TrafficFilter_PortRange
12+```
13+ 
14+## 概述
15+ 
16+范围匹配的端口匹配值。
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
23+ 
24+## 汇总
25+ 
26+### 成员变量
27+ 
28+| 名称 | 描述 |
29+| -- | -- |
30+| uint16_t startPort | 范围的起始端口。<br>**起始版本:** 26.0.0 |
31+| uint16_t endPort | 范围的结束端口。<br>**起始版本:** 26.0.0 |
32+ 
33+ 
@@ -0,0 +1,40 @@
1+# OH_TrafficFilter_ProcessInfo
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_ProcessInfo {...} OH_TrafficFilter_ProcessInfo
12+```
13+ 
14+## 概述
15+ 
16+进程信息结构体。存储[OH_TrafficFilter_QueryProcess](capi-net-trafficfilter-h.md#oh_trafficfilter_queryprocess)返回的进程信息。
17+ 
18+初始化规则:调用[OH_TrafficFilter_QueryProcess](capi-net-trafficfilter-h.md#oh_trafficfilter_queryprocess)之前,调用者必须将该结构体清零(例如使用memset),然后将[size](#成员变量)设置为调用者分配的结构体实际大小,通常为sizeof(OH_TrafficFilter_ProcessInfo)。
19+ 
20+二进制兼容规则(ABI,即应用程序二进制接口,保证新旧版本编译的代码能互相识别结构体布局):系统通过[size](#成员变量)来确定哪些输出字段可以被安全写入。只有被[size](#成员变量)完全覆盖的字段才会被系统写入。如果[size](#成员变量)小于读取[size](#成员变量)字段本身所需的最小大小,接口将返回[OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)。如果[size](#成员变量)大于系统已知的大小,多余的字段将被忽略。
21+ 
22+输出有效性规则:当[OH_TrafficFilter_QueryProcess](capi-net-trafficfilter-h.md#oh_trafficfilter_queryprocess)返回[OH_TRAFFICFILTER_OK](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)时,被[size](#成员变量)覆盖的字段包含有效的输出值。当接口返回错误时,调用者不应依赖[size](#成员变量)以外的输出字段的值。
23+ 
24+**起始版本:** 26.0.0
25+ 
26+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
27+ 
28+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
29+ 
30+## 汇总
31+ 
32+### 成员变量
33+ 
34+| 名称 | 描述 |
35+| -- | -- |
36+| uint32_t size | 调用者分配的结构体实际大小。<br>**起始版本:** 26.0.0 |
37+| uint32_t pid | 进程ID。<br>**起始版本:** 26.0.0 |
38+| uint32_t uid | 应用UID。<br>**起始版本:** 26.0.0 |
39+ 
40+ 
@@ -0,0 +1,23 @@
1+# OH_TrafficFilter_Redirector
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_Redirector OH_TrafficFilter_Redirector
12+```
13+ 
14+## 概述
15+ 
16+流量重定向器。
17+ 
18+**起始版本:** 26.0.0
19+ 
20+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
21+ 
22+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
23+ 
@@ -0,0 +1,51 @@
1+# OH_TrafficFilter_RedirectRule
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+```c
11+typedef struct OH_TrafficFilter_RedirectRule {...} OH_TrafficFilter_RedirectRule
12+```
13+ 
14+## 概述
15+ 
16+流量重定向规则。定义TCP流量重定向规则,将匹配的流量重定向到指定的代理服务器。
17+ 
18+初始化规则:调用[OH_TrafficFilter_AddRedirectRule](capi-net-trafficfilter-h.md#oh_trafficfilter_addredirectrule)之前,调用者必须将该结构体清零(例如使用memset),然后将[size](#成员变量)设置为调用者分配的结构体实际大小,通常为sizeof(OH_TrafficFilter_RedirectRule)。
19+ 
20+二进制兼容规则(ABI,即应用程序二进制接口,保证新旧版本编译的代码能互相识别结构体布局):系统通过[size](#成员变量)来确定哪些字段可以被安全读取。如果[size](#成员变量)小于当前接口所需的最小大小,接口将返回[OH_TRAFFICFILTER_ERROR_INVALID_PARAM](capi-net-trafficfilter-type-h.md#oh_trafficfilter_errcode)。如果[size](#成员变量)大于系统已知的大小,多余的字段将被忽略。
21+ 
22+失败规则:如果[OH_TrafficFilter_AddRedirectRule](capi-net-trafficfilter-h.md#oh_trafficfilter_addredirectrule)返回错误,不保证规则已被添加或生效。调用者应在假设规则生效之前检查返回值。
23+ 
24+**起始版本:** 26.0.0
25+ 
26+**相关模块:** [TrafficFilter](capi-trafficfilter.md)
27+ 
28+**所在头文件:** [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md)
29+ 
30+## 汇总
31+ 
32+### 成员变量
33+ 
34+| 名称 | 描述 |
35+| -- | -- |
36+| uint32_t size | 调用者分配的结构体实际大小。<br>**起始版本:** 26.0.0 |
37+| uint32_t priority | 优先级(数值越小优先级越高,规则与报文过滤器相同)。<br>**起始版本:** 26.0.0 |
38+| [OH_TrafficFilter_HookPoint](capi-net-trafficfilter-type-h.md#oh_trafficfilter_hookpoint) hookPoint | 钩子点,指定规则在网络协议栈中生效的位置(仅支持PREROUTING和OUTPUT),参见[OH_TrafficFilter_HookPoint](capi-net-trafficfilter-type-h.md#oh_trafficfilter_hookpoint)。<br>**起始版本:** 26.0.0 |
39+| uint8_t protocol | 协议(固定为TCP=6)。<br>**起始版本:** 26.0.0 |
40+| [OH_TrafficFilter_IPMatch](capi-trafficfilter-oh-trafficfilter-ipmatch.md) srcIp | 源IP匹配条件。<br>**起始版本:** 26.0.0 |
41+| [OH_TrafficFilter_PortMatch](capi-trafficfilter-oh-trafficfilter-portmatch.md) srcPort | 源端口匹配条件。<br>**起始版本:** 26.0.0 |
42+| [OH_TrafficFilter_IPMatch](capi-trafficfilter-oh-trafficfilter-ipmatch.md) dstIp | 目的IP匹配条件。<br>**起始版本:** 26.0.0 |
43+| [OH_TrafficFilter_PortMatch](capi-trafficfilter-oh-trafficfilter-portmatch.md) dstPort | 目的端口匹配条件。<br>**起始版本:** 26.0.0 |
44+| [OH_TrafficFilter_InterfaceMatch](capi-trafficfilter-oh-trafficfilter-interfacematch.md) inInterface | 入接口匹配条件。<br>**起始版本:** 26.0.0 |
45+| [OH_TrafficFilter_InterfaceMatch](capi-trafficfilter-oh-trafficfilter-interfacematch.md) outInterface | 出接口匹配条件。<br>**起始版本:** 26.0.0 |
46+| uint32_t uidStart | 应用UID范围起始值,取值范围为[0,UINT32_MAX](UINT32_MAX表示任意UID)。<br>**起始版本:** 26.0.0 |
47+| uint32_t uidEnd | 应用UID范围结束值,取值范围为[0,UINT32_MAX](UINT32_MAX表示任意UID),通常需大于等于uidStart(应用UID范围起始值)。<br>**起始版本:** 26.0.0 |
48+| [OH_TrafficFilter_IPAddress](capi-trafficfilter-oh-trafficfilter-ipaddress.md) proxyIp | 代理服务器IP地址(支持IPv4和IPv6)。<br>**起始版本:** 26.0.0 |
49+| uint16_t proxyPort | 代理服务器端口。<br>**起始版本:** 26.0.0 |
50+ 
51+ 
@@ -0,0 +1,20 @@
1+# TrafficFilter
2+ 
3+<!--Kit: Network Kit-->
4+<!--Subsystem: Communication-->
5+<!--Owner: @wmyao_mm-->
6+<!--Designer: @guo-min_net-->
7+<!--Tester: @tongxilin-->
8+<!--Adviser: @zhang_yixin13-->
9+ 
10+## 概述
11+ 
12+实现网络流量过滤与重定向功能。流量过滤是指在系统内核网络协议栈中拦截网络数据包(报文),根据预设规则决定报文的放行或丢弃,适用于防火墙、家长控制、应用流量管控等场景。<br> 流量重定向是指将匹配规则的TCP流量转发到指定的代理服务器,适用于企业网络审计、内容过滤代理、VPN透明代理等场景。<br> 使用时,先创建控制器或重定向器实例,再添加过滤或重定向规则,即可对网络流量进行管控。使用完毕后需调用对应的销毁接口释放资源。
13+ 
14+**起始版本:** 26.0.0
15+## 文件汇总
16+ 
17+| 名称 | 描述 |
18+| -- | -- |
19+| [net_trafficfilter.h](capi-net-trafficfilter-h.md) | 声明网络流量过滤与重定向功能的C接口。该头文件提供创建和销毁报文控制器、注册报文回调、添加和清除过滤规则,以及创建和销毁流量重定向器、添加和清除重定向规则的接口。<br> 适用于需要在系统层面对网络数据包进行拦截、过滤和重定向的应用场景。 |
20+| [net_trafficfilter_type.h](capi-net-trafficfilter-type-h.md) | 声明网络流量过滤与重定向功能所需的通用类型和错误码。该头文件定义了流量过滤与重定向功能中使用的IP地址、端口、接口等匹配条件结构体,报文过滤规则、重定向规则等配置结构体,以及操作返回的错误码。<br> 适用于调用[OH_TrafficFilter_CreateRedirector](capi-net-trafficfilter-h.md#oh_trafficfilter_createredirector)等接口时构造参数和解析返回值。 |