Hi everyone, I am a Master Degree student in Computer Science in Udine, Italy. I'm currently developing a project with the Engineering Department of my University, for which we have to modify a router software to meet some our particular needing; we are trying to demonstrate that is possible to speed up routers speed for particular protocols and in particular conditions by saving in the ipv4 or ipv6 datagram the position in the forwarding table of the destination of the datagrams. Without explaining in depth our problems and our goals, we thought to BIRD as the router to modify to get our goals achieved.
I'm asking you if, in BIRD, is possible to: 1 - read some particular fields in packets, defined by us; 2 - write some particular fields in packets, always defined by us; 3 - get the position in the forwarding table of the destination we are sending the datagram, possibly as a integer; 4 - having this integer, get the destination of a datagram in O(1) time, excluding the obvious coherence checks. Naturally, I'm not asking you to do the work I'll have to do :) I simply want to know if, in BIRD, are these things possible. I've already read the BIRD documentation and part of the source code, so I think that the the 3rd and 4th point are easy to achieve; moreover, I was unable to understand the IO loops of BIRD and how does it analyses packets, so I hope that you can give me an answer. Thank you, -Marco Basaldella
