Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

HashClassifier Class Reference

#include <classifier-hash.h>

Inheritance diagram for HashClassifier:

Inheritance graph
[legend]
Collaboration diagram for HashClassifier:

Collaboration graph
[legend]
List of all members.

Public Types

enum  classify_ret { ONCE = -2, TWICE = -1 }

Public Member Functions

 HashClassifier (int keylen)
 ~HashClassifier ()
virtual int classify (Packet *p)
virtual int lookup (Packet *p)
virtual int unknown (Packet *p)
void set_default (int slot)
int do_set_hash (nsaddr_t src, nsaddr_t dst, int fid, int slot)
void set_table_size (int nn)
int maxslot () const
NsObjectslot (int slot)
int mshift (int val)
void set_default_target (NsObject *obj)
virtual void recv (Packet *p, Handler *h)
virtual void recv (Packet *p, const char *s)
virtual NsObjectfind (Packet *)
virtual void clear (int slot)
virtual void do_install (char *dst, NsObject *target)
int install_next (NsObject *node)
virtual void install (int slot, NsObject *)
virtual void set_table_size (int level, int nn)
virtual void recvOnly (Packet *)
virtual void delay_bind_init_all ()
virtual int delay_bind_dispatch (const char *varName, const char *localName, TclObject *tracer)
int isdebug () const
virtual void debug (const char *fmt,...)

Protected Member Functions

int lookup (nsaddr_t src, nsaddr_t dst, int fid)
int newflow (Packet *pkt)
void reset ()
virtual const char * hashkey (nsaddr_t, nsaddr_t, int)=0
int set_hash (nsaddr_t src, nsaddr_t dst, int fid, int slot)
int get_hash (nsaddr_t src, nsaddr_t dst, int fid)
virtual int command (int argc, const char *const *argv)
virtual int getnxt (NsObject *)
void alloc (int)
void handle (Event *)

Protected Attributes

int default_
Tcl_HashTable ht_
hkey buf_
int keylen_
NsObject ** slot_
int nslot_
int maxslot_
int offset_
int shift_
int mask_
NsObjectdefault_target_
int nsize_
int debug_

Member Enumeration Documentation

enum Classifier::classify_ret [inherited]
 

Enumeration values:
ONCE 
TWICE 

Definition at line 64 of file classifier.h.

00064 {ONCE= -2, TWICE= -1};


Constructor & Destructor Documentation

HashClassifier::HashClassifier int  keylen  )  [inline]
 

Definition at line 45 of file classifier-hash.h.

References default_, ht_, and keylen_.

00045                                    : default_(-1), keylen_(keylen) {
00046                 // shift + mask picked up from underlying Classifier object
00047                 bind("default_", &default_);
00048                 Tcl_InitHashTable(&ht_, keylen);
00049         }               

HashClassifier::~HashClassifier  )  [inline]
 

Definition at line 50 of file classifier-hash.h.

References ht_.

00050                           {
00051                 Tcl_DeleteHashTable(&ht_);
00052         };


Member Function Documentation

void Classifier::alloc int   )  [protected, inherited]
 

Definition at line 79 of file classifier.cc.

References Classifier::nsize_, Classifier::nslot_, and Classifier::slot_.

Referenced by ReservePortClassifier::command(), ReserveAddressClassifier::command(), Classifier::getnxt(), ReservePortClassifier::getnxt(), ReserveAddressClassifier::getnxt(), and Classifier::install().

00080 {
00081         NsObject** old = slot_;
00082         int n = nslot_;
00083         if (old == 0) 
00084                 if (nsize_ != 0) {
00085                         //printf("classifier %x set to %d....%dth visit\n", this, nsize_, i++);
00086                         nslot_ = nsize_;
00087                 }
00088                 else {
00089                         //printf("classifier %x set to 32....%dth visit\n", this, j++);
00090                         nslot_ = 32;
00091                 }
00092         while (nslot_ <= slot) 
00093                 nslot_ <<= 1;
00094         slot_ = new NsObject*[nslot_];
00095         memset(slot_, 0, nslot_ * sizeof(NsObject*));
00096         for (int i = 0; i < n; ++i)
00097                 slot_[i] = old[i];
00098         delete [] old;
00099 }

