HashClassifier Class Reference

#include <classifier-hash.h>

Inheritance diagram for HashClassifier:

Classifier NsObject TclObject Handler DestHashClassifier FidHashClassifier SrcDestFidHashClassifier SrcDestHashClassifier Collaboration diagram for HashClassifier:

Collaboration graph
[legend]

Detailed Description

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

Public Types

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

Public Member Functions

int allocPort (NsObject *)
virtual int classify (Packet *p)
virtual void clear (int slot)
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 ()
virtual void do_install (char *dst, NsObject *target)
int do_set_hash (nsaddr_t src, nsaddr_t dst, int fid, int slot)
virtual NsObjectfind (Packet *)
 HashClassifier (int keylen)
virtual void install (int slot, NsObject *)
int install_next (NsObject *node)
int isdebug () const
virtual long lookup (Packet *p)
int maxslot () const
int mshift (int val)
virtual void recv (Packet *p, const char *s)
virtual void recv (Packet *p, Handler *h)
virtual void recvOnly (Packet *)
void set_default (int slot)
void set_default_target (NsObject *obj)
virtual void set_table_size (int level, int nn)
void set_table_size (int nn)
NsObjectslot (int slot)
virtual long unknown (Packet *p)
 ~HashClassifier ()

Protected Member Functions

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

Protected Attributes

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

Data Structures

union  hkey


Member Enumeration Documentation

enum Classifier::classify_ret [inherited]
 

Enumerator:
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_, and ht_.

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 Classifier::allocPort NsObject  )  [inherited]
 

Definition at line 120 of file classifier.cc.

References Classifier::getnxt().

00121 {
00122     return getnxt (nullagent);
00123 }

Here is the call graph for this function:

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(), upstream_info::dst, get_hash(), hashkey(), ht_, Classifier::maxslot_, 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                 long slot = (long)Tcl_GetHashValue(ep);
00137                 Tcl_DeleteHashEntry(ep);
00138                 tcl.resultf("%lu", 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, HbAfterRtoSctpAgent, MfrHbAfterRtoSctpAgent, MfrTimestampSctpAgent, MultipleFastRtxSctpAgent, NewRenoSctpAgent, TimestampSctpAgent, SctpAgent, FullTcpAgent, SackFullTcpAgent, RFC793eduTcpAgent, TcpSink, TcpAgent, VegasTcpAgent, XcpAgent, and XcpSink.

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, HbAfterRtoSctpAgent, MfrHbAfterRtoSctpAgent, MfrTimestampSctpAgent, MultipleFastRtxSctpAgent, NewRenoSctpAgent, TimestampSctpAgent, SctpAgent, FullTcpAgent, SackFullTcpAgent, RFC793eduTcpAgent, TcpSink, TcpAgent, VegasTcpAgent, XcpAgent, and XcpSink.

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(), and Classifier::slot().

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 159 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(), MIPDecapsulator::recv(), Classifier::recv(), MacClassifier::recv(), MCastBSTClassifier::recv(), and SctpAgent::SetSource().

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

Here is the call graph for this function:

long 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 (long)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 125 of file classifier.cc.

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

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

00126 {
00127     int i;
00128     for (i=0; i < nslot_; i++)
00129         if (slot_[i]==0 || slot_[i]==nullagent)
00130             return i;
00131     i=nslot_;
00132     alloc(nslot_);
00133     return i;
00134 }

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 183 of file classifier.cc.

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

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

00183                                            {
00184     int slot = maxslot_ + 1;
00185     install(slot, node);
00186     return (slot);
00187 }

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_; }

long 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 long 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 140 of file classifier.cc.

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

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

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

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,
long  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(), Classifier::do_install(), 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 long 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:


Field 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(), PushbackQueue::enque(), NsObject::isdebug(), NsObject::NsObject(), TfrcAgent::recv(), PushbackQueue::reportDrop(), SctpAgent::Reset(), REDQueue::reset(), DropTail::shrink_queue(), and Delayer::try_send().

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 88 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 reset().

int Classifier::mask_ [protected, inherited]
 

Definition at line 87 of file classifier.h.

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

int Classifier::maxslot_ [protected, inherited]
 

Definition at line 84 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 89 of file classifier.h.

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

int Classifier::nslot_ [protected, inherited]
 

Definition at line 83 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 85 of file classifier.h.

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

int Classifier::shift_ [protected, inherited]
 

Definition at line 86 of file classifier.h.

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

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

Definition at line 82 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(), SRClassifier::find(), QSClassifier::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 Mar 6 17:09:22 2007 for ns2 Network Simulator 2.29 by  doxygen 1.4.6