802_11-tracer.cc

00001 /*
00002  * Copyright (c) 2007 Regents of the SIGNET lab, University of Padova.
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  * 1. Redistributions of source code must retain the above copyright
00009  *    notice, this list of conditions and the following disclaimer.
00010  * 2. Redistributions in binary form must reproduce the above copyright
00011  *    notice, this list of conditions and the following disclaimer in the
00012  *    documentation and/or other materials provided with the distribution.
00013  * 3. Neither the name of the University of Padova (SIGNET lab) nor the 
00014  *    names of its contributors may be used to endorse or promote products 
00015  *    derived from this software without specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
00018  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 
00019  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
00020  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
00021  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
00022  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
00023  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
00024  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
00025  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
00026  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
00027  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00028  */
00029 
00030 #include "802_11-tracer.h"
00031 #include <sap.h>
00032 #include <address.h>
00033 #include <mac.h>
00034 #include <mac-802_11.h>
00035 
00036 Mac_802_11_Tracer::Mac_802_11_Tracer() : Tracer(2) {}
00037 
00038 void Mac_802_11_Tracer::format(Packet *p, SAP *sap)
00039 {
00040         struct hdr_mac802_11 *mh = HDR_MAC802_11(p);
00041         hdr_cmn *ch = hdr_cmn::access(p);
00042         
00043         writeTrace(sap, " --MAC-- [%d %.10f %d %d %x]",
00044                         mh->dh_duration,
00045                         ch->txtime(),
00046                         ETHER_ADDR(mh->dh_ra),
00047                         ETHER_ADDR(mh->dh_ta),
00048                         GET_ETHER_TYPE(mh->dh_body)
00049                         );
00050 }
00051 
00052 
00053 extern "C" int Mac_Init()
00054 {
00055   /*
00056    * Put here all the commands which must be execute when the library
00057    * is loaded (i.e. TCL script execution)  
00058    * Remember to return 0 if all is OK, otherwise return 1
00059   */
00060         
00061         SAP::addTracer(new Mac_802_11_Tracer);
00062         return 0;
00063 }
00064 extern "C" int  Cygmac_Init()
00065 {
00066   Mac_Init();
00067 }
00068 
00069 

Generated on Wed Nov 26 15:47:27 2008 for NS-MIRACLE library by  doxygen 1.5.2