int HashClassifier::classify Packet p  )  [virtual]
 

Reimplemented from Classifier.

Reimplemented in DestHashClassifier.

Definition at line 61 of file classifier-hash.cc.

References default_, lookup(), Classifier::maxslot_, Classifier::slot(), and unknown().

Referenced by SrcDestHashClassifier::SrcDestHashClassifier().

00061                                        {
00062         int slot= lookup(p);
00063         if (slot >= 0 && slot <=maxslot_)
00064                 return (slot);
00065         else if (default_ >= 0)
00066                 return (default_);
00067         return (unknown(p));
00068 } // HashClassifier::classify

Here is the call graph for this function:

void Classifier::clear int  slot  )  [virtual, inherited]
 

Reimplemented in ReserveAddressClassifier, and ReservePortClassifier.

Definition at line 111 of file classifier.cc.

References Classifier::maxslot_, and Classifier::slot_.

Referenced by Classifier::command(), and HierClassifier::command().

00112 {
00113         slot_[slot] = 0;
00114         if (slot == maxslot_) {
00115                 while (--maxslot_ >= 0 && slot_[maxslot_] == 0)
00116                         ;
00117         }
00118 }

int HashClassifier::command int  argc,
const char *const *  argv
[protected, virtual]
 

Reimplemented from Classifier.

Reimplemented in DestHashClassifier.

Definition at line 70 of file classifier-hash.cc.

References Classifier::command(), get_hash(), hashkey(), ht_, Classifier::maxslot_, nsaddr_t, set_hash(), Classifier::slot(), and Classifier::slot_.

Referenced by DestHashClassifier::command(), and SrcDestHashClassifier::SrcDestHashClassifier().

00071 {
00072         Tcl& tcl = Tcl::instance();
00073         /*
00074          * $classifier set-hash $hashbucket src dst fid $slot
00075          */
00076 
00077         if (argc == 7) {
00078                 if (strcmp(argv[1], "set-hash") == 0) {
00079                         //xxx: argv[2] is ignored for now
00080                         nsaddr_t src = atoi(argv[3]);
00081                         nsaddr_t dst = atoi(argv[4]);
00082                         int fid = atoi(argv[5]);
00083                         int slot = atoi(argv[6]);
00084                         if (0 > set_hash(src, dst, fid, slot))
00085                                 return TCL_ERROR;
00086                         return TCL_OK;
00087                 }
00088         } else if (argc == 6) {
00089                 /* $classifier lookup $hashbuck $src $dst $fid */
00090                 if (strcmp(argv[1], "lookup") == 0) {
00091                         nsaddr_t src = atoi(argv[3]);
00092                         nsaddr_t dst = atoi(argv[4]);
00093                         int fid = atoi(argv[5]);
00094                         int slot= get_hash(src, dst, fid);
00095                         if (slot>=0 && slot <=maxslot_) {
00096                                 tcl.resultf("%s", slot_[slot]->name());
00097                                 return (TCL_OK);
00098                         }
00099                         tcl.resultf("");
00100                         return (TCL_OK);
00101                 }
00102                 // Added by Yun Wang to set rate for TBFlow or TSWFlow
00103                 if (strcmp(argv[1], "set-flowrate") == 0) {
00104                         int fid = atoi(argv[2]);
00105                         nsaddr_t src = 0;  // only use fid
00106                         nsaddr_t dst = 0;  // to classify flows
00107                         int slot = get_hash( src, dst, fid );
00108                         if ( slot >= 0 && slot <= maxslot_ ) {
00109                                 Flow* f = (Flow*)slot_[slot];
00110                                 tcl.evalf("%u set target_rate_ %s",
00111                                         f, argv[3]);
00112                                 tcl.evalf("%u set bucket_depth_ %s",
00113                                         f, argv[4]);
00114                                 tcl.evalf("%u set tbucket_ %s",
00115                                         f, argv[5]);
00116                                 return (TCL_OK);
00117                         }
00118                         else {
00119                           tcl.evalf("%s set-rate %u %u %u %u %s %s %s",
00120                           name(), src, dst, fid, slot, argv[3], argv[4],argv[5])
00121 ;
00122                           return (TCL_OK);
00123                         }
00124                 }  
00125         } else if (argc == 5) {
00126                 /* $classifier del-hash src dst fid */
00127                 if (strcmp(argv[1], "del-hash") == 0) {
00128                         nsaddr_t src = atoi(argv[2]);
00129                         nsaddr_t dst = atoi(argv[3]);
00130                         int fid = atoi(argv[4]);
00131                         
00132                         Tcl_HashEntry *ep= Tcl_FindHashEntry(&ht_, 
00133                                                              hashkey(src, dst,
00134                                                                      fid)); 
00135                         if (ep) {
00136                                 int slot= (int)Tcl_GetHashValue(ep);
00137                                 Tcl_DeleteHashEntry(ep);
00138                                 tcl.resultf("%u", slot);
00139                                 return (TCL_OK);
00140                         }
00141                         return (TCL_ERROR);
00142                 }
00143         }
00144         return (Classifier::command(argc, argv));
00145 }

