--- a/001-netdevice-queue-state.patch Tue May 17 15:48:40 2011 +0200
+++ b/001-netdevice-queue-state.patch Tue May 17 16:30:38 2011 +0200
@@ -23,7 +23,7 @@
+ return 0;
+}
+void
-+BridgeNetDevice::SetQueueStateChange (Callback<void,uint32_t> callback)
++BridgeNetDevice::SetQueueStateChangeCallback (Callback<void,uint32_t> callback)
+{}
+
} // namespace ns3
@@ -36,11 +36,47 @@
+ virtual uint32_t GetQueueState (uint32_t index);
+ virtual uint32_t GetNQueues (void);
-+ virtual void SetQueueStateChange (Callback<void,uint32_t> callback);
++ virtual void SetQueueStateChangeCallback (Callback<void,uint32_t> callback);
+
protected:
virtual void DoDispose (void);
+diff --git a/src/csma/model/csma-net-device.cc b/src/csma/model/csma-net-device.cc
+--- a/src/csma/model/csma-net-device.cc
++++ b/src/csma/model/csma-net-device.cc
+@@ -1014,4 +1014,18 @@
+ return true;
+ }
+
++uint32_t
++CsmaNetDevice::GetQueueState (uint32_t index)
++{
++ return 1;
++}
++uint32_t
++CsmaNetDevice::GetNQueues (void)
++{
++ return 0;
++}
++void
++CsmaNetDevice::SetQueueStateChangeCallback (Callback<void,uint32_t> callback)
++{}
++
+ } // namespace ns3
+diff --git a/src/csma/model/csma-net-device.h b/src/csma/model/csma-net-device.h
+--- a/src/csma/model/csma-net-device.h
++++ b/src/csma/model/csma-net-device.h
+@@ -315,6 +315,10 @@
+ virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
+ virtual bool SupportsSendFrom (void) const;
+
++ virtual uint32_t GetQueueState (uint32_t index);
++ virtual uint32_t GetNQueues (void);
++ virtual void SetQueueStateChangeCallback (Callback<void,uint32_t> callback);
++
+ protected:
+ /**
+ * Perform any object release functionality required to break reference
diff --git a/src/internet/model/loopback-net-device.cc b/src/internet/model/loopback-net-device.cc
--- a/src/internet/model/loopback-net-device.cc
+++ b/src/internet/model/loopback-net-device.cc
@@ -59,7 +95,7 @@
+ return 0;
+}
+void
-+LoopbackNetDevice::SetQueueStateChange (Callback<void,uint32_t> callback)
++LoopbackNetDevice::SetQueueStateChangeCallback (Callback<void,uint32_t> callback)
+{}
+
} // namespace ns3
@@ -72,7 +108,7 @@
+ virtual uint32_t GetQueueState (uint32_t index);
+ virtual uint32_t GetNQueues (void);
-+ virtual void SetQueueStateChange (Callback<void,uint32_t> callback);
++ virtual void SetQueueStateChangeCallback (Callback<void,uint32_t> callback);
+
protected:
virtual void DoDispose (void);
@@ -99,7 +135,7 @@
+ * Sets a callback invoked whenever a queue changes state. reports
+ * queue index.
+ */
-+ virtual void SetQueueStateChange (Callback<void,uint32_t> callback) = 0;
++ virtual void SetQueueStateChangeCallback (Callback<void,uint32_t> callback) = 0;
+
};
@@ -122,7 +158,7 @@
+ return 0;
+}
+void
-+SimpleNetDevice::SetQueueStateChange (Callback<void,uint32_t> callback)
++SimpleNetDevice::SetQueueStateChangeCallback (Callback<void,uint32_t> callback)
+{}
+
} // namespace ns3
@@ -135,7 +171,7 @@
+ virtual uint32_t GetQueueState (uint32_t index);
+ virtual uint32_t GetNQueues (void);
-+ virtual void SetQueueStateChange (Callback<void,uint32_t> callback);
++ virtual void SetQueueStateChangeCallback (Callback<void,uint32_t> callback);
+
protected:
virtual void DoDispose (void);
@@ -158,7 +194,7 @@
+ return 0;
+}
+void
-+WifiNetDevice::SetQueueStateChange (Callback<void,uint32_t> callback)
++WifiNetDevice::SetQueueStateChangeCallback (Callback<void,uint32_t> callback)
+{}
+
} // namespace ns3
@@ -172,7 +208,7 @@
+ virtual uint32_t GetQueueState (uint32_t index);
+ virtual uint32_t GetNQueues (void);
-+ virtual void SetQueueStateChange (Callback<void,uint32_t> callback);
++ virtual void SetQueueStateChangeCallback (Callback<void,uint32_t> callback);
+
private:
// This value conforms to the 802.11 specification
--- a/002-wifinetdevice-queue-state.patch Tue May 17 15:48:40 2011 +0200
+++ b/002-wifinetdevice-queue-state.patch Tue May 17 16:30:38 2011 +0200
@@ -1,7 +1,33 @@
# HG changeset patch
-# Parent 663759fd43a5eba996e707f32d29d6cb640a5825
+# Parent 9b5b42ddb10a4d7076d74712cdc78b01042965b2
# User Ruben Merz <ruben@net.t-labs.tu-berlin.de>
# Date 1305637516 -7200
WifiNetDevice queue state implementation
+diff --git a/src/wifi/model/wifi-net-device.cc b/src/wifi/model/wifi-net-device.cc
+--- a/src/wifi/model/wifi-net-device.cc
++++ b/src/wifi/model/wifi-net-device.cc
+@@ -376,7 +376,9 @@
+ }
+ void
+ WifiNetDevice::SetQueueStateChange (Callback<void,uint32_t> callback)
+-{}
++{
++ m_queueStateChanges.ConnectWithoutContext (callback);
++}
+
+ } // namespace ns3
+
+diff --git a/src/wifi/model/wifi-net-device.h b/src/wifi/model/wifi-net-device.h
+--- a/src/wifi/model/wifi-net-device.h
++++ b/src/wifi/model/wifi-net-device.h
+@@ -137,6 +137,8 @@
+ TracedCallback<Ptr<const Packet>, Mac48Address> m_rxLogger;
+ TracedCallback<Ptr<const Packet>, Mac48Address> m_txLogger;
+
++ TracedCallback<uint32_t> m_queueStateChanges;
++
+ uint32_t m_ifIndex;
+ bool m_linkUp;
+ TracedCallback<> m_linkChanges;