1、基于nxp板卡dpdk配置测试
sctp程序运行:
int i = socket(AF_INET,SOCK_STREAM,IPPROTO_SCTP);
printf("huilh:%d,%d\r\n",i,errno);
输出:
huilh:-1,93
checksctp:
sctp: Protocol not supported
1、外围的模块加载到内核中
#yum list kernel-modules-extra*
kernel-modules-extra.x86_64 4.18.0-240.15.1.el8_3 BaseOS
#yum install kernel-modules-extra.x86_64
2、安装SCTP
yum install lksctp*
3、查看安装是否成功
# modinfo sctp
filename: /lib/modules/4.18.0-240.15.1.el8_3.x86_64/kernel/net/sctp/sctp.ko.xz
license: GPL
description: Support for the SCTP protocol (RFC2960)
author: Linux Kernel SCTP developers <linux-sctp@vger.kernel.org>
alias: net-pf-10-proto-132
alias: net-pf-2-proto-132
rhelversion: 8.3
srcversion: 1F7FF36BEF4076DB3D4AF26
depends: libcrc32c
intree: Y
name: sctp
vermagic: 4.18.0-240.15.1.el8_3.x86_64 SMP mod_unload modversions
sig_id: PKCS#7
signer: CentOS kernel signing key
sig_key: 43:C1:A4:E8:DF:2E:B3:D4:43:C1:4B:38:46:94:93:EB:C4:27:08:0D
sig_hashalgo: sha256
signature: 1F:34:2A:3F:35:55:A9:24:B2:64:31:D6:AA:8F:E0:10:0C:76:B8:BF:
CB:47:B0:59:39:22:B4:E8:3B:9A:F9:B5:82:D9:22:53:4E:A7:27:4C:
D7:F3:C9:65:B6:77:1A:5A:25:18:C8:9B:D7:27:CB:A3:D4:95:ED:E5:
3E:87:4E:E3:4F:A0:5B:DA:31:18:34:89:88:D9:CC:F5:90:76:D6:4A:
0D:BA:1B:09:E2:10:80:7B:77:7B:15:97:7E:F9:45:92:39:7D:7C:A9:
5D:4E:D5:8C:61:E0:F0:8D:CB:97:A7:E6:0C:84:64:6B:26:C7:69:02:
54:EA:EB:04:C9:02:39:F8:7E:C7:08:C2:7E:83:4A:69:4F:B2:8C:83:
C9:51:9B:5D:C7:C4:DB:5A:C4:14:DA:52:64:A2:FF:C5:E2:FE:DA:ED:
B9:44:4B:C7:A8:D9:F4:78:A6:35:E9:E8:1C:14:E6:1B:1B:AD:72:4B:
22:4E:05:6D:E6:DE:0A:D8:98:2C:AD:6E:25:84:1F:38:C1:D7:2B:5C:
79:E6:CC:DF:16:D2:54:17:CD:87:B5:56:00:20:9D:09:F4:01:75:85:
83:CA:C6:75:7E:3A:15:95:04:98:F1:D4:A1:47:CD:B1:8A:6A:3A:51:
1F:07:1C:47:02:6A:17:CC:27:F5:DD:58:15:18:77:5B:BC:76:60:3C:
D5:97:2C:EF:0E:32:E4:A3:93:EE:E7:F8:93:09:CB:1D:DB:84:D3:B5:
56:C9:50:5C:42:95:7E:64:DF:CD:CE:4E:7E:AF:DE:C8:E9:29:51:62:
46:C1:6F:BF:85:1E:EB:36:65:40:74:EF:64:47:6A:AB:11:B0:B7:24:
4E:4F:3A:60:83:C7:5B:42:6A:A3:DC:0B:89:6C:CB:7D:EC:00:6A:8C:
48:DE:17:B4:85:41:A1:F7:68:74:1C:FA:D2:10:89:20:A7:75:34:05:
E7:A8:BB:AD:BA:33:2F:04:92:A1:33:1B:68:9A:D7:20:25:BA:7A:61:
A8:DE:D2:85
parm: no_checksums:Disable checksums computing and verification (bool)
从上述结果可以看出,可以查到模块,然后使用lsmod | grep sctp查看是否能查到模块,如果不能查到,则使用modprobe sctp 安装
4、手动加载SCTP
# modprobe sctp
安装完毕后,再用lsmod 查看是否已安装sctp模块。所示结果如下。
#lsmod | grep sctp
sctp 405504 18
libcrc32c 16384 4 nf_conntrack,nf_nat,xfs,sctp
表明lsctp模块已在当前linux下安装完成。或者使用cat 命令。
# cat /proc/modules | grep sctp
sctp 405504 18 - Live 0xffffffffc0d71000
libcrc32c 16384 4 sctp,nf_nat,nf_conntrack,xfs, Live 0xffffffffc00dc000
5、自动加载
如果sctp不能自动加载到内核,请使用下面处理方式。
在/etc/sysconfig/modules的目录下新建sctp.modules文件
#! /bin/sh
/sbin/modinfo -F filename sctp > /dev/null 2>&1
if [ $? -eq 0 ]; then
/sbin/modprobe sctp
fi
保存后,修改权限chmod+777 sctp.modules,重启便可看到已自动加载。