Here is the call graph for this function:

void NsObject::debug const char *  fmt,
... 
[virtual, inherited]
 

Definition at line 102 of file object.cc.

References NsObject::debug_.

00103 {
00104         if (!debug_)
00105                 return;
00106         va_list ap;
00107         va_start(ap, fmt);
00108         vprintf(fmt, ap);
00109 }

int NsObject::delay_bind_dispatch const char *  varName,
const char *  localName,
TclObject tracer
[virtual, inherited]
 

Reimplemented in BayFullTcpAgent, Agent, MPLSAddressClassifier, LDPAgent, FullTcpAgent, SackFullTcpAgent, RFC793eduTcpAgent, TcpSink, TcpAgent, and VegasTcpAgent.

Definition at line 63 of file object.cc.

References NsObject::debug_.

Referenced by MPLSAddressClassifier::delay_bind_dispatch(), and Agent::delay_bind_dispatch().

00064 {
00065         if (delay_bind_bool(varName, localName, "debug_", &debug_, tracer)) 
00066                 return TCL_OK;
00067         return TclObject::delay_bind_dispatch(varName, localName, tracer);
00068 }

void NsObject::delay_bind_init_all  )  [virtual, inherited]
 

Reimplemented in BayFullTcpAgent, Agent, MPLSAddressClassifier, LDPAgent, FullTcpAgent, SackFullTcpAgent, RFC793eduTcpAgent, TcpSink, TcpAgent, and VegasTcpAgent.

Definition at line 57 of file object.cc.

Referenced by MPLSAddressClassifier::delay_bind_init_all(), and Agent::delay_bind_init_all().

00058 {
00059         delay_bind_init_one("debug_");
00060 }

virtual void Classifier::do_install char *  dst,
NsObject target
[inline, virtual, inherited]
 

Reimplemented in DestHashClassifier, HierClassifier, and VirtualClassifier.

Definition at line 66 of file classifier.h.

References Classifier::install().

Referenced by RoutingModule::add_route(), BroadcastNode::add_route(), RoutingModule::delete_route(), and BroadcastNode::delete_route().

00066                                                              {
00067                 int slot = atoi(dst);
00068                 install(slot, target); }

Here is the call graph for this function:

int HashClassifier::do_set_hash nsaddr_t  src,
nsaddr_t  dst,
int  fid,
int  slot
[inline]
 

Definition at line 67 of file classifier-hash.h.

References set_hash().

