Hello,
I have the task to implement a routing protocol as a kernel module. The
algorithm for the routing protocol is dynamic, meaning, that it may change
the routing table once in a second. During heavy traffic even more
frequently.
Now I wonder how it will affect performance if I change the rules so
frequently. Basically, all I need to change often is the weights of the
routes, e.g.
for destination A route
2/3 of the packets over interface1 and 1/3 over interface2
to
1/3 of the packets over interface1 and and 2/3 over interface2
I know that there is a cache for routing, because it is way faster than
doing a lookup on the routing table. Now I wonder:
1. is it possible to change the routing table so often?
2. how much CPU is it going to cost me?
3. can I change the cache directly?
4. how much faster is a cache lookup compared to a routing table lookup?
5. should I ask all these questions in a kernel developer NG?
Thanks in advance.
With kind regards, Alex
|