2 # -*- coding: utf-8 -*-
4 from nepi.util.constants import AF_INET, STATUS_NOT_STARTED, STATUS_RUNNING, \
5 STATUS_FINISHED, STATUS_UNDETERMINED
7 from nepi.util.tunchannel_impl import \
8 preconfigure_tunchannel, postconfigure_tunchannel, \
9 wait_tunchannel, create_tunchannel
12 def _get_ipv4_protocol_guid(testbed_instance, node_guid):
13 # search for the Ipv4L3Protocol asociated with the device
14 protos_guids = testbed_instance.get_connected(node_guid, "protos", "node")
15 if len(protos_guids) == 0:
16 raise RuntimeError("No protocols where found for the node %d" % node_guid)
18 for proto_guid in protos_guids:
19 proto_factory_id = testbed_instance._create[proto_guid]
20 if proto_factory_id == "ns3::Ipv4L3Protocol":
21 ipv4_guid = proto_guid
24 raise RuntimeError("No Ipv4L3Protocol associated to node %d. \
25 can't add Ipv4 addresses" % node_guid)
28 def _get_node_guid(testbed_instance, guid):
29 # search for the node asociated with the device
30 node_guids = testbed_instance.get_connected(guid, "node", "devs")
31 if len(node_guids) == 0:
32 raise RuntimeError("Can't instantiate interface %d outside netns \
34 node_guid = node_guids[0]
37 def _get_dev_number(testbed_instance, guid):
38 node_guid = _get_node_guid(testbed_instance, guid)
39 dev_guids = testbed_instance.get_connected(node_guid, "devs", "node")
41 for guid_ in dev_guids:
45 return interface_number
47 ### create traces functions ###
49 def p2pascii_trace(testbed_instance, guid, trace_id):
50 node_guid = _get_node_guid(testbed_instance, guid)
51 interface_number = _get_dev_number(testbed_instance, guid)
52 element = testbed_instance._elements[guid]
53 filename = "trace-p2p-node-%d-dev-%d.tr" % (node_guid, interface_number)
54 testbed_instance.follow_trace(guid, trace_id, filename)
55 filepath = testbed_instance.trace_filename(guid, trace_id)
56 helper = testbed_instance.ns3.PointToPointHelper()
57 asciiHelper = testbed_instance.ns3.AsciiTraceHelper()
58 stream = asciiHelper.CreateFileStream (filepath)
59 helper.EnableAscii(stream, element)
61 def p2ppcap_trace(testbed_instance, guid, trace_id):
62 node_guid = _get_node_guid(testbed_instance, guid)
63 interface_number = _get_dev_number(testbed_instance, guid)
64 element = testbed_instance._elements[guid]
65 filename = "trace-p2p-node-%d-dev-%d.pcap" % (node_guid, interface_number)
66 testbed_instance.follow_trace(guid, trace_id, filename)
67 filepath = testbed_instance.trace_filename(guid, trace_id)
68 helper = testbed_instance.ns3.PointToPointHelper()
69 helper.EnablePcap(filepath, element, explicitFilename = True)
71 def _csmapcap_trace(testbed_instance, guid, trace_id, promisc):
72 node_guid = _get_node_guid(testbed_instance, guid)
73 interface_number = _get_dev_number(testbed_instance, guid)
74 element = testbed_instance._elements[guid]
75 filename = "trace-csma-node-%d-dev-%d.pcap" % (node_guid, interface_number)
76 testbed_instance.follow_trace(guid, trace_id, filename)
77 filepath = testbed_instance.trace_filename(guid, trace_id)
78 helper = testbed_instance.ns3.CsmaHelper()
79 helper.EnablePcap(filepath, element, promiscuous = promisc,
80 explicitFilename = True)
82 def csmapcap_trace(testbed_instance, guid, trace_id):
84 _csmapcap_trace(testbed_instance, guid, trace_id, promisc)
86 def csmapcap_promisc_trace(testbed_instance, guid, trace_id):
88 _csmapcap_trace(testbed_instance, guid, trace_id, promisc)
90 def fdpcap_trace(testbed_instance, guid, trace_id):
91 node_guid = _get_node_guid(testbed_instance, guid)
92 interface_number = _get_dev_number(testbed_instance, guid)
93 element = testbed_instance._elements[guid]
94 filename = "trace-fd-node-%d-dev-%d.pcap" % (node_guid, interface_number)
95 testbed_instance.follow_trace(guid, trace_id, filename)
96 filepath = testbed_instance.trace_filename(guid, trace_id)
97 helper = testbed_instance.ns3.FileDescriptorHelper()
98 helper.EnablePcap(filepath, element, explicitFilename = True)
100 def yanswifipcap_trace(testbed_instance, guid, trace_id):
101 dev_guid = testbed_instance.get_connected(guid, "dev", "phy")[0]
102 node_guid = _get_node_guid(testbed_instance, dev_guid)
103 interface_number = _get_dev_number(testbed_instance, dev_guid)
104 element = testbed_instance._elements[dev_guid]
105 filename = "trace-yanswifi-node-%d-dev-%d.pcap" % (node_guid, interface_number)
106 testbed_instance.follow_trace(guid, trace_id, filename)
107 filepath = testbed_instance.trace_filename(guid, trace_id)
108 helper = testbed_instance.ns3.YansWifiPhyHelper()
109 helper.EnablePcap(filepath, element, explicitFilename = True)
111 trace_functions = dict({
112 "P2PPcapTrace": p2ppcap_trace,
113 "P2PAsciiTrace": p2pascii_trace,
114 "CsmaPcapTrace": csmapcap_trace,
115 "CsmaPcapPromiscTrace": csmapcap_promisc_trace,
116 "FileDescriptorPcapTrace": fdpcap_trace,
117 "YansWifiPhyPcapTrace": yanswifipcap_trace
120 ### Creation functions ###
122 wifi_standards = dict({
123 "WIFI_PHY_STANDARD_holland": 5,
124 "WIFI_PHY_STANDARD_80211p_SCH": 7,
125 "WIFI_PHY_STANDARD_80211_5Mhz": 4,
126 "WIFI_PHY_UNKNOWN": 8,
127 "WIFI_PHY_STANDARD_80211_10Mhz": 3,
128 "WIFI_PHY_STANDARD_80211g": 2,
129 "WIFI_PHY_STANDARD_80211p_CCH": 6,
130 "WIFI_PHY_STANDARD_80211a": 0,
131 "WIFI_PHY_STANDARD_80211b": 1
134 def create_element(testbed_instance, guid):
135 element_factory = testbed_instance.ns3.ObjectFactory()
136 factory_id = testbed_instance._create[guid]
137 element_factory.SetTypeId(factory_id)
138 construct_parameters = testbed_instance._get_construct_parameters(guid)
139 for name, value in construct_parameters.iteritems():
140 ns3_value = testbed_instance._to_ns3_value(guid, name, value)
141 element_factory.Set(name, ns3_value)
142 element = element_factory.Create()
143 testbed_instance._elements[guid] = element
145 def create_node(testbed_instance, guid):
146 create_element(testbed_instance, guid)
147 element = testbed_instance._elements[guid]
148 element.AggregateObject(testbed_instance.ns3.PacketSocketFactory())
150 def create_wifi_standard_model(testbed_instance, guid):
151 create_element(testbed_instance, guid)
152 element = testbed_instance._elements[guid]
153 parameters = testbed_instance._get_parameters(guid)
154 if "Standard" in parameters:
155 standard = parameters["Standard"]
157 element.ConfigureStandard(wifi_standards[standard])
159 def create_ipv4protocol(testbed_instance, guid):
160 create_element(testbed_instance, guid)
161 element = testbed_instance._elements[guid]
162 list_routing = testbed_instance.ns3.Ipv4ListRouting()
163 element.SetRoutingProtocol(list_routing)
164 static_routing = testbed_instance.ns3.Ipv4StaticRouting()
165 list_routing.AddRoutingProtocol(static_routing, 1)
168 ### Start/Stop functions ###
170 def start_application(testbed_instance, guid):
171 element = testbed_instance.elements[guid]
172 # BUG: without doing this explicit call it doesn't start!!!
173 # Shouldn't be enough to set the StartTime?
176 def stop_application(testbed_instance, guid):
177 element = testbed_instance.elements[guid]
178 now = testbed_instance.ns3.Simulator.Now()
179 element.SetStopTime(now)
182 ### Status functions ###
184 def status_application(testbed_instance, guid):
185 if guid not in testbed_instance.elements.keys():
186 raise RuntimeError("Can't get status on guid %d" % guid )
187 now = testbed_instance.ns3.Simulator.Now()
189 return STATUS_NOT_STARTED
190 app = testbed_instance.elements[guid]
191 parameters = testbed_instance._get_parameters(guid)
192 if "StartTime" in parameters and parameters["StartTime"]:
193 start_value = parameters["StartTime"]
194 start_time = testbed_instance.ns3.Time(start_value)
195 if now.Compare(start_time) < 0:
196 return STATUS_NOT_RUNNING
197 if "StopTime" in parameters and parameters["StopTime"]:
198 stop_value = parameters["StopTime"]
199 stop_time = testbed_instance.ns3.Time(stop_value)
200 if now.Compare(stop_time) < 0:
201 return STATUS_RUNNING
203 return STATUS_FINISHED
204 return STATUS_UNDETERMINED
206 ### Configure functions ###
208 def configure_traces(testbed_instance, guid):
209 traces = testbed_instance._get_traces(guid)
210 for trace_id in traces:
211 trace_func = trace_functions[trace_id]
212 trace_func(testbed_instance, guid, trace_id)
214 def configure_element(testbed_instance, guid):
215 configure_traces(testbed_instance, guid)
217 def configure_device(testbed_instance, guid):
218 configure_traces(testbed_instance, guid)
220 element = testbed_instance._elements[guid]
222 parameters = testbed_instance._get_parameters(guid)
223 if "macAddress" in parameters:
224 address = parameters["macAddress"]
225 macaddr = testbed_instance.ns3.Mac48Address(address)
227 macaddr = testbed_instance.ns3.Mac48Address.Allocate()
228 element.SetAddress(macaddr)
230 if not guid in testbed_instance._add_address:
232 # search for the node asociated with the device
233 node_guid = _get_node_guid(testbed_instance, guid)
234 node = testbed_instance.elements[node_guid]
235 # search for the Ipv4L3Protocol asociated with the device
236 ipv4_guid = _get_ipv4_protocol_guid(testbed_instance, node_guid)
237 ipv4 = testbed_instance._elements[ipv4_guid]
238 ns3 = testbed_instance.ns3
240 addresses = testbed_instance._add_address[guid]
241 for address in addresses:
242 (address, netprefix, broadcast) = address
243 # TODO: missing IPV6 addresses!!
244 ifindex = ipv4.AddInterface(element)
245 inaddr = ns3.Ipv4InterfaceAddress(ns3.Ipv4Address(address),
246 ns3.Ipv4Mask("/%d" % netprefix))
247 ipv4.AddAddress(ifindex, inaddr)
248 ipv4.SetMetric(ifindex, 1)
251 def _add_static_route(ns3, static_routing,
252 address, netprefix, nexthop_address, ifindex):
254 # Default route: 0.0.0.0/0
255 static_routing.SetDefaultRoute(nexthop_address, ifindex)
256 elif netprefix == 32:
257 # Host route: x.y.z.w/32
258 static_routing.AddHostRouteTo(address, nexthop_address, ifindex)
260 # Network route: x.y.z.w/n
261 mask = ns3.Ipv4Mask("/%d" % netprefix)
262 static_routing.AddNetworkRouteTo(address, mask, nexthop_address,
265 def _add_static_route_if(ns3, static_routing, address, netprefix, ifindex):
267 # Default route: 0.0.0.0/0
268 static_routing.SetDefaultRoute(ifindex)
269 elif netprefix == 32:
270 # Host route: x.y.z.w/32
271 static_routing.AddHostRouteTo(address, ifindex)
273 # Network route: x.y.z.w/n
274 mask = ns3.Ipv4Mask("/%d" % netprefix)
275 static_routing.AddNetworkRouteTo(address, mask, ifindex)
277 def configure_node(testbed_instance, guid):
278 configure_traces(testbed_instance, guid)
280 element = testbed_instance._elements[guid]
281 if not guid in testbed_instance._add_route:
283 # search for the Ipv4L3Protocol asociated with the device
284 ipv4_guid = _get_ipv4_protocol_guid(testbed_instance, guid)
285 ipv4 = testbed_instance._elements[ipv4_guid]
286 list_routing = ipv4.GetRoutingProtocol()
287 (static_routing, priority) = list_routing.GetRoutingProtocol(0)
288 ns3 = testbed_instance.ns3
289 routes = testbed_instance._add_route[guid]
291 (destination, netprefix, nexthop) = route
292 address = ns3.Ipv4Address(destination)
294 nexthop_address = ns3.Ipv4Address(nexthop)
296 # TODO: HACKISH way of getting the ifindex... improve this
297 nifaces = ipv4.GetNInterfaces()
298 for ifidx in range(nifaces):
299 iface = ipv4.GetInterface(ifidx)
300 naddress = iface.GetNAddresses()
301 for addridx in range(naddress):
302 ifaddr = iface.GetAddress(addridx)
303 ifmask = ifaddr.GetMask()
304 ifindex = ipv4.GetInterfaceForPrefix(nexthop_address, ifmask)
307 _add_static_route(ns3, static_routing,
308 address, netprefix, nexthop_address, ifindex)
310 mask = ns3.Ipv4Mask("/%d" % netprefix)
311 ifindex = ipv4.GetInterfaceForPrefix(address, mask)
312 _add_static_route_if(ns3, static_routing,
313 address, netprefix, nexthop_address, ifindex)
315 factories_info = dict({
317 "category": "Application",
318 "create_function": create_element,
319 "configure_function": configure_element,
321 "connector_types": [],
322 "stop_function": stop_application,
323 "start_function": start_application,
324 "status_function": status_application,
325 "box_attributes": ["MaxPackets",
333 "ns3::UdpL4Protocol": dict({
334 "category": "Protocol",
335 "create_function": create_element,
336 "configure_function": configure_element,
338 "connector_types": ["node"],
339 "box_attributes": ["ProtocolNumber"],
341 "ns3::RandomDiscPositionAllocator": dict({
342 "category": "Mobility",
343 "create_function": create_element,
344 "configure_function": configure_element,
346 "connector_types": [],
347 "box_attributes": ["Theta",
353 "category": "Topology",
354 "create_function": create_node,
355 "configure_function": configure_node,
357 "connector_types": ["devs", "apps", "protos", "mobility"],
358 "allow_routes": True,
359 "box_attributes": [],
361 "ns3::GridPositionAllocator": dict({
362 "category": "Mobility",
363 "create_function": create_element,
364 "configure_function": configure_element,
366 "connector_types": [],
367 "box_attributes": ["GridWidth",
374 "ns3::TapBridge": dict({
375 "category": "Device",
376 "create_function": create_element,
377 "configure_function": configure_element,
379 "connector_types": [],
380 "allow_addresses": True,
381 "box_attributes": ["Mtu",
390 "ns3::FlowMonitor": dict({
392 "create_function": create_element,
393 "configure_function": configure_element,
395 "connector_types": [],
396 "box_attributes": ["MaxPerHopDelay",
399 "PacketSizeBinWidth",
400 "FlowInterruptionsBinWidth",
401 "FlowInterruptionsMinTime"],
403 "ns3::ConstantVelocityMobilityModel": dict({
404 "category": "Mobility",
405 "create_function": create_element,
406 "configure_function": configure_element,
408 "connector_types": ["node"],
409 "box_attributes": ["Position",
412 "ns3::V4Ping": dict({
413 "category": "Application",
414 "create_function": create_element,
415 "configure_function": configure_element,
417 "connector_types": ["node"],
418 "stop_function": stop_application,
419 "start_function": start_application,
420 "status_function": status_application,
421 "box_attributes": ["Remote",
428 "ns3::dot11s::PeerLink": dict({
430 "create_function": create_element,
431 "configure_function": configure_element,
433 "connector_types": [],
434 "box_attributes": ["RetryTimeout",
441 "ns3::PointToPointNetDevice": dict({
442 "category": "Device",
443 "create_function": create_element,
444 "configure_function": configure_device,
446 "connector_types": ["node", "err", "queue", "chan"],
447 "allow_addresses": True,
448 "box_attributes": ["Mtu",
452 "traces": ["p2ppcap", "p2pascii"]
454 "ns3::NakagamiPropagationLossModel": dict({
456 "create_function": create_element,
457 "configure_function": configure_element,
459 "connector_types": [],
460 "box_attributes": ["Distance1",
466 "ns3::AarfWifiManager": dict({
467 "category": "Manager",
468 "create_function": create_element,
469 "configure_function": configure_element,
471 "connector_types": [],
472 "box_attributes": ["SuccessK",
474 "MaxSuccessThreshold",
476 "MinSuccessThreshold",
481 "FragmentationThreshold",
484 "ns3::Ipv6OptionJumbogram": dict({
486 "create_function": create_element,
487 "configure_function": configure_element,
489 "connector_types": [],
490 "box_attributes": ["OptionNumber"],
492 "ns3::TwoRayGroundPropagationLossModel": dict({
494 "create_function": create_element,
495 "configure_function": configure_element,
497 "connector_types": [],
498 "box_attributes": ["Lambda",
503 "ns3::OnOffApplication": dict({
504 "category": "Application",
505 "create_function": create_element,
506 "configure_function": configure_element,
508 "connector_types": ["node"],
509 "stop_function": stop_application,
510 "start_function": start_application,
511 "status_function": status_application,
512 "box_attributes": ["DataRate",
522 "ns3::AdhocWifiMac": dict({
524 "create_function": create_element,
525 "configure_function": configure_element,
527 "connector_types": [],
528 "box_attributes": ["CtsTimeout",
530 "BasicBlockAckTimeout",
531 "CompressedBlockAckTimeout",
536 "MaxPropagationDelay",
539 "ns3::ConstantAccelerationMobilityModel": dict({
540 "category": "Mobility",
541 "create_function": create_element,
542 "configure_function": configure_element,
544 "connector_types": ["node"],
545 "box_attributes": ["Position",
548 "ns3::GaussMarkovMobilityModel": dict({
549 "category": "Mobility",
550 "create_function": create_element,
551 "configure_function": configure_element,
553 "connector_types": [],
554 "box_attributes": ["Bounds",
566 "ns3::dot11s::HwmpProtocol": dict({
567 "category": "Protocol",
568 "create_function": create_element,
569 "configure_function": configure_element,
571 "connector_types": [],
572 "box_attributes": ["RandomStart",
574 "Dot11MeshHWMPmaxPREQretries",
575 "Dot11MeshHWMPnetDiameterTraversalTime",
576 "Dot11MeshHWMPpreqMinInterval",
577 "Dot11MeshHWMPperrMinInterval",
578 "Dot11MeshHWMPactiveRootTimeout",
579 "Dot11MeshHWMPactivePathTimeout",
580 "Dot11MeshHWMPpathToRootInterval",
581 "Dot11MeshHWMPrannInterval",
583 "UnicastPerrThreshold",
584 "UnicastPreqThreshold",
585 "UnicastDataThreshold",
589 "ns3::NscTcpL4Protocol": dict({
590 "category": "Protocol",
591 "create_function": create_element,
592 "configure_function": configure_element,
594 "connector_types": [],
595 "box_attributes": ["Library",
598 "ns3::dot11s::AirtimeLinkMetricCalculator": dict({
600 "create_function": create_element,
601 "configure_function": configure_element,
603 "connector_types": [],
604 "box_attributes": ["Dot11sMeshHeaderLength"],
606 "ns3::UanMacCw": dict({
608 "create_function": create_element,
609 "configure_function": configure_element,
611 "connector_types": [],
612 "box_attributes": ["CW",
615 "ns3::AthstatsWifiTraceSink": dict({
617 "create_function": create_element,
618 "configure_function": configure_element,
620 "connector_types": [],
621 "box_attributes": ["Interval"],
623 "ns3::FlameStack": dict({
625 "create_function": create_element,
626 "configure_function": configure_element,
628 "connector_types": [],
629 "box_attributes": [],
631 "ns3::UanMacRc": dict({
633 "create_function": create_element,
634 "configure_function": configure_element,
636 "connector_types": [],
637 "box_attributes": ["RetryRate",
644 "NumberOfRetryRates",
647 "ns3::WaypointMobilityModel": dict({
648 "category": "Mobility",
649 "create_function": create_element,
650 "configure_function": configure_element,
652 "connector_types": [],
653 "box_attributes": ["WaypointsLeft",
657 "ns3::FileDescriptorNetDevice": dict({
658 "category": "Device",
659 "create_function": create_element,
660 "configure_function": configure_device,
661 "help": "Network interface associated to a file descriptor",
662 "connector_types": ["node", "->fd"],
663 "allow_addresses": True,
664 "box_attributes": ["Address",
665 "LinuxSocketAddress",
666 "tun_proto", "tun_addr", "tun_port", "tun_key"],
669 "ns3::Nepi::TunChannel": dict({
670 "category": "Channel",
671 "create_function": create_tunchannel,
672 "preconfigure_function": preconfigure_tunchannel,
673 "configure_function": postconfigure_tunchannel,
674 "start_function": wait_tunchannel,
675 "help": "Channel to forward FileDescriptorNetDevice data to "
676 "other TAP interfaces supporting the NEPI tunneling protocol.",
677 "connector_types": ["fd->", "udp", "tcp"],
678 "allow_addresses": False,
679 "box_attributes": ["tun_proto", "tun_addr", "tun_port", "tun_key"]
681 "ns3::CsmaNetDevice": dict({
682 "category": "Device",
683 "create_function": create_element,
684 "configure_function": configure_device,
685 "help": "CSMA (carrier sense, multiple access) interface",
686 "connector_types": ["node", "chan", "err", "queue"],
687 "allow_addresses": True,
688 "box_attributes": ["Address",
692 "traces": ["csmapcap", "csmapcap_promisc"]
694 "ns3::UanPropModelThorp": dict({
696 "create_function": create_element,
697 "configure_function": configure_element,
699 "connector_types": [],
700 "box_attributes": ["SpreadCoef"],
702 "ns3::NqstaWifiMac": dict({
704 "create_function": create_element,
705 "configure_function": configure_element,
707 "connector_types": [],
708 "box_attributes": ["ProbeRequestTimeout",
709 "AssocRequestTimeout",
713 "BasicBlockAckTimeout",
714 "CompressedBlockAckTimeout",
719 "MaxPropagationDelay",
722 "ns3::Icmpv6L4Protocol": dict({
723 "category": "Protocol",
724 "create_function": create_element,
725 "configure_function": configure_element,
727 "connector_types": ["node"],
728 "box_attributes": ["DAD",
731 "ns3::SimpleNetDevice": dict({
732 "category": "Device",
733 "create_function": create_element,
734 "configure_function": configure_element,
736 "connector_types": ["node", "chan"],
737 "allow_addresses": True,
738 "box_attributes": [],
740 "ns3::FriisPropagationLossModel": dict({
742 "create_function": create_element,
743 "configure_function": configure_element,
745 "connector_types": [],
746 "box_attributes": ["Lambda",
750 "ns3::Ipv6OptionRouterAlert": dict({
752 "create_function": create_element,
753 "configure_function": configure_element,
755 "connector_types": [],
756 "box_attributes": ["OptionNumber"],
758 "ns3::UniformDiscPositionAllocator": dict({
759 "category": "Mobility",
760 "create_function": create_element,
761 "configure_function": configure_element,
763 "connector_types": [],
764 "box_attributes": ["rho",
768 "ns3::RandomBoxPositionAllocator": dict({
769 "category": "Mobility",
770 "create_function": create_element,
771 "configure_function": configure_element,
773 "connector_types": [],
774 "box_attributes": ["X",
778 "ns3::Ipv6ExtensionDestination": dict({
780 "create_function": create_element,
781 "configure_function": configure_element,
783 "connector_types": [],
784 "box_attributes": ["ExtensionNumber"],
786 "ns3::LoopbackNetDevice": dict({
787 "category": "Device",
788 "create_function": create_element,
789 "configure_function": configure_element,
791 "connector_types": [],
792 "box_attributes": [],
794 "ns3::ConstantSpeedPropagationDelayModel": dict({
796 "create_function": create_element,
797 "configure_function": configure_element,
799 "connector_types": ["chan"],
800 "box_attributes": ["Speed"],
802 "ns3::Ipv6ExtensionHopByHop": dict({
804 "create_function": create_element,
805 "configure_function": configure_element,
807 "connector_types": [],
808 "box_attributes": ["ExtensionNumber"],
810 "ns3::BridgeChannel": dict({
811 "category": "Channel",
812 "create_function": create_element,
813 "configure_function": configure_element,
815 "connector_types": [],
816 "box_attributes": [],
820 "create_function": create_element,
821 "configure_function": configure_element,
823 "connector_types": [],
824 "box_attributes": ["StartTime",
827 "ns3::PacketSocket": dict({
829 "create_function": create_element,
830 "configure_function": configure_element,
832 "connector_types": [],
833 "box_attributes": ["RcvBufSize"],
835 "ns3::flame::FlameProtocol": dict({
836 "category": "Protocol",
837 "create_function": create_element,
838 "configure_function": configure_element,
840 "connector_types": [],
841 "box_attributes": ["BroadcastInterval",
844 "ns3::Cost231PropagationLossModel": dict({
846 "create_function": create_element,
847 "configure_function": configure_element,
849 "connector_types": [],
850 "box_attributes": ["Lambda",
856 "ns3::Ipv6ExtensionESP": dict({
858 "create_function": create_element,
859 "configure_function": configure_element,
861 "connector_types": [],
862 "box_attributes": ["ExtensionNumber"],
864 "ns3::CaraWifiManager": dict({
865 "category": "Manager",
866 "create_function": create_element,
867 "configure_function": configure_element,
869 "connector_types": [],
870 "box_attributes": ["ProbeThreshold",
878 "FragmentationThreshold",
882 "ns3::RttMeanDeviation": dict({
884 "create_function": create_element,
885 "configure_function": configure_element,
887 "connector_types": [],
888 "box_attributes": ["Gain",
893 "ns3::Icmpv4L4Protocol": dict({
894 "category": "Protocol",
895 "create_function": create_element,
896 "configure_function": configure_element,
898 "connector_types": ["node"],
899 "box_attributes": ["ProtocolNumber"],
901 "ns3::WaveformGenerator": dict({
903 "create_function": create_element,
904 "configure_function": configure_element,
906 "connector_types": [],
907 "box_attributes": ["Period",
910 "ns3::YansWifiChannel": dict({
911 "category": "Channel",
912 "create_function": create_element,
913 "configure_function": configure_element,
915 "connector_types": ["phys", "delay", "loss"],
916 "box_attributes": [],
918 "ns3::SimpleChannel": dict({
919 "category": "Channel",
920 "create_function": create_element,
921 "configure_function": configure_element,
923 "connector_types": ["devs"],
924 "box_attributes": [],
926 "ns3::Ipv6ExtensionFragment": dict({
928 "create_function": create_element,
929 "configure_function": configure_element,
931 "connector_types": [],
932 "box_attributes": ["ExtensionNumber"],
934 "ns3::Dot11sStack": dict({
936 "create_function": create_element,
937 "configure_function": configure_element,
939 "connector_types": [],
940 "box_attributes": ["Root"],
942 "ns3::FriisSpectrumPropagationLossModel": dict({
944 "create_function": create_element,
945 "configure_function": configure_element,
947 "connector_types": [],
948 "box_attributes": [],
950 "ns3::RandomRectanglePositionAllocator": dict({
951 "category": "Mobility",
952 "create_function": create_element,
953 "configure_function": configure_element,
955 "connector_types": [],
956 "box_attributes": ["X",
959 "ns3::NqapWifiMac": dict({
961 "create_function": create_element,
962 "configure_function": configure_element,
964 "connector_types": [],
965 "box_attributes": ["BeaconInterval",
969 "BasicBlockAckTimeout",
970 "CompressedBlockAckTimeout",
975 "MaxPropagationDelay",
978 "ns3::HierarchicalMobilityModel": dict({
979 "category": "Mobility",
980 "create_function": create_element,
981 "configure_function": configure_element,
983 "connector_types": ["node"],
984 "box_attributes": ["Position",
987 "ns3::ThreeLogDistancePropagationLossModel": dict({
989 "create_function": create_element,
990 "configure_function": configure_element,
992 "connector_types": [],
993 "box_attributes": ["Distance0",
1001 "ns3::UanNoiseModelDefault": dict({
1003 "create_function": create_element,
1004 "configure_function": configure_element,
1006 "connector_types": [],
1007 "box_attributes": ["Wind",
1010 "ns3::dot11s::HwmpRtable": dict({
1012 "create_function": create_element,
1013 "configure_function": configure_element,
1015 "connector_types": [],
1016 "box_attributes": [],
1018 "ns3::PacketBurst": dict({
1020 "create_function": create_element,
1021 "configure_function": configure_element,
1023 "connector_types": [],
1024 "box_attributes": [],
1026 "ns3::RandomPropagationDelayModel": dict({
1027 "category": "Delay",
1028 "create_function": create_element,
1029 "configure_function": configure_element,
1031 "connector_types": [],
1032 "box_attributes": ["Variable"],
1034 "ns3::ArpL3Protocol": dict({
1035 "category": "Protocol",
1036 "create_function": create_element,
1037 "configure_function": configure_element,
1039 "connector_types": ["node"],
1040 "box_attributes": [],
1042 "ns3::SteadyStateRandomWaypointMobilityModel": dict({
1043 "category": "Mobility",
1044 "create_function": create_element,
1045 "configure_function": configure_element,
1047 "connector_types": [],
1048 "box_attributes": ["MinSpeed",
1059 "ns3::BaseStationNetDevice": dict({
1060 "category": "Device",
1061 "create_function": create_element,
1062 "configure_function": configure_device,
1064 "connector_types": [],
1065 "allow_addresses": True,
1066 "box_attributes": ["InitialRangInterval",
1072 "MaxRangCorrectionRetries",
1077 "ns3::UdpServer": dict({
1078 "category": "Application",
1079 "create_function": create_element,
1080 "configure_function": configure_element,
1082 "connector_types": [],
1083 "stop_function": stop_application,
1084 "start_function": start_application,
1085 "status_function": status_application,
1086 "box_attributes": ["Port",
1091 "ns3::AarfcdWifiManager": dict({
1092 "category": "Manager",
1093 "create_function": create_element,
1094 "configure_function": configure_element,
1096 "connector_types": [],
1097 "box_attributes": ["SuccessK",
1099 "MaxSuccessThreshold",
1100 "MinTimerThreshold",
1101 "MinSuccessThreshold",
1104 "TurnOffRtsAfterRateDecrease",
1105 "TurnOnRtsAfterRateIncrease",
1110 "FragmentationThreshold",
1113 "ns3::UanTransducerHd": dict({
1115 "create_function": create_element,
1116 "configure_function": configure_element,
1118 "connector_types": [],
1119 "box_attributes": [],
1121 "ns3::LogDistancePropagationLossModel": dict({
1123 "create_function": create_element,
1124 "configure_function": configure_element,
1126 "connector_types": ["prev", "next"],
1127 "box_attributes": ["Exponent",
1128 "ReferenceDistance",
1131 "ns3::EmuNetDevice": dict({
1132 "category": "Device",
1133 "create_function": create_element,
1134 "configure_function": configure_element,
1136 "connector_types": ["node", "queue"],
1137 "box_attributes": ["Mtu",
1144 "ns3::Ipv6ExtensionLooseRouting": dict({
1146 "create_function": create_element,
1147 "configure_function": configure_element,
1149 "connector_types": [],
1150 "box_attributes": ["ExtensionNumber"],
1152 "ns3::RandomWaypointMobilityModel": dict({
1153 "category": "Mobility",
1154 "create_function": create_element,
1155 "configure_function": configure_element,
1157 "connector_types": ["node"],
1158 "box_attributes": ["Speed",
1163 "ns3::RangePropagationLossModel": dict({
1165 "create_function": create_element,
1166 "configure_function": configure_element,
1168 "connector_types": [],
1169 "box_attributes": ["MaxRange"],
1171 "ns3::AlohaNoackNetDevice": dict({
1172 "category": "Device",
1173 "create_function": create_element,
1174 "configure_function": configure_element,
1176 "connector_types": [],
1177 "box_attributes": ["Address",
1180 "ns3::MatrixPropagationLossModel": dict({
1182 "create_function": create_element,
1183 "configure_function": configure_element,
1185 "connector_types": [],
1186 "box_attributes": ["DefaultLoss"],
1188 "ns3::WifiNetDevice": dict({
1189 "category": "Device",
1190 "create_function": create_element,
1191 "configure_function": configure_device,
1193 "connector_types": ["node", "mac", "phy", "manager"],
1194 "allow_addresses": True,
1195 "box_attributes": ["Mtu"],
1197 "ns3::CsmaChannel": dict({
1198 "category": "Channel",
1199 "create_function": create_element,
1200 "configure_function": configure_element,
1202 "connector_types": ["devs"],
1203 "box_attributes": ["DataRate",
1206 "ns3::BridgeNetDevice": dict({
1207 "category": "Device",
1208 "create_function": create_element,
1209 "configure_function": configure_element,
1211 "connector_types": ["node"],
1212 "allow_addresses": True,
1213 "box_attributes": ["Mtu",
1217 "ns3::Ipv6ExtensionRouting": dict({
1219 "create_function": create_element,
1220 "configure_function": configure_element,
1222 "connector_types": [],
1223 "box_attributes": ["ExtensionNumber"],
1225 "ns3::QstaWifiMac": dict({
1227 "create_function": create_wifi_standard_model,
1228 "configure_function": configure_element,
1229 "help": "Station Wifi MAC Model",
1230 "connector_types": ["dev"],
1231 "box_attributes": ["ProbeRequestTimeout",
1232 "AssocRequestTimeout",
1236 "BasicBlockAckTimeout",
1237 "CompressedBlockAckTimeout",
1242 "MaxPropagationDelay",
1246 "ns3::UdpEchoClient": dict({
1247 "category": "Application",
1248 "create_function": create_element,
1249 "configure_function": configure_element,
1251 "connector_types": ["node"],
1252 "stop_function": stop_application,
1253 "start_function": start_application,
1254 "status_function": status_application,
1255 "box_attributes": ["MaxPackets",
1263 "ns3::UdpClient": dict({
1264 "category": "Application",
1265 "create_function": create_element,
1266 "configure_function": configure_element,
1268 "connector_types": [],
1269 "stop_function": stop_application,
1270 "start_function": start_application,
1271 "status_function": status_application,
1272 "box_attributes": ["MaxPackets",
1280 "ns3::PointToPointChannel": dict({
1281 "category": "Channel",
1282 "create_function": create_element,
1283 "configure_function": configure_element,
1285 "connector_types": ["dev2"],
1286 "box_attributes": ["Delay"],
1288 "ns3::Ipv6StaticRouting": dict({
1290 "create_function": create_element,
1291 "configure_function": configure_element,
1293 "connector_types": [],
1294 "box_attributes": [],
1296 "ns3::DropTailQueue": dict({
1297 "category": "Device",
1298 "create_function": create_element,
1299 "configure_function": configure_element,
1301 "connector_types": ["dev"],
1302 "box_attributes": ["MaxPackets",
1305 "ns3::ConstantPositionMobilityModel": dict({
1306 "category": "Mobility",
1307 "create_function": create_element,
1308 "configure_function": configure_element,
1310 "connector_types": ["node"],
1311 "box_attributes": ["Position",
1314 "ns3::FixedRssLossModel": dict({
1316 "create_function": create_element,
1317 "configure_function": configure_element,
1319 "connector_types": [],
1320 "box_attributes": ["Rss"],
1322 "ns3::EnergySourceContainer": dict({
1324 "create_function": create_element,
1325 "configure_function": configure_element,
1327 "connector_types": [],
1328 "box_attributes": [],
1330 "ns3::RandomWalk2dMobilityModel": dict({
1331 "category": "Mobility",
1332 "create_function": create_element,
1333 "configure_function": configure_element,
1335 "connector_types": ["node"],
1336 "box_attributes": ["Bounds",
1345 "ns3::ListPositionAllocator": dict({
1347 "create_function": create_element,
1348 "configure_function": configure_element,
1350 "connector_types": [],
1351 "box_attributes": [],
1353 "ns3::dot11s::PeerManagementProtocol": dict({
1354 "category": "Protocol",
1355 "create_function": create_element,
1356 "configure_function": configure_element,
1358 "connector_types": [],
1359 "box_attributes": ["MaxNumberOfPeerLinks",
1360 "MaxBeaconShiftValue",
1361 "EnableBeaconCollisionAvoidance"],
1363 "ns3::MeshPointDevice": dict({
1364 "category": "Device",
1365 "create_function": create_element,
1366 "configure_function": configure_element,
1368 "connector_types": [],
1369 "allow_addresses": True,
1370 "box_attributes": ["Mtu"],
1372 "ns3::BasicEnergySource": dict({
1374 "create_function": create_element,
1375 "configure_function": configure_element,
1377 "connector_types": [],
1378 "box_attributes": ["BasicEnergySourceInitialEnergyJ",
1379 "BasicEnergySupplyVoltageV",
1380 "PeriodicEnergyUpdateInterval"],
1382 "ns3::Ipv6OptionPadn": dict({
1384 "create_function": create_element,
1385 "configure_function": configure_element,
1387 "connector_types": [],
1388 "box_attributes": ["OptionNumber"],
1390 "ns3::QapWifiMac": dict({
1392 "create_function": create_wifi_standard_model,
1393 "configure_function": configure_element,
1394 "help": "Access point Wifi MAC Model",
1395 "connector_types": ["dev"],
1396 "box_attributes": ["BeaconInterval",
1400 "BasicBlockAckTimeout",
1401 "CompressedBlockAckTimeout",
1406 "MaxPropagationDelay",
1410 "ns3::YansErrorRateModel": dict({
1411 "category": "Error",
1412 "create_function": create_element,
1413 "configure_function": configure_element,
1415 "connector_types": [],
1416 "box_attributes": [],
1418 "ns3::WifiMacQueue": dict({
1420 "create_function": create_element,
1421 "configure_function": configure_element,
1423 "connector_types": [],
1424 "box_attributes": ["MaxPacketNumber",
1427 "ns3::NonCommunicatingNetDevice": dict({
1428 "category": "Device",
1429 "create_function": create_element,
1430 "configure_function": configure_element,
1432 "connector_types": [],
1433 "allow_addresses": True,
1434 "box_attributes": [],
1436 "ns3::RateErrorModel": dict({
1437 "category": "Error",
1438 "create_function": create_element,
1439 "configure_function": configure_element,
1441 "connector_types": [],
1442 "box_attributes": ["ErrorUnit",
1447 "ns3::MeshWifiInterfaceMac": dict({
1449 "create_function": create_element,
1450 "configure_function": configure_element,
1452 "connector_types": [],
1453 "box_attributes": ["BeaconInterval",
1458 "BasicBlockAckTimeout",
1459 "CompressedBlockAckTimeout",
1464 "MaxPropagationDelay",
1467 "ns3::UanPhyCalcSinrDual": dict({
1469 "create_function": create_element,
1470 "configure_function": configure_element,
1472 "connector_types": [],
1473 "box_attributes": [],
1475 "ns3::Ipv6ExtensionAH": dict({
1477 "create_function": create_element,
1478 "configure_function": configure_element,
1480 "connector_types": [],
1481 "box_attributes": ["ExtensionNumber"],
1483 "ns3::SingleModelSpectrumChannel": dict({
1484 "category": "Channel",
1485 "create_function": create_element,
1486 "configure_function": configure_element,
1488 "connector_types": [],
1489 "box_attributes": [],
1491 "ns3::YansWifiPhy": dict({
1493 "create_function": create_wifi_standard_model,
1494 "configure_function": configure_element,
1496 "connector_types": ["dev", "err", "chan"],
1497 "box_attributes": ["EnergyDetectionThreshold",
1498 "CcaMode1Threshold",
1505 "ChannelSwitchDelay",
1508 "traces": ["yanswifipcap"]
1510 "ns3::WifiRadioEnergyModel": dict({
1512 "create_function": create_element,
1513 "configure_function": configure_element,
1515 "connector_types": [],
1516 "box_attributes": ["TxCurrentA",
1521 "ns3::EdcaTxopN": dict({
1523 "create_function": create_element,
1524 "configure_function": configure_element,
1526 "connector_types": [],
1527 "box_attributes": ["BlockAckThreshold",
1532 "ns3::UanPhyPerGenDefault": dict({
1534 "create_function": create_element,
1535 "configure_function": configure_element,
1537 "connector_types": [],
1538 "box_attributes": ["Threshold"],
1540 "ns3::IdealWifiManager": dict({
1541 "category": "Manager",
1542 "create_function": create_element,
1543 "configure_function": configure_element,
1545 "connector_types": [],
1546 "box_attributes": ["BerThreshold",
1551 "FragmentationThreshold",
1554 "ns3::MultiModelSpectrumChannel": dict({
1555 "category": "Channel",
1556 "create_function": create_element,
1557 "configure_function": configure_element,
1559 "connector_types": [],
1560 "box_attributes": [],
1562 "ns3::HalfDuplexIdealPhy": dict({
1564 "create_function": create_element,
1565 "configure_function": configure_element,
1567 "connector_types": [],
1568 "box_attributes": ["Rate"],
1570 "ns3::UanPhyCalcSinrDefault": dict({
1572 "create_function": create_element,
1573 "configure_function": configure_element,
1575 "connector_types": [],
1576 "box_attributes": [],
1578 "ns3::ReceiveListErrorModel": dict({
1579 "category": "Error",
1580 "create_function": create_element,
1581 "configure_function": configure_element,
1583 "connector_types": [],
1584 "box_attributes": ["IsEnabled"],
1586 "ns3::SpectrumAnalyzer": dict({
1588 "create_function": create_element,
1589 "configure_function": configure_element,
1591 "connector_types": [],
1592 "box_attributes": ["Resolution",
1593 "NoisePowerSpectralDensity"],
1595 "ns3::ConstantRateWifiManager": dict({
1596 "category": "Manager",
1597 "create_function": create_element,
1598 "configure_function": configure_element,
1600 "connector_types": ["dev"],
1601 "box_attributes": ["DataMode",
1607 "FragmentationThreshold",
1610 "ns3::Ipv6OptionPad1": dict({
1612 "create_function": create_element,
1613 "configure_function": configure_element,
1615 "connector_types": [],
1616 "box_attributes": ["OptionNumber"],
1618 "ns3::UdpTraceClient": dict({
1620 "create_function": create_element,
1621 "configure_function": configure_element,
1623 "connector_types": [],
1624 "box_attributes": ["RemoteAddress",
1630 "ns3::RraaWifiManager": dict({
1631 "category": "Manager",
1632 "create_function": create_element,
1633 "configure_function": configure_element,
1635 "connector_types": [],
1636 "box_attributes": ["Basic",
1664 "FragmentationThreshold",
1667 "ns3::RandomPropagationLossModel": dict({
1669 "create_function": create_element,
1670 "configure_function": configure_element,
1672 "connector_types": [],
1673 "box_attributes": ["Variable"],
1675 "ns3::UanChannel": dict({
1676 "category": "Channel",
1677 "create_function": create_element,
1678 "configure_function": configure_element,
1680 "connector_types": [],
1681 "box_attributes": [],
1683 "ns3::MinstrelWifiManager": dict({
1684 "category": "Manager",
1685 "create_function": create_element,
1686 "configure_function": configure_element,
1688 "connector_types": [],
1689 "box_attributes": ["UpdateStatistics",
1699 "FragmentationThreshold",
1702 "ns3::UanPhyDual": dict({
1704 "create_function": create_element,
1705 "configure_function": configure_element,
1707 "connector_types": [],
1708 "box_attributes": ["CcaThresholdPhy1",
1714 "SupportedModesPhy1",
1715 "SupportedModesPhy2"],
1717 "ns3::ListErrorModel": dict({
1718 "category": "Error",
1719 "create_function": create_element,
1720 "configure_function": configure_element,
1722 "connector_types": ["dev"],
1723 "box_attributes": ["IsEnabled"],
1725 "ns3::VirtualNetDevice": dict({
1726 "category": "Device",
1727 "create_function": create_element,
1728 "configure_function": configure_element,
1730 "connector_types": [],
1731 "allow_addresses": True,
1732 "box_attributes": ["Mtu"],
1734 "ns3::UanPhyGen": dict({
1736 "create_function": create_element,
1737 "configure_function": configure_element,
1739 "connector_types": [],
1740 "box_attributes": ["CcaThreshold",
1746 "ns3::Ipv6L3Protocol": dict({
1747 "category": "Protocol",
1748 "create_function": create_element,
1749 "configure_function": configure_element,
1751 "connector_types": ["node"],
1752 "box_attributes": ["DefaultTtl",
1755 "ns3::PointToPointRemoteChannel": dict({
1756 "category": "Channel",
1757 "create_function": create_element,
1758 "configure_function": configure_element,
1760 "connector_types": [],
1761 "box_attributes": ["Delay"],
1763 "ns3::UanPhyPerUmodem": dict({
1765 "create_function": create_element,
1766 "configure_function": configure_element,
1768 "connector_types": [],
1769 "box_attributes": [],
1771 "ns3::OnoeWifiManager": dict({
1772 "category": "Manager",
1773 "create_function": create_element,
1774 "configure_function": configure_element,
1776 "connector_types": [],
1777 "box_attributes": ["UpdatePeriod",
1779 "AddCreditThreshold",
1784 "FragmentationThreshold",
1787 "ns3::QadhocWifiMac": dict({
1789 "create_function": create_element,
1790 "configure_function": configure_element,
1792 "connector_types": [],
1793 "box_attributes": ["CtsTimeout",
1795 "BasicBlockAckTimeout",
1796 "CompressedBlockAckTimeout",
1801 "MaxPropagationDelay",
1804 "ns3::JakesPropagationLossModel": dict({
1806 "create_function": create_element,
1807 "configure_function": configure_element,
1809 "connector_types": [],
1810 "box_attributes": ["NumberOfRaysPerPath",
1811 "NumberOfOscillatorsPerRay",
1815 "ns3::PacketSink": dict({
1816 "category": "Application",
1817 "create_function": create_element,
1818 "configure_function": configure_element,
1820 "connector_types": ["node"],
1821 "stop_function": stop_application,
1822 "start_function": start_application,
1823 "status_function": status_application,
1824 "box_attributes": ["Local",
1829 "ns3::RandomDirection2dMobilityModel": dict({
1830 "category": "Mobility",
1831 "create_function": create_element,
1832 "configure_function": configure_element,
1834 "connector_types": ["node"],
1835 "box_attributes": ["Bounds",
1841 "ns3::UanMacAloha": dict({
1843 "create_function": create_element,
1844 "configure_function": configure_element,
1846 "connector_types": [],
1847 "box_attributes": [],
1849 "ns3::MsduStandardAggregator": dict({
1851 "create_function": create_element,
1852 "configure_function": configure_element,
1854 "connector_types": [],
1855 "box_attributes": ["MaxAmsduSize"],
1857 "ns3::DcaTxop": dict({
1859 "create_function": create_element,
1860 "configure_function": configure_element,
1862 "connector_types": [],
1863 "box_attributes": ["MinCw",
1867 "ns3::UanPhyCalcSinrFhFsk": dict({
1869 "create_function": create_element,
1870 "configure_function": configure_element,
1872 "connector_types": [],
1873 "box_attributes": ["NumberOfHops"],
1875 "ns3::UanPropModelIdeal": dict({
1877 "create_function": create_element,
1878 "configure_function": configure_element,
1880 "connector_types": [],
1881 "box_attributes": [],
1883 "ns3::UanMacRcGw": dict({
1885 "create_function": create_element,
1886 "configure_function": configure_element,
1888 "connector_types": [],
1889 "box_attributes": ["MaxReservations",
1897 "NumberOfRetryRates",
1902 "ns3::NistErrorRateModel": dict({
1903 "category": "Error",
1904 "create_function": create_element,
1905 "configure_function": configure_element,
1907 "connector_types": ["phy"],
1908 "box_attributes": [],
1910 "ns3::Ipv4L3Protocol": dict({
1911 "category": "Protocol",
1912 "create_function": create_ipv4protocol,
1913 "configure_function": configure_element,
1915 "connector_types": ["node"],
1916 "box_attributes": ["DefaultTtl",
1920 "ns3::aodv::RoutingProtocol": dict({
1921 "category": "Protocol",
1922 "create_function": create_element,
1923 "configure_function": configure_element,
1925 "connector_types": [],
1926 "box_attributes": ["HelloInterval",
1929 "NodeTraversalTime",
1931 "ActiveRouteTimeout",
1938 "PathDiscoveryTime",
1947 "ns3::TcpL4Protocol": dict({
1948 "category": "Protocol",
1949 "create_function": create_element,
1950 "configure_function": configure_element,
1952 "connector_types": ["node"],
1953 "box_attributes": ["RttEstimatorFactory",
1956 "ns3::olsr::RoutingProtocol": dict({
1957 "category": "Protocol",
1958 "create_function": create_element,
1959 "configure_function": configure_element,
1961 "connector_types": [],
1962 "box_attributes": ["HelloInterval",
1968 "ns3::UdpEchoServer": dict({
1969 "category": "Application",
1970 "create_function": create_element,
1971 "configure_function": configure_element,
1973 "connector_types": ["node"],
1974 "stop_function": stop_application,
1975 "start_function": start_application,
1976 "status_function": status_application,
1977 "box_attributes": ["Port",
1981 "ns3::AmrrWifiManager": dict({
1982 "category": "Manager",
1983 "create_function": create_element,
1984 "configure_function": configure_element,
1986 "connector_types": [],
1987 "box_attributes": ["UpdatePeriod",
1990 "MaxSuccessThreshold",
1991 "MinSuccessThreshold",
1996 "FragmentationThreshold",
1999 "ns3::ArfWifiManager": dict({
2000 "category": "Manager",
2001 "create_function": create_element,
2002 "configure_function": configure_element,
2004 "connector_types": ["dev"],
2005 "box_attributes": ["TimerThreshold",
2011 "FragmentationThreshold",
2014 "ns3::SubscriberStationNetDevice": dict({
2015 "category": "Device",
2016 "create_function": create_element,
2017 "configure_function": configure_element,
2019 "connector_types": [],
2020 "allow_addresses": True,
2021 "box_attributes": ["LostDlMapInterval",
2022 "LostUlMapInterval",
2032 "MaxContentionRangingRetries",
2037 "ns3::flame::FlameRtable": dict({
2039 "create_function": create_element,
2040 "configure_function": configure_element,
2042 "connector_types": [],
2043 "box_attributes": ["Lifetime"],