Referenced by ManualRoutingModule::add_route().

00067                                                                        {
00068                 return (set_hash(src,dst,fid,slot));
00069         }

Here is the call graph for this function:

NsObject * Classifier::find Packet  )  [virtual, inherited]
 

Reimplemented in BcastAddressClassifier, QSClassifier, NixClassifier, and SRClassifier.

Definition at line 154 of file classifier.cc.

References Classifier::classify(), Classifier::default_target_, Classifier::nslot_, Classifier::slot_, and Classifier::TWICE.

Referenced by FlowMon::drop(), FlowMon::edrop(), FlowMon::find(), FlowMon::in(), Tagger::in(), FlowMon::mon_edrop(), FlowMon::out(), QSAgent::recv(), MIPDecapsulator::recv(), Classifier::recv(), MacClassifier::recv(), and MCastBSTClassifier::recv().

00155 {
00156         NsObject* node = NULL;
00157         int cl = classify(p);
00158         if (cl < 0 || cl >= nslot_ || (node = slot_[cl]) == 0) { 
00159                 if (default_target_) 
00160                         return default_target_;
00161                 /*
00162                  * Sigh.  Can't pass the pkt out to tcl because it's
00163                  * not an object.
00164                  */
00165                 Tcl::instance().evalf("%s no-slot %ld", name(), cl);
00166                 if (cl == TWICE) {
00167                         /*
00168                          * Try again.  Maybe callback patched up the table.
00169                          */
00170                         cl = classify(p);
00171                         if (cl < 0 || cl >= nslot_ || (node = slot_[cl]) == 0)
00172                                 return (NULL);
00173                 }
00174         }
00175         return (node);
00176 }

Here is the call graph for this function:

int HashClassifier::get_hash nsaddr_t  src,
nsaddr_t  dst,
int  fid
[inline, protected]
 

Definition at line 116 of file classifier-hash.h.

References hashkey(), and ht_.

Referenced by command(), and lookup().

00116                                                           {
00117                 Tcl_HashEntry *ep= Tcl_FindHashEntry(&ht_, 
00118                                                      hashkey(src, dst, fid)); 
00119                 if (ep)
00120                         return (int)Tcl_GetHashValue(ep);
00121                 return -1;
00122         }

Here is the call graph for this function:

int Classifier::getnxt NsObject  )  [protected, virtual, inherited]
 

Reimplemented in ReserveAddressClassifier, and ReservePortClassifier.

Definition at line 120 of file classifier.cc.

References Classifier::alloc(), Classifier::nslot_, and Classifier::slot_.

Referenced by Classifier::command(), and DestHashClassifier::do_install().

00121 {
00122         int i;
00123         for (i=0; i < nslot_; i++)
00124                 if (slot_[i]==0 || slot_[i]==nullagent)
00125                         return i;
00126         i=nslot_;
00127         alloc(nslot_);
00128         return i;
00129 }

Here is the call graph for this function:

void NsObject::handle Event  )  [protected, virtual, inherited]
 

Implements Handler.

Reimplemented in LinkDelay, LL, AckRecons, and Snoop.

Definition at line 91 of file object.cc.

References NsObject::recv().

00092 {
00093         recv((Packet*)e);
00094 }

Here is the call graph for this function:

virtual const char* HashClassifier::hashkey nsaddr_t  ,
nsaddr_t  ,
int 
[protected, pure virtual]
 

Implemented in SrcDestFidHashClassifier, SrcDestHashClassifier, FidHashClassifier, and DestHashClassifier.

Referenced by command(), get_hash(), and set_hash().

void Classifier::install int  slot,
NsObject
[virtual, inherited]
 

Reimplemented in MPLSAddressClassifier.

Definition at line 102 of file classifier.cc.

References Classifier::alloc(), Classifier::maxslot_, Classifier::nslot_, and Classifier::slot_.

Referenced by Classifier::command(), Classifier::do_install(), HierClassifier::do_install(), DestHashClassifier::do_install(), MPLSAddressClassifier::install(), and Classifier::install_next().

