class MfeaDfe

Multicast dataflow entry class. More...

Definition#include <mfea_dataflow.hh>
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods


Detailed Description

This entry contains all the information about the condition a dataflow must satisfy to deliver a signal. It is (S,G)-specific, but there could be more than one MfeaDfe entries per (S,G).

 MfeaDfe (MfeaDfeLookup& mfea_dfe_lookup, const struct 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)

MfeaDfe

Constructor with information with the dataflow condition to satisfy.

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:
mfea_dfe_lookupthe MfeaDfeLookup entry this entry belongs to.
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 "<=".

 ~MfeaDfe ()

~MfeaDfe

Destructor

MfeaDfeLookup&  mfea_dfe_lookup ()

mfea_dfe_lookup

[const]

Get a reference to the MfeaDfeLookup entry this entry belongs to.

Returns: a reference to the MfeaDfeLookup entry this entry belongs to.

MfeaDft&  mfea_dft ()

mfea_dft

[const]

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

Returns: a reference to the MfeaDft dataflow table this entry belongs to.

int  family ()

family

[const]

Get the address family.

Returns: the address family (e.g., AF_INET or AF_INET6 for IPv4 and IPv6 respectively).

const IPvX&  source_addr ()

source_addr

[const]

Get the source address.

Returns: the source address.

const IPvX&  group_addr ()

group_addr

[const]

Get the group address.

Returns: the group address.

bool  is_valid ()

is_valid

[const]

Test if this entry is valid.

An entry is valid if, for example: (a) either is_threshold_in_packets or is_threshold_in_bytes (or both) must be true. (b) either is_geq_upcall or is_leq_upcall (but not both) must be true. (c) the threshold interval is not too small. (d) the bandwidth-related statistics do not contain invalid values.

Returns: true if this entry is valid, otherwise false.

bool  is_same (const struct 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)

is_same

[const]

Compare whether the information contained within this MfeaDfe entry is same as the specified information.

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: true if the information contained within this MfeaDfe entry is same as the specified information, otherwise false.

void  init_sg_count ()

init_sg_count

Initialize this entry with the current multicast forwarding information.

The current multicast forwarding bandwidth information is read from the kernel.

bool  test_sg_count ()

test_sg_count

Test if the dataflow bandwidth satisfies the pre-defined condition.

The multicast forwarding bandwidth information is read from the kernel, and then is tested whether is above/below the pre-defined threshold.

Returns: true if the dataflow bandwidth satisifes the pre-defined condition, otherwise false. Note: if both "is_threshold_in_packets" and "is_threshold_in_bytes" are true, then return true if the test is positive for either unit (i.e., packets or bytes).

void  start_measurement ()

start_measurement

Start bandwidth measurement.

void  dataflow_signal_send ()

dataflow_signal_send

Send a dataflow signal that the pre-defined condition is true.


Generated by: pavlin on possum.icir.org on Wed Dec 11 16:50:48 2002, using kdoc 2.0a54+XORP.