class <Classifier/Multicast> MCastClassifier : public Classifier


Inheritance:


Public Fields

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

Public Methods

MCastClassifier()
Classifier/Multicast instproc new-group { src group iface code}
Classifier/Multicast instproc no-slot slot
~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]
for search by group only (not <s,g>)

Protected Methods

void change_iface(nsaddr_t dst, int oldiface, int newiface)
void change_iface(nsaddr_t src, nsaddr_t dst, int oldiface, int newiface)
virtual int classify(Packet *p)
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)
virtual void recv(Packet* p, Handler* h)
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

MCastClassifier()

~MCastClassifier()

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

virtual int command(int argc, const char*const* argv)

virtual int classify(Packet *p)

int findslot()

enum

struct hashnode

int slot

nsaddr_t src

nsaddr_t dst

hashnode* next

int iif
for RPF checking

int hash(nsaddr_t src, nsaddr_t dst)

hashnode* ht_[HASHSIZE]

hashnode* ht_star_[HASHSIZE]
for search by group only (not <s,g>)

void set_hash(hashnode* ht[], nsaddr_t src, nsaddr_t dst, int slot, int iface)

void clearAll()

void clearHash(hashnode* h[], int size)

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 change_iface(nsaddr_t src, nsaddr_t dst, int oldiface, int newiface)

void change_iface(nsaddr_t dst, int oldiface, int newiface)

Classifier/Multicast 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 instvar node_

Classifier/Multicast instproc no-slot slot


Direct child classes:
Classifier/Multicast/Replicator
MCastBSTClassifier

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