00103 {
00104         if (slot >= nslot_)
00105                 alloc(slot);
00106         slot_[slot] = p;
00107         if (slot >= maxslot_)
00108                 maxslot_ = slot;
00109 }

Here is the call graph for this function:

int Classifier::install_next NsObject node  )  [inherited]
 

Definition at line 178 of file classifier.cc.

References Classifier::install(), Classifier::maxslot_, and Classifier::slot().

Referenced by ManualRoutingModule::add_route(), and Classifier::command().

00178                                            {
00179         int slot = maxslot_ + 1;
00180         install(slot, node);
00181         return (slot);
00182 }

Here is the call graph for this function:

int NsObject::isdebug  )  const [inline, inherited]
 

Definition at line 61 of file object.h.

References NsObject::debug_.

00061 { return debug_; }

int HashClassifier::lookup nsaddr_t  src,
nsaddr_t  dst,
int  fid
[inline, protected]
 

Definition at line 88 of file classifier-hash.h.

References get_hash().

00088                                                         {
00089                 return get_hash(src, dst, fid);
00090         }

Here is the call graph for this function:

virtual int HashClassifier::lookup Packet p  )  [inline, virtual]
 

Definition at line 54 of file classifier-hash.h.

References hdr_ip::access(), hdr_ip::daddr(), hdr_ip::flowid(), get_hash(), Classifier::mshift(), and hdr_ip::saddr().

Referenced by DestHashClassifier::classify(), classify(), newflow(), and unknown().

00054                                       {
00055                 hdr_ip* h = hdr_ip::access(p);
00056                 return get_hash(mshift(h->saddr()), mshift(h->daddr()), 
00057                                 h->flowid());
00058         }

Here is the call graph for this function:

int Classifier::maxslot  )  const [inline, inherited]
 

Definition at line 49 of file classifier.h.

References Classifier::maxslot_.

Referenced by FlowMon::dumpflows(), Tagger::dumpflows(), FlowMon::flow_list(), and Tagger::flow_list().

00049 { return maxslot_; }

int Classifier::mshift int  val  )  [inline, inherited]
 

Definition at line 55 of file classifier.h.

References Classifier::mask_, and Classifier::shift_.

Referenced by Classifier::classify(), VirtualClassifier::classify(), AddressClassifier::classify(), DestHashClassifier::hashkey(), SrcDestHashClassifier::hashkey(), SrcDestFidHashClassifier::hashkey(), and lookup().

00055 { return ((val >> shift_) & mask_); }

int HashClassifier::newflow Packet pkt  )  [inline, protected]
 

Definition at line 91 of file classifier-hash.h.

References hdr_ip::access(), hdr_ip::daddr(), hdr_ip::flowid(), lookup(), and hdr_ip::saddr().

00091                                  {
00092                 hdr_ip* h = hdr_ip::access(pkt);
00093                 Tcl::instance().evalf("%s unknown-flow %u %u %u",
00094                                       name(), h->saddr(), h->daddr(),
00095                                       h->flowid()); 
00096                 return lookup(pkt);
00097         };

Here is the call graph for this function:

void NsObject::recv Packet p,
const char *  s
[virtual, inherited]
 

Reimplemented in CMUTrace.

Definition at line 96 of file object.cc.

References Packet::free().

00097 {
00098         Packet::free(p);
00099 }

Here is the call graph for this function:

void Classifier::recv Packet p,
Handler h
[virtual, inherited]
 

Implements NsObject.

Reimplemented in MCastBSTClassifier, HierClassifier, MacClassifier, VirtualClassifier, Replicator, and MIPDecapsulator.

Definition at line 135 of file classifier.cc.

References Classifier::find(), Packet::free(), and NsObject::recv().

Referenced by QSAgent::recv(), ErrorModule::recv(), DumbAgent::recv(), and HierClassifier::recv().

