Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(806)

Unified Diff: src/jamming/model/nsl-wifi-channel.h

Issue 1055041: ns-3: Wireless Interference (Jamming) Framework
Patch Set: Add python bindings. Update to latest dev tree (3.11). Created 12 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/jamming/model/mitigate-by-channel-hop.cc ('k') | src/jamming/model/nsl-wifi-channel.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/jamming/model/nsl-wifi-channel.h
===================================================================
new file mode 100644
--- /dev/null
+++ b/src/jamming/model/nsl-wifi-channel.h
@@ -0,0 +1,95 @@
+/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2006,2007 INRIA
+ * Copyright (c) 2010 Network Security Lab, University of Washington, Seattle.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ * Sidharth Nabar <snabar@uw.edu>, He Wu <mdzz@u.washington.edu>
+ */
+
+#ifndef NSL_WIFI_CHANNEL_H
+#define NSL_WIFI_CHANNEL_H
+
+#include <vector>
+#include <stdint.h>
+#include "ns3/packet.h"
+#include "ns3/wifi-channel.h"
+#include "ns3/wifi-mode.h"
+#include "ns3/wifi-preamble.h"
+#include "ns3/propagation-loss-model.h"
+#include "ns3/propagation-delay-model.h"
+
+namespace ns3 {
+
+class NetDevice;
+class NslWifiPhy;
+
+/**
+ * This class is almost identical to YansWifiChannel. It is introduced together
+ * with NslWifiPhy.
+ */
+class NslWifiChannel : public WifiChannel
+{
+public:
+ static TypeId GetTypeId (void);
+ NslWifiChannel ();
+ virtual ~NslWifiChannel ();
+
+ // inherited from Channel.
+ virtual uint32_t GetNDevices (void) const;
+ virtual Ptr<NetDevice> GetDevice (uint32_t i) const;
+
+ void Add (Ptr<NslWifiPhy> phy);
+
+ /**
+ * \param loss the new propagation loss model.
+ */
+ void SetPropagationLossModel (Ptr<PropagationLossModel> loss);
+
+ /**
+ * \param delay the new propagation delay model.
+ */
+ void SetPropagationDelayModel (Ptr<PropagationDelayModel> delay);
+
+ /**
+ * \param sender the device from which the packet is originating.
+ * \param packet the packet to send
+ * \param txPowerDbm the tx power associated to the packet
+ * \param wifiMode the tx mode associated to the packet
+ * \param preamble the preamble associated to the packet
+ *
+ * This method should not be invoked by normal users. It is currently invoked
+ * only from WifiPhy::Send. NslWifiChannel delivers packets only between
+ * PHYs with the same m_channelNumber, e.g. PHYs that are operating on the
+ * same channel.
+ */
+ void Send (Ptr<NslWifiPhy> sender, Ptr<const Packet> packet,
+ double txPowerDbm, WifiMode wifiMode, WifiPreamble preamble) const;
+
+private:
+ typedef std::vector<Ptr<NslWifiPhy> > PhyList;
+ void Receive (uint32_t i, Ptr<Packet> packet, double rxPowerDbm,
+ WifiMode txMode, WifiPreamble preamble) const;
+
+ PhyList m_phyList;
+ Ptr<PropagationLossModel> m_loss;
+ Ptr<PropagationDelayModel> m_delay;
+};
+
+} // namespace ns3
+
+
+#endif /* NSL_WIFI_CHANNEL_H */
« no previous file with comments | « src/jamming/model/mitigate-by-channel-hop.cc ('k') | src/jamming/model/nsl-wifi-channel.cc » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b