-def connect_fd_tap(tesbed_instance, fd, tap):
- # TODO!
- pass
-
- ### create traces functions ###
-
-def get_node_guid(testbed_instance, guid):
- node_guid = testbed_instance.get_connected(guid, "node", "devs")[0]
- return node_guid
-
-def get_dev_number(testbed_instance, guid):
- dev_guids = testbed_instance.get_connected(node_guid, "devs", "node")
- interface_number = 0
- for guid_ in dev_guids:
- if guid_ == guid:
- break
- inteface_number += 1
- return interface_number
-
-def p2ppcap_trace(testbed_instance, guid):
- trace_id = "p2ppcap"
- node_guid = get_node_guid(testbed_instance, guid)
- interface_number = get_dev_number(testbed_instance, guid)
- element = testbed_instance._elements[guid]
- filename = "trace-p2p-node-%d-dev-%d.pcap" % (node_name, interface_number)
- testbed_instance.follow_trace(guid, trace_id, filename)
- filepath = testbed_instance.trace_filename(self, guid, trace_id)
- helper = testbed_instance.ns3.PointToPointHelper()
- helper.EnablePcap(filepath, element, explicitFilename = True)
-
-def _csmapcap_trace(testbed_instance, guid, trace_id, promisc):
- node_guid = get_node_guid(testbed_instance, guid)
- interface_number = get_dev_number(testbed_instance, guid)
- element = testbed_instance._elements[guid]
- filename = "trace-csma-node-%d-dev-%d.pcap" % (node_name, interface_number)
- testbed_instance.follow_trace(guid, trace_id, filename)
- filepath = testbed_instance.trace_filename(self, guid, trace_id)
- helper = testbed_instance.ns3.CsmaHelper()
- helper.EnablePcap(filepath, element, promiscuous = promisc,
- explicitFilename = True)
-
-def csmapcap_trace(testbed_instance, guid):
- trace_id = "csmapcap"
- promisc = False
- _csmapcap_trace(testbed_instance, guid, trace_id, promisc)
-
-def csmapcap_promisc_trace(testbed_instance, guid):
- trace_id = "csmapcap_promisc"
- promisc = True
- _csmapcap_trace(testbed_instance, guid, trace_id, promisc)
-
-def fdpcap_trace(testbed_instance, guid):
- trace_id = "fdpcap"
- node_guid = get_node_guid(testbed_instance, guid)
- interface_number = get_dev_number(testbed_instance, guid)
- element = testbed_instance._elements[guid]
- filename = "trace-fd-node-%d-dev-%d.pcap" % (node_name, interface_number)
- testbed_instance.follow_trace(guid, trace_id, filename)
- filepath = testbed_instance.trace_filename(self, guid, trace_id)
- helper = testbed_instance.ns3.FileDescriptorHelper()
- helper.EnablePcap(filepath, element, explicitFilename = True)
-
-def yanswifipcap_trace(testbed_instance, guid):
- trace_id = "yanswifipcap"
- dev_guid = testbed_instance.get_connected(guid, "dev", "phy")[0]
- node_guid = get_node_guid(testbed_instance, dev_guid)
- interface_number = get_dev_number(testbed_instance, dev_guid)
- element = testbed_instance._elements[dev_guid]
- filename = "trace-yanswifi-node-%d-dev-%d.pcap" % (node_name, interface_number)
- testbed_instance.follow_trace(guid, trace_id, filename)
- filepath = testbed_instance.trace_filename(self, guid, trace_id)
- helper = testbed_instance.ns3.YansWifiPhyHelper()
- helper.EnablePcap(filepath, element, explicitFilename = True)
-
-trace_functions = dict({
- "p2ppcap": p2ppcap_trace,
- "csmapcap": csmapcap_trace,
- "csmapcap_promisc": csmapcap_promisc_trace,
- "fdpcap": fdpcap_trace,
- "yanswifipcap": yanswifipcap_trace
- })