|
|
RIP output processing components generate periodic trains of RIP response packets. This class and it's children are intended to generate the packet trains from RIP output processing. Each packet within the train is temporally separated from it's neighbouring packets. Timers elsewhere schedule the start of each packet train.
typedef A Addr | Addr |
typedef IPNet<A> Net | Net |
OutputBase (EventLoop& e,
Port<A>& port,
PacketQueue<A>& pkt_queue,
const A& ip_addr,
uint16_t ip_port)
| OutputBase |
~OutputBase ()
| ~OutputBase |
[virtual]
inline const A& ip_addr ()
| ip_addr |
[const]
Accessor for destination IP address applied to output packets.
inline uint16_t ip_port ()
| ip_port |
[const]
Accessor for destination IP port applied to output packets.
inline bool running ()
| running |
[const]
Returns: true if output process is generating packets.
inline void start ()
| start |
Start packet train if sufficient data is available. This instance will remain in "running" so long as data is available and will continue to generate packets until the data is exhausted.
inline void stop ()
| stop |
inline void packets_sent ()
| packets_sent |
[const]
Get number of packets placed on packet queue for output.
inline uint32_t interpacket_gap_ms ()
| interpacket_gap_ms |
[protected const]
Accessor for the inter-packet gap the output process should when generating packet trains.
void start_output_processing ()
| start_output_processing |
[protected pure virtual]
Derived classes should implement this to start output processing. It is invoked when start() is called.
void stop_output_processing ()
| stop_output_processing |
[protected pure virtual]
Derived classes should implement this to stop output processing. It is invoked when stop() is called.
void output_packet ()
| output_packet |
[protected pure virtual]
Output packet if suitable data is available, and place it in the PacketQueue associated with this instance. Should data still be available after packet is generated then implementations of this method should reschedule a call to output_packet after interpacket_gap_ms milliseconds.
inline void incr_packets_sent ()
| incr_packets_sent |
[protected]
bool do_filtering (RouteEntry<A>* r)
| do_filtering |
[protected]
Policy filters the route.
Parameters:
r | route to filter. |
Returns: true if the route was accepted, false otherwise.
EventLoop& _e | _e |
[protected]
Port<A>& _port | _port |
[protected]
PacketQueue<A>& _pkt_queue | _pkt_queue |
[protected]
const A _ip_addr | _ip_addr |
[protected]
const uint16_t _ip_port | _ip_port |
[protected]
XorpTimer _op_timer | _op_timer |
[protected]
uint32_t _pkts_out | _pkts_out |
[protected]
PolicyFilters& _policy_filters | _policy_filters |
[protected]
template <typename A>
OutputBase (EventLoop& e,
Port<A>& port,
PacketQueue<A>& pkt_queue,
const A& ip_addr,
uint16_t ip_port)
| OutputBase |
[protected]
template <typename A>
inline bool
running ()
| running |
[protected const]
template <typename A>
inline void
start ()
| start |
[protected]
template <typename A>
inline void
stop ()
| stop |
[protected]
template <typename A>
inline uint32_t
interpacket_gap_ms ()
| interpacket_gap_ms |
[protected const]
template <typename A>
bool
do_filtering (RouteEntry<A>* route)
| do_filtering |
[protected]