已合并
包过滤与重定向C API文档 #147281
heqianmo创建于 5月28日
包过滤与重定向C API文档 #147281
已合并
共 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 | |||
| 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" 更为常见和规范。 建议修改为: 改动建议
![]() ![]() | |||||||
| 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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-ipaddress.md+33-0
| @@ -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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-ipcidr.md+33-0
| @@ -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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-ipmatch.md+34-0
| @@ -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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-ipmulti.md+33-0
| @@ -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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-iprange.md+33-0
| @@ -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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-portmatch.md+34-0
| @@ -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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-portmulti.md+33-0
| @@ -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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-portrange.md+33-0
| @@ -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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-processinfo.md+40-0
| @@ -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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-redirector.md+23-0
| @@ -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 | + | ||
Azh-cn/application-dev/reference/apis-network-kit/capi-trafficfilter-oh-trafficfilter-redirectrule.md+51-0
| @@ -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)等接口时构造参数和解析返回值。 | | ||


❌疑似检测出中文错别字问题
错误原因:"Adviser" 通常应拼写为 "Advisor",虽然两者在某些上下文中都可接受,但在技术文档中 "Advisor" 更为常见和规范。 建议修改为:
er: @zhang_yixin13-->