00136 {
00137         NsObject* node = find(p);
00138         if (node == NULL) {
00139                 /*
00140                  * XXX this should be "dropped" somehow.  Right now,
00141                  * these events aren't traced.
00142                  */
00143                 Packet::free(p);
00144                 return;
00145         }
00146         node->recv(p,h);
00147 }

Here is the call graph for this function:

virtual void NsObject::recvOnly Packet  )  [inline, virtual, inherited]
 

Reimplemented in Agent, and Trace.

Definition at line 56 of file object.h.

Referenced by Trace::recvOnly().

00056 {};

void HashClassifier::reset  )  [inline, protected, virtual]
 

Reimplemented from NsObject.

Definition at line 98 of file classifier-hash.h.

References ht_, and keylen_.

00098                      {
00099                 Tcl_DeleteHashTable(&ht_);
00100                 Tcl_InitHashTable(&ht_, keylen_);
00101         }

void HashClassifier::set_default int  slot  )  [inline]
 

Definition at line 66 of file classifier-hash.h.

References default_.

Referenced by ManualRoutingModule::add_route().

00066 { default_ = slot; } 

void Classifier::set_default_target NsObject obj  )  [inline, inherited]
 

Definition at line 56 of file classifier.h.

References Classifier::default_target_.

Referenced by HierClassifier::command().

00056                                                       { 
00057                 default_target_ = obj;
00058         }

int HashClassifier::set_hash nsaddr_t  src,
nsaddr_t  dst,
int  fid,
int  slot
[inline, protected]
 

Definition at line 105 of file classifier-hash.h.

References hashkey(), and ht_.

Referenced by command(), DestHashClassifier::do_install(), and do_set_hash().

00105                                                                     {
00106                 int newEntry;
00107                 Tcl_HashEntry *ep= Tcl_CreateHashEntry(&ht_,
00108                                                        hashkey(src, dst, fid),
00109                                                        &newEntry); 
00110                 if (ep) {
00111                         Tcl_SetHashValue(ep, slot);
00112                         return slot;
00113                 }
00114                 return -1;
00115         }

Here is the call graph for this function:

virtual void Classifier::set_table_size int  level,
int  nn
[inline, virtual, inherited]
 

Reimplemented in HierClassifier.

Definition at line 75 of file classifier.h.

00075 {}

void HashClassifier::set_table_size int  nn  )  [inline]
 

Reimplemented from Classifier.

Definition at line 70 of file classifier-hash.h.

00070 {}

NsObject* Classifier::slot int  slot  )  [inline, inherited]
 

Definition at line 50 of file classifier.h.

References Classifier::nslot_, and Classifier::slot_.

Referenced by DestHashClassifier::classify(), classify(), Classifier::command(), MCastClassifier::command(), HierClassifier::command(), command(), MPLSAddressClassifier::command(), DestHashClassifier::do_install(), FlowMon::dumpflows(), Tagger::dumpflows(), FlowMon::flow_list(), Tagger::flow_list(), and Classifier::install_next().

00050                                         {
00051                 if ((slot >= 0) && (slot < nslot_))
00052                         return slot_[slot];
00053                 return 0;
00054         }

virtual int HashClassifier::unknown Packet p  )  [inline, virtual]
 

Definition at line 59 of file classifier-hash.h.

References hdr_ip::access(), hdr_ip::daddr(), hdr_ip::flowid(), lookup(), and hdr_ip::saddr().

Referenced by classify().

00059                                        {
00060                 hdr_ip* h = hdr_ip::access(p);
00061                 Tcl::instance().evalf("%s unknown-flow %u %u %u",
00062                                       name(), h->saddr(), h->daddr(),
00063                                       h->flowid()); 
00064                 return lookup(p);
00065         };

Here is the call graph for this function:


Member Data Documentation

hkey HashClassifier::buf_ [protected]
 

Definition at line 129 of file classifier-hash.h.

