class <Classifier/Multicast/BST> MCastBSTClassifier : public MCastClassifier


Inheritance:


Public Fields

Classifier/Multicast/BST instvar node_
static const char STARSYM[]
"source" field for shared trees

Public Methods

MCastBSTClassifier()
Classifier/Multicast/BST instproc new-group { src group iface code}
Classifier/Multicast/BST instproc no-slot slot
~MCastBSTClassifier()

Protected Fields

int32_t node_id_
upstream_info* oif2RP_

Protected Methods

virtual int classify(Packet * p)
void insert_upstream_info(int dst)
virtual void recv(Packet *p, Handler *h)
void upstream_add(int dst, char *oif2RP, int node_id)
upstream_info* upstream_find(int dst)

Inherited from MCastClassifier:

Protected Classes

enum
struct hashnode
int slot
nsaddr_t src
nsaddr_t dst
hashnode* next
int iif
for RPF checking

Protected Fields

hashnode* ht_[HASHSIZE]
hashnode* ht_star_[HASHSIZE]

Protected Methods

void change_iface(nsaddr_t src, nsaddr_t dst, int oldiface, int newiface)
void change_iface(nsaddr_t dst, int oldiface, int newiface)
void clearAll()
void clearHash(hashnode* h[], int size)
virtual int command(int argc, const char*const* argv)
int findslot()
int hash(nsaddr_t src, nsaddr_t dst)
hashnode* lookup(nsaddr_t src, nsaddr_t dst, int iface = iface_literal::ANY_IFACE)
hashnode* lookup_star(nsaddr_t dst, int iface = iface_literal::ANY_IFACE)
void set_hash(hashnode* ht[], nsaddr_t src, nsaddr_t dst, int slot, int iface)

Protected

enum
struct hashnode
int slot
nsaddr_t src
nsaddr_t dst
hashnode* next
int iif
for RPF checking

Inherited from Classifier:

Public Classes

enum classify_ret

Public Fields

Classifier instvar mask_
Classifier instvar offset_
Classifier instvar shift_
Classifier instvar slots_

Public Methods

Classifier instproc adjacents {}
Classifier instproc dump {}
virtual NsObject* find(Packet*)
Classifier instproc in-slot
Classifier instproc install {slot val}
Classifier instproc installNext val
int maxslot()
int mshift(int val)
inline NsObject* slot(int slot)

Public

enum classify_ret

Protected Fields

NsObject* default_target_
int mask_
int maxslot_
int nslot_
int offset_
int shift_
NsObject** slot_

Protected Methods

void alloc(int)
virtual void clear(int slot)
virtual int getnxt(NsObject *)
void install(int slot, NsObject*)

Private Fields

int off_ip_

Inherited from NsObject:

Public Methods

virtual void debug(const char *fmt, ...)
virtual int delay_bind_dispatch(const char *varName, const char *localName, TclObject *tracer)
virtual void delay_bind_init_all()
int isdebug()

Protected Fields

int debug_
int off_cmn_
int off_flags_

Protected Methods

void handle(Event*)
virtual void reset()

Inherited from Handler:


Documentation

MCastBSTClassifier()

~MCastBSTClassifier()

static const char STARSYM[]
"source" field for shared trees

virtual int classify(Packet * p)

upstream_info* oif2RP_

int32_t node_id_

void insert_upstream_info(int dst)

virtual void recv(Packet *p, Handler *h)

void upstream_add(int dst, char *oif2RP, int node_id)

upstream_info* upstream_find(int dst)

Classifier/Multicast/BST instproc new-group { src group iface code}
This method called when a new multicast group/source pair is seen by the underlying classifier/mcast object. We install a hash for the pair mapping it to a slot number in the classifier table and point the slot at a replicator object that sends each packet along the RPF tree.

Classifier/Multicast/BST instvar node_

Classifier/Multicast/BST instproc no-slot slot


Direct child classes:
Classifier/Multicast/Replicator/BST

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

Adapted for the NS documentation page

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de