An address classifier is used in supporting unicast packet forwarding. It applies a bitwise shift and mask operation to a packet's destination address to produce a slot number. The slot number is returned from the []classify method. The AddressClassifier../ns-2/classifier-addr.cc (defined in classifier-addr.cc) ide defined as follows:
class AddressClassifier : public Classifier { public: AddressClassifier() : mask_(~0), shift_(0) { bind("mask_", (int*)&mask_); bind("shift_", &shift_); } protected: int classify(Packet *const p) { IPHeader *h = IPHeader::access(p-\>bits()); return ((h-\>dst() \>\> shift_) & mask_); } nsaddr_t mask_; int shift_; };The class imposes no direct semantic meaning on a packet's destination address field. Rather, it returns some number of bits from the packet's dst_ field as the slot number used in the []Classifier::recv../ns-2/classifier.ccClassifier::recv method. The mask_ and shift_ values are set through OTcl.