XORP(2)
模块设计--思路
- 典型的,一个模块=一个进程
有时,IPv4和IPv6版本对应的是两个进程。
- 没有多线程
- 事件驱动可编程:
(1) 事件:用户措施,包到来,更新等
(2) Queued and processed ASAP by the event loop.
(3) 定时器:延迟,周期。
--->对一个事件的处理应尽可能的保持模块激活状态
--->异步编程,例如:阻塞调用是被禁止的
模块设计--可编程的接口
- 如图所示,一个进程间调用是通过一个XRL描述的
- 一个XRL接口被定义成一种方式,去执行一个特殊的功能
- 一个XRL Target是一组XRL接口,用来执行一个高级目标
- 一般情况下,一个模块的API是一个单一的XRL Target