quagga and frr,from The Linux Foundation
2018-02-04 14:54
295 查看
website:https://frrouting.org/
github:https://github.com/FRRouting/frr
FRRouting (FRR) is an IP routing protocol suite for Linux and Unix platforms which includes protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP.
FRR’s seamless integration with the native Linux/Unix IP networking stacks makes it applicable to a wide variety of use cases including connecting hosts/VMs/containers to the network, advertising network services, LAN switching and routing, Internet access routers, and Internet peering.
支持的协议列表:
Protocol IPv4 IPv6
OSPF OSPFv2 OSPFv3
ISIS ISIS IPv4 ISIS IPv6
RIP RIP RIPng
BGP BGP IPv4 BGP IPv6
BGP 4-byte AS BGP IPv4 4-byte AS BGP IPv6 4-byte AS
LDP LDP IPv4
每个守护进程使用socket收发报文,以RIP为例:
1、static int rip_create(void)
/* Create read and timer thread. */
rip_event(RIP_READ, rip->sock);
rip_event(RIP_UPDATE_EVENT, 1);
2、void rip_event(enum rip_event event, int sock)
thread_add_read(master, rip_read, NULL, sock, &rip->t_read);
thread_add_timer(master, rip_update, NULL,
sock ? 2 : rip->update_time + jitter,
&rip->t_update);
3、static int rip_read(struct thread *t)
len = recvfrom(sock, (char *)&rip_buf.buf, sizeof(rip_buf.buf), 0,
(struct sockaddr *)&from, &fromlen);
4、static int rip_send_packet(u_char *buf, int size, struct sockaddr_in *to, struct connected *ifc)
ret = sendto(rip->sock, buf, size, 0, (struct sockaddr *)&sin,
sizeof(struct sockaddr_in));
github:https://github.com/FRRouting/frr
FRRouting (FRR) is an IP routing protocol suite for Linux and Unix platforms which includes protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP.
FRR’s seamless integration with the native Linux/Unix IP networking stacks makes it applicable to a wide variety of use cases including connecting hosts/VMs/containers to the network, advertising network services, LAN switching and routing, Internet access routers, and Internet peering.
支持的协议列表:
Protocol IPv4 IPv6
OSPF OSPFv2 OSPFv3
ISIS ISIS IPv4 ISIS IPv6
RIP RIP RIPng
BGP BGP IPv4 BGP IPv6
BGP 4-byte AS BGP IPv4 4-byte AS BGP IPv6 4-byte AS
LDP LDP IPv4
每个守护进程使用socket收发报文,以RIP为例:
1、static int rip_create(void)
/* Create read and timer thread. */
rip_event(RIP_READ, rip->sock);
rip_event(RIP_UPDATE_EVENT, 1);
2、void rip_event(enum rip_event event, int sock)
thread_add_read(master, rip_read, NULL, sock, &rip->t_read);
thread_add_timer(master, rip_update, NULL,
sock ? 2 : rip->update_time + jitter,
&rip->t_update);
3、static int rip_read(struct thread *t)
len = recvfrom(sock, (char *)&rip_buf.buf, sizeof(rip_buf.buf), 0,
(struct sockaddr *)&from, &fromlen);
4、static int rip_send_packet(u_char *buf, int size, struct sockaddr_in *to, struct connected *ifc)
ret = sendto(rip->sock, buf, size, 0, (struct sockaddr *)&sin,
sizeof(struct sockaddr_in));
相关文章推荐
- Some 3D Graphics (rgl) for Classification with Splines and Logistic Regression (from The Elements of Statistical Learning)(转)
- tomcat添加项目(Add and Remove...)出现There are no resources that can be added or removed from the server
- Linux FB Console---boot logo and the flash cursor
- [Node.js]30. Level 6: Listen 'Question' from client, and then Answer the Question
- Local Speaking:Bring Linux and open source solutions to the Azure cloud
- paper 157:文章解读--How far are we from solving the 2D & 3D Face Alignment problem?-(and a dataset of 230,000 3D facial landmarks)
- War of the Worlds - Hijacking the Linux Kernel from QSEE
- 《Monitoring and Tuning the Linux Networking Stack: Receiving Data》翻译
- The Linux Programming Interface - A Linux and UNIX System Programming Handbook
- Debugging the linux kernel using kgdb and VirtualBox
- The striping and assembly algorithms from the Dremel paper( from github, project parquet-mr )
- Linux and the Device Tree
- Linux Start Restart and Stop The Cron or Crond Service
- some encountered problem and the solve methods when install Matlab in Linux
- ios学习--How to capture video frames from the camera as images using AV Foundation
- Concise steps to Building and Installing the FIPS Object Module with OpenSSL (Unix/Linux)
- Duplicate methods named spliterator with the parameters () and () are inherited from the types Colle
- qtcpsocket send and recieve the image from youself
- What is the difference between initWithCoder:, initWithNibName:, and awakeFromNib?
- eclipse无法加载Layout(Eclipse is loading framework information and the layout library from the SDK fold)