protocol isis issues(续1)
来源:互联网 发布:手机淘宝充值怎么退款 编辑:程序博客网 时间:2024/04/30 10:17
在files-0(1)/var/log/*中的stdout中,打印quagga运行仿真的日志。
错误:
1. isis_pfpacket.c:130–open_packet_socket(): bind() failed: Invalid argument
2. isis_pfpacket.c:184–isis_sock_init: could not initialize the socket
错误1
memset (&s_addr, 0, sizeof (struct sockaddr_ll)); s_addr.sll_family = AF_PACKET; s_addr.sll_protocol = htons (ETH_P_ALL); s_addr.sll_ifindex = circuit->interface->ifindex; if (bind (fd, (struct sockaddr *) (&s_addr), sizeof (struct sockaddr_ll)) < 0) { zlog_warn ("open_packet_socket(): bind() failed: %s", safe_strerror (errno)); return ISIS_WARNING; }
bind() -> dce_fd.cc:444(dce_bind) -> unix-socket-fd.cc:796(Bind)
-> unix-socket-fd.cc:698(PosixAddressToNs3Address)
地址转化,原程序中并没有对sa_family=AF_PACKET的处理。
添加的代码:
else if(my_addr->sa_family == AF_PACKET) { const struct sockaddr_ll *addr = (const struct sockaddr_ll *)my_addr; PacketSocketAddress paaddress=PacketSocketAddress(); paaddress.SetProtocol(addr->sll_protocol); paaddress.SetSingleDevice(addr->sll_ifindex); Address address=Address(addr->sll_pkttype,addr->sll_addr,addr->sll_halen); paaddress.SetPhysicalAddress(address); return paaddress; }
这段代码主要是把结构sockaddr_ll转化为类PacketSocketAddress的对象。其实就是把数据链路层(MAC)的地址转化为NS3中定义的地址。(详情见续1.2)
错误2
intisis_sock_init (struct isis_circuit *circuit){ int retval = ISIS_OK; if (isisd_privs.change (ZPRIVS_RAISE)) zlog_err ("%s: could not raise privs, %s", __func__, safe_strerror (errno)); retval = open_packet_socket (circuit); if (retval != ISIS_OK) { zlog_warn ("%s: could not initialize the socket", __func__); goto end; } ...}
0 0
- protocol isis issues(续1)
- protocol isis issues(续1.3----buffer_size相关)
- protocol isis issues
- protocol isis issues(续1.2----地址转化相关)
- Http Client Protocol Issues
- isis
- Encryption security protocol issues when using HTTPS
- quagga实现 isis路由(1)
- trivial C++ issues (1)
- Issues
- .NET ISSUES Solve Log (1)
- Issues relating to use of the IP Protocol Over ATM Networks
- protocol - 1
- 理清ISIS、CLNS、NSAP、NET的关系(1)
- isis入门
- ISIS+BGP
- Database Configuration and I/O Issues(1)
- 【Github Issues】javacv Issues
- #include,#import,@classd这三者的区别
- 屏蔽按CapsLock键切换到大写时,编辑框自动弹出的提示
- gradle配置教程
- 变治法
- PHP面向对象1.4 封装性
- protocol isis issues(续1)
- (总结)Nginx配置文件nginx.conf中文详解
- 使用textfield根据内容显示密码强度
- 协议栈中配置引脚
- poj2186
- SparkSQL(一)
- goto语句语法
- TCP协议的KeepAlive机制与HeartBeat心跳包
- hdu1597