Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
020a4b5d
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
020a4b5d
编写于
7月 18, 2023
作者:
L
liangbotong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update NewIP doc
Signed-off-by:
N
liangbotong
<
liangbotong@huawei.com
>
上级
383634e5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
8 deletion
+16
-8
zh-cn/device-dev/kernel/kernel-standard-newip.md
zh-cn/device-dev/kernel/kernel-standard-newip.md
+16
-8
未找到文件。
zh-cn/device-dev/kernel/kernel-standard-newip.md
浏览文件 @
020a4b5d
...
@@ -97,7 +97,7 @@ New IP支持可变长地址(IPv4/IPv6地址长度固定),支持自解析
...
@@ -97,7 +97,7 @@ New IP支持可变长地址(IPv4/IPv6地址长度固定),支持自解析
# kernel/linux/config/linux-5.10/arch/arm64/configs/rk3568_standard_defconfig
# kernel/linux/config/linux-5.10/arch/arm64/configs/rk3568_standard_defconfig
CONFIG_NEWIP=y // 使能New IP内核协议栈
CONFIG_NEWIP=y // 使能New IP内核协议栈
CONFIG_NEWIP_HOOKS=y // 使能New IP内核侵入式修改插桩函数注册,使能New IP的同时必须使用New IP HOOKS功能
CONFIG_NEWIP_HOOKS=y // 使能New IP内核侵入式修改插桩函数注册,使能New IP的同时必须使用New IP HOOKS功能
VENDOR_HOOKS=y
// 使能内核插桩基础框架(New IP依赖此配置项,rk3568开发板已默认开启)
HCK_VENDOR_HOOKS=y
// 使能内核插桩基础框架(New IP依赖此配置项,rk3568开发板已默认开启)
```
```
代码编译完成后,通过下面命令可以确认New IP协议栈代码是否使能成功。
代码编译完成后,通过下面命令可以确认New IP协议栈代码是否使能成功。
...
@@ -117,8 +117,18 @@ out/kernel/OBJ/linux-5.10/net/newip/tcp_nip_output.o
...
@@ -117,8 +117,18 @@ out/kernel/OBJ/linux-5.10/net/newip/tcp_nip_output.o
```
c
```
c
/* 将New IP ehash函数注册到内核 */
/* 将New IP ehash函数注册到内核 */
register_trace_ninet_ehashfn_hook
(
&
ninet_ehashfn_hook
,
NULL
);
/* call the newip hook function in sk_ehashfn function (net\ipv4\inet_hashtables.c):
*/
void
nip_ninet_ehashfn
(
const
struct
sock
*
sk
,
u32
*
ret
)
{
*
ret
=
ninet_ehashfn
(
sock_net
(
sk
),
&
sk
->
SK_NIP_RCV_SADDR
,
sk
->
sk_num
,
&
sk
->
SK_NIP_DADDR
,
sk
->
sk_dport
);
}
void
nip_ninet_ehashfn_lhck_register
(
void
)
{
REGISTER_HCK_LITE_HOOK
(
nip_ninet_ehashfn_lhck
,
nip_ninet_ehashfn
);
}
/* 下面是IPv4,IPv6协议栈总入口函数,在总入口函数内新增New IP协议栈相关处理 */
/* 下面是IPv4,IPv6协议栈总入口函数,在总入口函数内新增New IP协议栈相关处理 */
static
u32
sk_ehashfn
(
const
struct
sock
*
sk
)
static
u32
sk_ehashfn
(
const
struct
sock
*
sk
)
...
@@ -132,14 +142,12 @@ static u32 sk_ehashfn(const struct sock *sk)
...
@@ -132,14 +142,12 @@ static u32 sk_ehashfn(const struct sock *sk)
&
sk
->
sk_v6_daddr
,
sk
->
sk_dport
);
&
sk
->
sk_v6_daddr
,
sk
->
sk_dport
);
#endif
#endif
if
(
trace_vendor_ninet_ehashfn_enabled
())
{
if
(
sk
->
sk_family
==
AF_NINET
)
{
if
(
sk
->
sk_family
==
AF_NINET
)
{
u32
ret
=
0
;
u32
ret
=
0
;
/* New IP注册的ehash函数 */
/* New IP注册的ehash函数 */
trace_vendor_ninet_ehashfn
(
sk
,
&
ret
);
CALL_HCK_LITE_HOOK
(
nip_ninet_ehashfn_lhck
,
sk
,
&
ret
);
return
ret
;
return
ret
;
}
}
}
/* IPv4 */
/* IPv4 */
return
inet_ehashfn
(
sock_net
(
sk
),
return
inet_ehashfn
(
sock_net
(
sk
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录