From 67ab6ab073f5b15feac81b7ec00eeb68d3e45e5d Mon Sep 17 00:00:00 2001 From: yangyanjun Date: Thu, 15 Sep 2022 19:52:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0newip=E5=86=85=E6=A0=B8?= =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E6=A0=88=E5=BC=80=E5=8F=91=E6=89=8B=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangyanjun --- .../figures/zh-cn_image-20220915140627223.png | Bin 0 -> 14398 bytes .../figures/zh-cn_image-20220915165414926.png | Bin 0 -> 11637 bytes .../kernel/kernel-standard-newip.md | 214 ++++++++++++++++++ 3 files changed, 214 insertions(+) create mode 100644 zh-cn/device-dev/kernel/figures/zh-cn_image-20220915140627223.png create mode 100644 zh-cn/device-dev/kernel/figures/zh-cn_image-20220915165414926.png create mode 100644 zh-cn/device-dev/kernel/kernel-standard-newip.md diff --git a/zh-cn/device-dev/kernel/figures/zh-cn_image-20220915140627223.png b/zh-cn/device-dev/kernel/figures/zh-cn_image-20220915140627223.png new file mode 100644 index 0000000000000000000000000000000000000000..5d27f2620ca837e6b90416e16aa7456919762104 GIT binary patch literal 14398 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 literal 0 HcmV?d00001 diff --git a/zh-cn/device-dev/kernel/figures/zh-cn_image-20220915165414926.png b/zh-cn/device-dev/kernel/figures/zh-cn_image-20220915165414926.png new file mode 100644 index 0000000000000000000000000000000000000000..5635e7de0f5ff8a0f02fe778c5f38803e3f1b05a GIT binary patch literal 11637 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 literal 0 HcmV?d00001 diff --git a/zh-cn/device-dev/kernel/kernel-standard-newip.md b/zh-cn/device-dev/kernel/kernel-standard-newip.md new file mode 100644 index 0000000000..6dab0b9d06 --- /dev/null +++ b/zh-cn/device-dev/kernel/kernel-standard-newip.md @@ -0,0 +1,214 @@ +# NewIP内核协议栈介绍 + + +## 基本概念 + +NewIP支持**可变长多语义地址**,**可变长定制化报头封装**,通过精简报文头开销,提升数据传输效率。 + +NewIP灵活极简报文头如下图所示,通过LLC Header中的EtherType = 0xEADD标识。Bitmap是一组由0和1组成的二进制序列,每个二进制位的数值用于表示特定目标特性的存在性。 + +![zh-cn_image-20220915140627223](figures/zh-cn_image-20220915140627223.png) + +1) Dispatch:指示封装子类,数值0b0表示其为极简封装子类,长度为1比特;(0b表示后面数值为二进制)。 + +2) Bitmap:变长,Bitmap默认为紧跟在Dispatch有效位后面的7比特,Bitmap字段长度可持续扩展。Bitmap最后一位置0表示Bitmap结束,最后一位置1表示Bitmap向后扩展1 Byte,直至最后一位置0。 +3) Value: 标识字段的值,长度为1 Byte的整数倍,类型及长度由报头字段语义表确定。 + + +## NewIP配置指导 + +启用NewIP,需要通过编译内核时打开相应的配置项及依赖,NewIP相关CONFIG如下: + +``` +CONFIG_NEWIP=y +CONFIG_NEWIP_HOOKS=y +``` + +另有部分CONFIG被依赖: + +``` +VENDOR_HOOKS=y +``` + + +## NewIP相关接口 + +用户态应用程序调用Socket API创建NewIP socket,采用NewIP极简帧头封装进行收发包,NewIP协议socket接口列表如下: + +| 函数 | 输入 | 输出 | 返回值 | 接口具体描述 | +| -------- | ------------------------------------------------------------ | ---------------------------------------------- | ---------------- | ------------------------------------------------------------ | +| socket | int **domain**, int type, int **protocol** | NA | Socket句柄sockfd | 创建NewIP 协议类型socket,并返回socket实例所对应的句柄。**domain参数填写 AF_NINET,表示创建NewIP协议类型socket。protocol参数填写IPPROTO_TCP或IPPROTO_UDP**。 | +| bind | int sockfd, const **struct sockaddr_nin** *myaddr, socklen_t addrlen | NA | int,返回错误码 | 将创建的socket绑定到指定的IP地址和端口上。**myaddr->sin_family填写AF_NINET**。 | +| listen | int socket, int backlog | NA | int,返回错误码 | 服务端监听NewIP地址和端口 | +| connect | int sockfd, const **struct sockaddr_nin** *addr, aocklen_t addrlen | NA | int,返回错误码 | 客户端创建至服务端的连接 | +| accept | int sockfd, **struct sockaddr_nin** *address, socklen_t *address_len | NA | 返回socket的fd | 服务端返回已建链成功的socket | +| send | int sockfd, const void *msg, int len, unsigned int flags, const **struct sockaddr_nin** *dst_addr, int addrlen | NA | int,返回错误码 | 用于socket已连接的NewIP类型数据发送 | +| recv | int sockfd, size_t len, int flags, **struct sockaddr_nin** *src_addr, | void **buf, int* *fromlen | int,返回错误码 | 用于socket已连接的NewIP类型数据接收 | +| close | int sockfd | NA | int,返回错误码 | 关闭socket,释放资源 | +| ioctl | int sockfd, unsigned long cmd, ... | NA | int,返回错误码 | 对NewIP协议栈相关信息进行查询或更改。 | +| sendto | int sockfd, const void *msg, int len, unsigned int flags, const **struct sockaddr** *dst_addr, int addrlen | NA | int,返回错误码 | 用于socket无连接的NewIP类型数据发送 | +| recvfrom | int sockfd, size_t len, int flags, | void *buf, struct sockaddr *from, int *fromlen | int,返回错误码 | 用于socket无连接的NewIP类型数据接收 | + +NewIP短地址结构如下: + +```c +enum nip_8bit_addr_index { + NIP_8BIT_ADDR_INDEX_0 = 0, + NIP_8BIT_ADDR_INDEX_1 = 1, + NIP_8BIT_ADDR_INDEX_2 = 2, + NIP_8BIT_ADDR_INDEX_3 = 3, + NIP_8BIT_ADDR_INDEX_4 = 4, + NIP_8BIT_ADDR_INDEX_5 = 5, + NIP_8BIT_ADDR_INDEX_6 = 6, + NIP_8BIT_ADDR_INDEX_7 = 7, + NIP_8BIT_ADDR_INDEX_MAX, +}; + +enum nip_16bit_addr_index { + NIP_16BIT_ADDR_INDEX_0 = 0, + NIP_16BIT_ADDR_INDEX_1 = 1, + NIP_16BIT_ADDR_INDEX_2 = 2, + NIP_16BIT_ADDR_INDEX_3 = 3, + NIP_16BIT_ADDR_INDEX_MAX, +}; + +enum nip_32bit_addr_index { + NIP_32BIT_ADDR_INDEX_0 = 0, + NIP_32BIT_ADDR_INDEX_1 = 1, + NIP_32BIT_ADDR_INDEX_MAX, +}; + +#define nip_addr_field8 v.u.field8 +#define nip_addr_field16 v.u.field16 +#define nip_addr_field32 v.u.field32 + +#pragma pack(1) +struct nip_addr_field { + union { + unsigned char field8[NIP_8BIT_ADDR_INDEX_MAX]; + unsigned short field16[NIP_16BIT_ADDR_INDEX_MAX]; /* big-endian */ + unsigned int field32[NIP_32BIT_ADDR_INDEX_MAX]; /* big-endian */ + } u; +}; + +struct nip_addr { + unsigned char bitlen; /* The address length is in bit (not byte) */ + struct nip_addr_field v; +}; +#pragma pack() + +/* The following structure must be larger than V4. System calls use V4. + * If the definition is smaller than V4, the read process will have memory overruns + * v4: include\linux\socket.h --> sockaddr (16Byte) + */ +#define POD_SOCKADDR_SIZE 3 +struct sockaddr_nin { + unsigned short sin_family; /* [2Byte] AF_NINET */ + unsigned short sin_port; /* [2Byte] Transport layer port, big-endian */ + struct nip_addr sin_addr; /* [9Byte] NIP address */ + + unsigned char sin_zero[POD_SOCKADDR_SIZE]; /* [3Byte] Byte alignment */ +}; +``` + +## NewIP收发包代码示例 + +NewIP可变长地址配置,路由配置,UDP/TCP收发包demo代码链接如下,NewIP协议栈用户态接口使用方法可以参考代码仓examples代码。 + +| 文件名 | 功能 | +| --------------------- | ----------------------------- | +| nip_addr_cfg_demo.c | NewIP可变长地址配置demo代码 | +| nip_route_cfg_demo.c | NewIP路由配置demo代码 | +| nip_udp_server_demo.c | NewIP UDP收发包服务端demo代码 | +| nip_udp_client_demo.c | NewIP UDP收发包客户端demo代码 | +| nip_tcp_server_demo.c | NewIP TCP收发包服务端demo代码 | +| nip_tcp_client_demo.c | NewIP TCP收发包客户端demo代码 | +| nip_lib.c | 接口索引获取等API接口demo代码 | + +**基础操作步骤:** + +![zh-cn_image-20220915165414926](figures/zh-cn_image-20220915165414926.png) + +1、将demo代码拷贝到Linux编译机上,make clean,make all编译demo代码。 + +2、将编译生成二级制文件上传到设备1,设备2。 + +3、执行“ifconfig xxx up”开启网卡设备,xxx表示网卡名,比如eth0,wlan0。 + +4、在设备1的sh下执行“./nip_addr_cfg_demo server”给服务端配置0xDE00(2字节)变长地址,在设备2的sh下执行“./nip_addr_cfg_demo client”给客户端配置0x50(1字节)变长地址,通过“cat /proc/net/nip_addr”查看内核地址配置结果。 + +5、在设备1的sh下执行“./nip_route_cfg_demo server”给服务端配置路由,在设备2的sh下执行“./nip_route_cfg_demo client”给客户端配置路由,通过“cat /proc/net/nip_route”查看内核路由配置结果。 + +以上步骤操作完成后,可以进行UDP/TCP收发包,收发包demo默认使用上面步骤中配置的地址和路由。 + + + +**UDP收发包操作步骤:** + +先在服务端执行“./nip_udp_server_demo”,然后再在客户端执行“./nip_udp_client_demo”,客户端会发送10个NewIP报文,客户端收到报文后再发送给服务端。 + +``` +服务端sh窗口打印内容: +Received -- 1661826989 498038 NIP_UDP # 0 -- from 0x50:57605 +Sending -- 1661826989 498038 NIP_UDP # 0 -- to 0x50:57605 +Received -- 1661826990 14641 NIP_UDP # 1 -- from 0x50:57605 +Sending -- 1661826990 14641 NIP_UDP # 1 -- to 0x50:57605 +Received -- 1661826990 518388 NIP_UDP # 2 -- from 0x50:57605 +Sending -- 1661826990 518388 NIP_UDP # 2 -- to 0x50:57605 +... +Received -- 1661827011 590576 NIP_UDP # 9 -- from 0x50:37758 +Sending -- 1661827011 590576 NIP_UDP # 9 -- to 0x50:37758 + +客户端sh窗口打印内容: +Received --1661827007 55221 NIP_UDP # 0 sock 3 success: 1/ 1/no= 0 +Received --1661827007 557926 NIP_UDP # 1 sock 3 success: 2/ 2/no= 1 +Received --1661827008 62653 NIP_UDP # 2 sock 3 success: 3/ 3/no= 2 +... +Received --1661827011 590576 NIP_UDP # 9 sock 3 success: 10/ 10/no= 9 +``` + + + +**TCP收发包操作步骤:** + +先在服务端执行“./nip_tcp_server_demo”,然后再在客户端执行“./nip_tcp_client_demo”,客户端会发送10个NewIP报文,客户端收到报文后再发送给服务端。 + +``` +服务端sh窗口打印内容: +Received -- 1661760202 560605 NIP_TCP # 0 --:1024 +Sending -- 1661760202 560605 NIP_TCP # 0 --:1024 +Received -- 1661760203 69254 NIP_TCP # 1 --:1024 +Sending -- 1661760203 69254 NIP_TCP # 1 --:1024 +Received -- 1661760203 571604 NIP_TCP # 2 --:1024 +Sending -- 1661760203 571604 NIP_TCP # 2 --:1024 +... +Received -- 1661760207 86544 NIP_TCP # 9 --:1024 +Sending -- 1661760207 86544 NIP_TCP # 9 --:1024 + +客户端sh窗口打印内容: +Received --1661760202 560605 NIP_TCP # 0 sock 3 success: 1/ 1/no= 0 +Received --1661760203 69254 NIP_TCP # 1 sock 3 success: 2/ 2/no= 1 +... +Received --1661760207 86544 NIP_TCP # 9 sock 3 success: 10/ 10/no= 9 +``` + +## selinux规则说明 + +用户态进程操作NewIP socket需要添加selinux policy,否则操作会被拦截。 + +```sh +# base\security\selinux\sepolicy\ohos_policy\xxx\xxx.te +# socket 基础操作 +# avc: denied { create } for pid=540 comm="thread_xxx" scontext=u:r:thread_xxx:s0 tcontext=u:r:thread_xxx:s0 tclass=socket permissive=0 +allow thread_xxx thread_xxx:socket { create bind connect listen accept read write shutdown setopt getopt }; + +# ioctl 操作 +# 操作码在 linux-xxx\include\uapi\linux\sockios.h 中定义 +# 0x8933 : name -> if_index mapping +# 0x8916 : set PA address +# 0x890B : add routing table entry +allowxperm thread_xxx thread_xxx:socket ioctl { 0x8933 0x8916 0x890B }; +``` + +## + -- GitLab