Hi,
nope. The return value is to indicate that the routing protocol handled the packet in some way. Even discarding it it's a valid way to handle the packet.
This may be definitely confusing, I know. The pint is: you can have multiple routing protocols in a node.
To make the long story short. You can have five possibilities when RouteInput is called:
- The packet is for the localhost: "lcb" callback is used.
- The packet is to be forwarded and it's unicast: "ucb" callback is used.
- The packet is to be forwarded and it's multicast: "mcb" callback is used.
- The packet is to be discarded: "ecb" callback is used (this will basically log the packet and discard it).
- The routing protocol can't figure out what to do.
In the 5th case, no callback is used and the routing protocol will return false.
This is used by List Routing, which is, basically, calling all the routing protocols installed in a node (according to their priority order) until one of them returns true.
If no routing protocol is able to handle the packet, the packet will be discarded (equivalent to calling ecb).
As a consequence, if you want to be sure to trash a packet, use ecb and return true.
Hope this helps,
T.