linux内核中添加一个新的socket协议域

linux内核中添加一个新的socket协议域,第1张

(1)编辑include/linux/socket.h,定义新的协议域和相关结构:

定义新的协议域:

#define PF_NEW_DOMAIN 17

定义新的套接字结构:

struct sockaddr_new_domain {

short sn_family/* 套接字类型 */

char sn_data[128]/* 地址数据 */

}

(2)编辑net/socket.c,定义新的协议函数

static struct net_proto_family new_domain_family_ops = {

.family = PF_NEW_DOMAIN,

.create = new_domain_create,

.owner = THIS_MODULE,

}

/* 新协议创建函数 */

int new_domain_create(struct net *net, struct socket *sock,

int protocol, int kern)

{

/* 创建新的套接字 */

return 0

}

(3)编辑net/core/sock.c,把新的协议函数注册到内核:

/* 注册新协议函数 */

void __init new_domain_init(void)

{

sock_register(&new_domain_family_ops)

}

(4)编辑net/core/dev.c,实现新的协议处理函数:

/* 新的协议处理函数 */

int new_domain_handler(struct sk_buff *skb)

{

/* 处理新的协议数据包 */

return 0

}

(5)编辑net/core/net_namespace.c,把新的协议处理函数注册到内核:

/* 注册新的协议处理函数 */

void __init new_domain_init(void)

{

dev_add_pack(&new_domain_packet_type)

}

你可以在终端下修改

ifconfig eth0 192.168.1.1 netmask 255.255.255.0

上面的方法是临时修改

你要保存修改结果需要修改/etc/sysconfig/network-scripts/ifcfg-eth0文件

给你一个我的例子

# Networking Interface

DEVICE=eth0

HWADDR=00:E0:06:09:00:21

ONBOOT=yes

IPADDR=192.168.1.254

NETMASK=255.255.255.0

DNS1=202.100.96.68

DNS2=202.100.96.69

TYPE=Ethernet

BOOTPROTO=none


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8287757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存