xorp

MfeaDfeLookup Class Reference

A class for storing all dataflow entries per (S,G). More...

#include <mfea_dataflow.hh>

Inheritance diagram for MfeaDfeLookup:
Mre< MfeaDfeLookup >

List of all members.

Public Member Functions

 MfeaDfeLookup (MfeaDft &mfea_dft, const IPvX &source, const IPvX &group)
 Constructor for a given dataflow table, source and group address.
 ~MfeaDfeLookup ()
 Destructor.
MfeaDftmfea_dft () const
 Get a reference to the dataflow table this entry belongs to.
int family () const
 Get the address family.
MfeaDfefind (const TimeVal &threshold_interval, uint32_t threshold_packets, uint32_t threshold_bytes, bool is_threshold_in_packets, bool is_threshold_in_bytes, bool is_geq_upcall, bool is_leq_upcall)
 Find a MfeaDfe dataflow entry.
void insert (MfeaDfe *mfea_dfe)
 Insert a MfeaDfe dataflow entry.
void remove (MfeaDfe *mfea_dfe)
 Remove a MfeaDfe dataflow entry.
bool is_empty () const
 Test if there are MfeaDfe entries inserted within this entry.
list< MfeaDfe * > & mfea_dfe_list ()
 Get the list of MfeaDfe dataflow entries for the same (S,G).

Private Attributes

MfeaDft_mfea_dft
list< MfeaDfe * > _mfea_dfe_list

Detailed Description

A class for storing all dataflow entries per (S,G).


Constructor & Destructor Documentation

MfeaDfeLookup::MfeaDfeLookup ( MfeaDft mfea_dft,
const IPvX source,
const IPvX group 
)

Constructor for a given dataflow table, source and group address.

Parameters:
mfea_dftthe dataflow table (MfeaDft) this entries belongs to.
sourcethe source address.
groupthe group address.

Member Function Documentation

int MfeaDfeLookup::family ( ) const

Get the address family.

Returns:
the address family (e.g., AF_INET or AF_INET6 for IPv4 and IPv6 respectively).
MfeaDfe * MfeaDfeLookup::find ( const TimeVal threshold_interval,
uint32_t  threshold_packets,
uint32_t  threshold_bytes,
bool  is_threshold_in_packets,
bool  is_threshold_in_bytes,
bool  is_geq_upcall,
bool  is_leq_upcall 
)

Find a MfeaDfe dataflow entry.

Note: either is_threshold_in_packets or is_threshold_in_bytes (or both) must be true. Note: either is_geq_upcall or is_leq_upcall (but not both) must be true.

Parameters:
threshold_intervalthe dataflow threshold interval.
threshold_packetsthe threshold (in number of packets) to compare against.
threshold_bytesthe threshold (in number of bytes) to compare against.
is_threshold_in_packetsif true, threshold_packets is valid.
is_threshold_in_bytesif true, threshold_bytes is valid.
is_geq_upcallif true, the operation for comparison is ">=".
is_leq_upcallif true, the operation for comparison is "<=".
Returns:
the corresponding MfeaDfe dataflow entry on success, otherwise NULL.
void MfeaDfeLookup::insert ( MfeaDfe mfea_dfe)

Insert a MfeaDfe dataflow entry.

Parameters:
mfea_dfethe MfeaDfe dataflow entry to insert.
bool MfeaDfeLookup::is_empty ( ) const [inline]

Test if there are MfeaDfe entries inserted within this entry.

Returns:
true if there are MfeaDfe entries inserted within this entry, otherwise false.
list<MfeaDfe *>& MfeaDfeLookup::mfea_dfe_list ( ) [inline]

Get the list of MfeaDfe dataflow entries for the same (S,G).

Returns:
the list of MfeaDfe dataflow entries for the same (S,G).
MfeaDft& MfeaDfeLookup::mfea_dft ( ) const [inline]

Get a reference to the dataflow table this entry belongs to.

Returns:
a reference to the dataflow table (MfeaDataflow) this entry belongs to.
void MfeaDfeLookup::remove ( MfeaDfe mfea_dfe)

Remove a MfeaDfe dataflow entry.

Parameters:
mfea_dfethe MfeaDfe dataflow entry to remove.

The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations