| 
 | 
 | ||||||||||||||||
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]