首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C语言在Linux中的接口连接(聚合)

使用C语言在Linux中的接口连接(聚合)
EN

Stack Overflow用户
提问于 2013-08-02 09:19:08
回答 2查看 1.5K关注 0票数 0

我们通常使用linux (Ubuntu)中的接口或sysfs或ifenslave来配置连接接口,以聚合两个或多个网卡。然后,有了netlink库,它允许我们创建和删除键,并从其中添加和删除接口。但它目前没有提供的是动态地改变债券的其他属性。

例如,我希望更改MTU或键的硬件地址,或其键合模式本身。此信息通常驻留在

代码语言:javascript
复制
 /sys/class/net/bondx/... 

在bonding_masters中,我们需要做的事情是

代码语言:javascript
复制
 # ifconfig bond0 down
 echo 6 > /sys/class/net/bond0/bonding/mode

更改其键合模式以动态平衡-alb,即不重新启动或通过更改接口文件重新启动网络。类似地,我们可以修改与键连接模块相关的文档中给出的其他参数。

但是如果我要通过一个交互式C程序来改变它,我如何与sysfs接口呢?我以前没有直接与文件系统进行接口的经验,除了C中的基本文件处理。开发人员对libsysfs是没有的,我在某个地方读到libudev可能有用,但我不太确定。因此,就像sysctl()是用于/proc文件系统一样,sysfs文件系统的接口是什么?

还是有其他编程方法来解决这个问题?也许是ioctl?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-02 11:17:38

如果可以使用shell中的/sys/class/net/bond0/bonding/mode编写echo,也可以使用程序中的write()向其写入。

票数 1
EN

Stack Overflow用户

发布于 2018-06-17 10:55:27

在linux/ubuntu/Debian中,您可以使用$ip链接选项命令来完成您的任务。使用

$ip链接集dev bond0类型键合模式mode_name

您可以看到所有可用的选项,通过键入

$ip链接集dev bond0类型键-帮助

在这里,您将发现所有可能的键合选项,可用于进一步的修改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18013177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档