umts-ip-interface.h

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<ip-interface.h>
00031 #include<list>
00032 
00033 #ifndef UMTS_IP_INTERFACE_H
00034 #define UMTS_IP_INTERFACE_H
00035 
00036 //#define UMTS_START_IP_ADDRESS 0x0F210001
00037 //#define UMTS_SUBNET_MASK      0xFFFF0000
00038 
00039 
00040 class IpCode {
00041  public:
00042   nsaddr_t ip;  
00043   int code;
00044 
00045   IpCode(nsaddr_t i) {ip=i;}
00046   IpCode(nsaddr_t i, int c) {ip=i; code=c;}
00047   IpCode(const IpCode &c) {code=c.code; ip=c.ip;}
00048   IpCode &operator=(const IpCode &rhs) { this->code=rhs.code; this->ip=rhs.ip; return *this;}
00049   int operator==(const IpCode &rhs) const {return ip==rhs.ip;}
00050   int operator<(const IpCode &rhs) const {return ip < rhs.ip;}
00051 };
00052 
00053 
00054 typedef std::list<IpCode> IpCodeList;
00055 
00056 
00057 
00058 class UmtsIPInterfaceModule : public IPInterfaceModule
00059 {
00060 public:
00061   UmtsIPInterfaceModule();
00062   virtual ~UmtsIPInterfaceModule();
00063   virtual void recv(Packet *p);
00064   int getCode(nsaddr_t ipaddr);
00065   void addIpCode(nsaddr_t ipaddr, int code);
00066   int command(int argc, const char*const* argv);
00067   
00068 protected:
00069   IpCodeList       ipclist;
00070   //  static nsaddr_t  ipAddrCounter;
00071   //  static nsaddr_t  ipSubNet;
00072 };
00073 
00074 #endif  /* IP_INTERFACE_H */

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