wired-phy.cc

Go to the documentation of this file.
00001 /* -*-  Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*-  *
00002  *
00003  * Copyright (c) 1997 Regents of the University of California.
00004  * All rights reserved.
00005  *
00006  * Redistribution and use in source and binary forms, with or without
00007  * modification, are permitted provided that the following conditions
00008  * are met:
00009  * 1. Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  * 2. Redistributions in binary form must reproduce the above copyright
00012  *    notice, this list of conditions and the following disclaimer in the
00013  *    documentation and/or other materials provided with the distribution.
00014  * 3. All advertising materials mentioning features or use of this software
00015  *    must display the following acknowledgement:
00016  *  This product includes software developed by the Daedalus Research
00017  *  Group at the University of California Berkeley.
00018  * 4. Neither the name of the University nor of the Laboratory may be used
00019  *    to endorse or promote products derived from this software without
00020  *    specific prior written permission.
00021  *
00022  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
00023  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00024  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00025  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
00026  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00027  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
00028  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00029  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00030  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
00031  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00032  * SUCH DAMAGE.
00033  * @(#) $Header: 
00034  */
00035 
00036 #include <wired-phy.h>
00037 
00038 
00039 static class WiredPhyClass: public TclClass {
00040 public:
00041         WiredPhyClass() : TclClass("Phy/WiredPhy") {}
00042         TclObject* create(int, const char*const*) {
00043                 return (new WiredPhy);
00044         }
00045 } class_WiredPhy;
00046 
00047 WiredPhy::WiredPhy(void) : Phy() 
00048 {
00049     //propagation_ = 0;
00050     //bandwidth_ = 10*1e6;      // 10M
00051     bind_bw("bandwidth_", &bandwidth_);
00052 }
00053     
00054 
00055 int
00056 WiredPhy::command(int argc, const char*const* argv) {
00057     if (argc == 3) {
00058         TclObject *obj;
00059         if( (obj = TclObject::lookup(argv[2])) == 0) {
00060             fprintf(stderr, "%s lookup failed\n", argv[1]);
00061             return TCL_ERROR;
00062         }
00063 
00064         //if (strcmp(argv[1], "propagation") == 0) {
00065         //assert(propagation_ == 0);
00066         //propagation_ = (TclObject*) obj;
00067         //return TCL_OK;
00068         //}
00069     }
00070     
00071     return Phy::command(argc, argv);
00072 }
00073 
00074 
00075 
00076 void WiredPhy::sendDown(Packet *p)
00077 {
00078     /*
00079      * Sanity Check
00080      */
00081     assert(initialized());
00082 
00083     /*
00084      *  Stamp the packet with the interface arguments, txtime and 
00085      *  info reqd by recving interface to determine 
00086      *  collision/contention
00087      */
00088     
00089     
00090     // and then send the packet
00091     channel_->recv(p, this);
00092 }
00093 
00094 
00095 int WiredPhy::sendUp(Packet *)
00096 {
00097     /*
00098      * Sanity Check
00099      */
00100     assert(initialized());
00101     
00102     /* check with propagation model for collision, channel 
00103        contention */
00104     /* Return one if pkt recv , else return zero.*/
00105     return 1;
00106 }
00107 
00108     
00109     
00110     

Generated on Tue Mar 6 16:47:53 2007 for ns2 Network Simulator 2.29 by  doxygen 1.4.6