Referenced by SrcDestHashClassifier::hashkey(), and SrcDestFidHashClassifier::hashkey().

int NsObject::debug_ [protected, inherited]
 

Reimplemented in FECModel, FloodAgent, and LandmarkAgent.

Definition at line 66 of file object.h.

Referenced by REDQueue::command(), RedPDQueue::command(), PushbackQueue::command(), NsObject::debug(), NsObject::delay_bind_dispatch(), RedPDQueue::enque(), PushbackQueue::enque(), NsObject::isdebug(), NsObject::NsObject(), TfrcAgent::recv(), PushbackQueue::reportDrop(), and REDQueue::reset().

int HashClassifier::default_ [protected]
 

Definition at line 127 of file classifier-hash.h.

Referenced by DestHashClassifier::classify(), classify(), HashClassifier(), and set_default().

NsObject* Classifier::default_target_ [protected, inherited]
 

Definition at line 87 of file classifier.h.

Referenced by Classifier::Classifier(), Classifier::command(), Classifier::find(), BcastAddressClassifier::find(), and Classifier::set_default_target().

Tcl_HashTable HashClassifier::ht_ [protected]
 

Definition at line 128 of file classifier-hash.h.

Referenced by command(), get_hash(), HashClassifier(), reset(), set_hash(), and ~HashClassifier().

int HashClassifier::keylen_ [protected]
 

Definition at line 130 of file classifier-hash.h.

Referenced by HashClassifier(), and reset().

int Classifier::mask_ [protected, inherited]
 

Definition at line 86 of file classifier.h.

Referenced by Classifier::Classifier(), and Classifier::mshift().

int Classifier::maxslot_ [protected, inherited]
 

Definition at line 83 of file classifier.h.

Referenced by MultiPathForwarder::classify(), DestHashClassifier::classify(), classify(), Classifier::clear(), ReservePortClassifier::clear(), ReserveAddressClassifier::clear(), Replicator::command(), ReservePortClassifier::command(), command(), ReserveAddressClassifier::command(), Classifier::install(), Classifier::install_next(), Classifier::maxslot(), Replicator::recv(), and MacClassifier::recv().

int Classifier::nsize_ [protected, inherited]
 

Definition at line 88 of file classifier.h.

Referenced by Classifier::alloc(), and Classifier::set_table_size().

int Classifier::nslot_ [protected, inherited]
 

Definition at line 82 of file classifier.h.

Referenced by Classifier::alloc(), Classifier::command(), Classifier::find(), BcastAddressClassifier::find(), MCastClassifier::findslot(), Classifier::getnxt(), ReservePortClassifier::getnxt(), ReserveAddressClassifier::getnxt(), Classifier::install(), MPLSAddressClassifier::install(), and Classifier::slot().

int Classifier::offset_ [protected, inherited]
 

Definition at line 84 of file classifier.h.

Referenced by Classifier::Classifier(), and Classifier::classify().

int Classifier::shift_ [protected, inherited]
 

Definition at line 85 of file classifier.h.

Referenced by Classifier::Classifier(), and Classifier::mshift().

NsObject** Classifier::slot_ [protected, inherited]
 

Definition at line 81 of file classifier.h.

Referenced by Classifier::alloc(), MultiPathForwarder::classify(), Classifier::clear(), ReservePortClassifier::clear(), ReserveAddressClassifier::clear(), Replicator::command(), Classifier::command(), MCastClassifier::command(), command(), Classifier::find(), BcastAddressClassifier::find(), MCastClassifier::findslot(), Classifier::getnxt(), ReservePortClassifier::getnxt(), ReserveAddressClassifier::getnxt(), Classifier::install(), MPLSAddressClassifier::install(), Replicator::recv(), MacClassifier::recv(), Classifier::slot(), and Classifier::~Classifier().


The documentation for this class was generated from the following files:
Generated on Tue Apr 20 12:50:17 2004 for NS2.26SourcesOriginal by doxygen 1.3.3