|
| ||||||||||||||||
Both RIPv2 and RIPng have some oddities in packing and this interface provides a consistent interface for that packing.
This class has specialized IPv4 and IPv6 implementations.
| typedef A Addr | Addr |
| typedef IPNet<A> Net | Net |
| typedef PacketAssemblerSpecState<A> SpState | SpState |
| inline ResponsePacketAssembler (Port<A>& port)
| ResponsePacketAssembler |
Constructor.
Parameters:
| port | Port to take configuration information from. |
| inline ResponsePacketAssembler (SpState& sp)
| ResponsePacketAssembler |
Constructor.
Parameters:
| sp | Specialized state. |
| inline ~ResponsePacketAssembler ()
| ~ResponsePacketAssembler |
| inline void packet_start (RipPacket<A>* pkt)
| packet_start |
Start assembling RIP response packet.
| inline bool packet_add_route (const Net& net,
const Addr& nexthop,
uint16_t cost,
uint16_t tag)
| packet_add_route |
Add a route to RIP response packet.
Returns: true if route was added, false if packet is full and would have indicated this if only packet_full was called.
| inline bool packet_full ()
| packet_full |
[const]
Ready-to-go accessor.
Returns: true if packet has no more space for route entries.
| inline bool packet_finish (list<RipPacket<A>* >& auth_packets)
| packet_finish |
Finish packet. Some packet types require final stage processing and this method gives that processing a chance to happen. Common usage is RIPv2 authentication.
Parameters:
| auth_packets | a return-by-reference list with the authenticated RIP packets (one copy for each valid authentication key). |
Returns: true on success, false if a failure is detected.
| RipPacket<A>* _pkt | _pkt |
[protected]
| uint32_t _pos | _pos |
[protected]
| SpState _sp_state | _sp_state |
[protected]
| template <>
inline
ResponsePacketAssembler (Port<IPv4>& port)
| ResponsePacketAssembler |
[protected]
| template <>
inline
ResponsePacketAssembler (SpState& sp)
| ResponsePacketAssembler |
[protected]
| template <>
inline
~ResponsePacketAssembler ()
| ~ResponsePacketAssembler |
[protected]
| template <>
inline void
packet_start (RipPacket<IPv4>* pkt)
| packet_start |
[protected]
| template <>
inline bool
packet_full ()
| packet_full |
[protected const]
| template <>
inline bool
packet_add_route (const Net& net,
const Addr& nexthop,
uint16_t cost,
uint16_t tag)
| packet_add_route |
[protected]
| template <>
inline bool
packet_finish (
list<RipPacket<IPv4>* >& auth_packets)
| packet_finish |
[protected]
| template <>
inline
ResponsePacketAssembler (Port<IPv6>& port)
| ResponsePacketAssembler |
[protected]
| template <>
inline
ResponsePacketAssembler (SpState& sp)
| ResponsePacketAssembler |
[protected]
| template <>
inline
~ResponsePacketAssembler ()
| ~ResponsePacketAssembler |
[protected]
| template <>
inline void
packet_start (RipPacket<IPv6>* pkt)
| packet_start |
[protected]
| template <>
inline bool
packet_full ()
| packet_full |
[protected const]
| template <>
inline bool
packet_add_route (const Net& net,
const Addr& nexthop,
uint16_t cost,
uint16_t tag)
| packet_add_route |
[protected]
| template <>
inline bool
packet_finish (
list<RipPacket<IPv6>* >& auth_packets)
| packet_finish |
[protected]