|
|
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>& p)
| ResponsePacketAssembler |
Constructor.
Parameters:
p | 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 ()
| 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.
Returns: true on success, false if a failure is detected.
RipPacket<A>* _p | _p |
[protected]
uint32_t _pos | _pos |
[protected]
SpState _sp_state | _sp_state |
[protected]
template <>
inline
ResponsePacketAssembler (Port<IPv4>& p)
| ResponsePacketAssembler |
[protected]
template <>
inline
ResponsePacketAssembler (SpState& sp)
| ResponsePacketAssembler |
[protected]
template <>
inline
~ResponsePacketAssembler ()
| ~ResponsePacketAssembler |
[protected]
template <>
inline void
packet_start (RipPacket<IPv4>* p)
| 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 ()
| packet_finish |
[protected]
template <>
inline
ResponsePacketAssembler (Port<IPv6>& p)
| ResponsePacketAssembler |
[protected]
template <>
inline
ResponsePacketAssembler (SpState& sp)
| ResponsePacketAssembler |
[protected]
template <>
inline
~ResponsePacketAssembler ()
| ~ResponsePacketAssembler |
[protected]
template <>
inline void
packet_start (RipPacket<IPv6>* p)
| 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 ()
| packet_finish |
[protected]