Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
38247aaa
D
Docs
项目概览
OpenHarmony
/
Docs
接近 2 年 前同步成功
通知
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看板
提交
38247aaa
编写于
9月 20, 2022
作者:
IT_newip
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
NewIP内核协议栈开发手册检视问题修改
Signed-off-by:
N
yangyanjun
<
yangyanjun@huawei.com
>
上级
e123efbb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
5 deletion
+23
-5
zh-cn/device-dev/kernel/kernel-standard-newip.md
zh-cn/device-dev/kernel/kernel-standard-newip.md
+23
-5
未找到文件。
zh-cn/device-dev/kernel/kernel-standard-newip.md
浏览文件 @
38247aaa
...
@@ -37,8 +37,6 @@ NewIP灵活极简报文头如下图所示,通过LLC Header中的EtherType = 0x
...
@@ -37,8 +37,6 @@ NewIP灵活极简报文头如下图所示,通过LLC Header中的EtherType = 0x
2) Bitmap:变长,Bitmap默认为紧跟在Dispatch有效位后面的7比特,Bitmap字段长度可持续扩展。Bitmap最后一位置0表示Bitmap结束,最后一位置1表示Bitmap向后扩展1 Byte,直至最后一位置0。
2) Bitmap:变长,Bitmap默认为紧跟在Dispatch有效位后面的7比特,Bitmap字段长度可持续扩展。Bitmap最后一位置0表示Bitmap结束,最后一位置1表示Bitmap向后扩展1 Byte,直至最后一位置0。
3) Value: 标识字段的值,长度为1 Byte的整数倍,类型及长度由报头字段语义表确定。
3) Value: 标识字段的值,长度为1 Byte的整数倍,类型及长度由报头字段语义表确定。
**Bitmap字段定义如下:**
**Bitmap字段定义如下:**
| 极简Bitmap标识 | Bitops | 字段长度 | 置位策略 | 备注 |
| 极简Bitmap标识 | Bitops | 字段长度 | 置位策略 | 备注 |
...
@@ -93,14 +91,14 @@ NewIP采用自解释编码,编码格式如下所示:
...
@@ -93,14 +91,14 @@ NewIP采用自解释编码,编码格式如下所示:
启用NewIP,需要通过编译内核时打开相应的配置项及依赖,NewIP相关CONFIG如下:
启用NewIP,需要通过编译内核时打开相应的配置项及依赖,NewIP相关CONFIG如下:
```
```
c
CONFIG_NEWIP
=
y
// 使能NewIP内核协议栈
CONFIG_NEWIP
=
y
// 使能NewIP内核协议栈
CONFIG_NEWIP_HOOKS
=
y
// 使能NewIP内核侵入式修改插桩函数注册,使能NewIP的同时必须使用NewIP插桩功能
CONFIG_NEWIP_HOOKS
=
y
// 使能NewIP内核侵入式修改插桩函数注册,使能NewIP的同时必须使用NewIP插桩功能
```
```
另有部分CONFIG被依赖:
另有部分CONFIG被依赖:
```
```
c
VENDOR_HOOKS
=
y
// 使能内核插桩基础框架
VENDOR_HOOKS
=
y
// 使能内核插桩基础框架
```
```
...
@@ -146,6 +144,26 @@ static u32 sk_ehashfn(const struct sock *sk)
...
@@ -146,6 +144,26 @@ static u32 sk_ehashfn(const struct sock *sk)
代码编译完成后,通过下面命令可以确认newip协议栈代码是否使能成功。
```
c
find
out
/
-
name
*
nip
*
.
o
out
/
rk3568
/
obj
/
third_party
/
glib
/
glib
/
glib_source
/
guniprop
.
o
out
/
kernel
/
OBJ
/
linux
-
5
.
10
/
net
/
newip
/
nip_addrconf_core
.
o
out
/
kernel
/
OBJ
/
linux
-
5
.
10
/
net
/
newip
/
nip_hdr_decap
.
o
out
/
kernel
/
OBJ
/
linux
-
5
.
10
/
net
/
newip
/
nip_addr
.
o
out
/
kernel
/
OBJ
/
linux
-
5
.
10
/
net
/
newip
/
nip_checksum
.
o
out
/
kernel
/
OBJ
/
linux
-
5
.
10
/
net
/
newip
/
tcp_nip_output
.
o
...
```
禁用NewIP内核协议栈,删除CONFIG_NEWIP使能开关,删除out/kernel目录后重新编译。
```
c
# CONFIG_NEWIP is not set
# CONFIG_NEWIP_HOOKS is not set
```
## NewIP相关接口
## NewIP相关接口
用户态应用程序调用Socket API创建NewIP socket,采用NewIP极简帧头封装进行收发包,NewIP协议socket接口列表如下:
用户态应用程序调用Socket API创建NewIP socket,采用NewIP极简帧头封装进行收发包,NewIP协议socket接口列表如下:
...
@@ -325,5 +343,5 @@ allow thread_xxx thread_xxx:socket { create bind connect listen accept read writ
...
@@ -325,5 +343,5 @@ allow thread_xxx thread_xxx:socket { create bind connect listen accept read writ
allowxperm thread_xxx thread_xxx:socket ioctl
{
0x8933 0x8916 0x890B
}
;
allowxperm thread_xxx thread_xxx:socket ioctl
{
0x8933 0x8916 0x890B
}
;
```
```
##
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录