2 # -*- coding: utf-8 -*-
4 from nepi.util.constants import AF_INET, STATUS_NOT_STARTED, STATUS_RUNNING, \
5 STATUS_FINISHED, STATUS_UNDETERMINED
7 def _get_ipv4_protocol_guid(testbed_instance, node_guid):
8 # search for the Ipv4L3Protocol asociated with the device
9 protos_guids = testbed_instance.get_connected(node_guid, "protos", "node")
10 if len(protos_guids) == 0:
11 raise RuntimeError("No protocols where found for the node %d" % node_guid)
13 for proto_guid in protos_guids:
14 proto_factory_id = testbed_instance._create[proto_guid]
15 if proto_factory_id == "ns3::Ipv4L3Protocol":
16 ipv4_guid = proto_guid
19 raise RuntimeError("No Ipv4L3Protocol associated to node %d. \
20 can't add Ipv4 addresses" % node_guid)
23 def _get_node_guid(testbed_instance, guid):
24 # search for the node asociated with the device
25 node_guids = testbed_instance.get_connected(guid, "node", "devs")
26 if len(node_guids) == 0:
27 raise RuntimeError("Can't instantiate interface %d outside netns \
29 node_guid = node_guids[0]
32 def _get_dev_number(testbed_instance, guid):
33 node_guid = _get_node_guid(testbed_instance, guid)
34 dev_guids = testbed_instance.get_connected(node_guid, "devs", "node")
36 for guid_ in dev_guids:
40 return interface_number
42 ### create traces functions ###
44 def p2pascii_trace(testbed_instance, guid, trace_id):
45 node_guid = _get_node_guid(testbed_instance, guid)
46 interface_number = _get_dev_number(testbed_instance, guid)
47 element = testbed_instance._elements[guid]
48 filename = "trace-p2p-node-%d-dev-%d.tr" % (node_guid, interface_number)
49 testbed_instance.follow_trace(guid, trace_id, filename)
50 filepath = testbed_instance.trace_filename(guid, trace_id)
51 helper = testbed_instance.ns3.PointToPointHelper()
52 asciiHelper = testbed_instance.ns3.AsciiTraceHelper()
53 stream = asciiHelper.CreateFileStream (filepath)
54 helper.EnableAscii(stream, element)
56 def p2ppcap_trace(testbed_instance, guid, trace_id):
57 node_guid = _get_node_guid(testbed_instance, guid)
58 interface_number = _get_dev_number(testbed_instance, guid)
59 element = testbed_instance._elements[guid]
60 filename = "trace-p2p-node-%d-dev-%d.pcap" % (node_guid, interface_number)
61 testbed_instance.follow_trace(guid, trace_id, filename)
62 filepath = testbed_instance.trace_filename(guid, trace_id)
63 helper = testbed_instance.ns3.PointToPointHelper()
64 helper.EnablePcap(filepath, element, explicitFilename = True)
66 def _csmapcap_trace(testbed_instance, guid, trace_id, promisc):
67 node_guid = _get_node_guid(testbed_instance, guid)
68 interface_number = _get_dev_number(testbed_instance, guid)
69 element = testbed_instance._elements[guid]
70 filename = "trace-csma-node-%d-dev-%d.pcap" % (node_guid, interface_number)
71 testbed_instance.follow_trace(guid, trace_id, filename)
72 filepath = testbed_instance.trace_filename(guid, trace_id)
73 helper = testbed_instance.ns3.CsmaHelper()
74 helper.EnablePcap(filepath, element, promiscuous = promisc,
75 explicitFilename = True)
77 def csmapcap_trace(testbed_instance, guid, trace_id):
79 _csmapcap_trace(testbed_instance, guid, trace_id, promisc)
81 def csmapcap_promisc_trace(testbed_instance, guid, trace_id):
83 _csmapcap_trace(testbed_instance, guid, trace_id, promisc)
85 def fdpcap_trace(testbed_instance, guid, trace_id):
86 node_guid = _get_node_guid(testbed_instance, guid)
87 interface_number = _get_dev_number(testbed_instance, guid)
88 element = testbed_instance._elements[guid]
89 filename = "trace-fd-node-%d-dev-%d.pcap" % (node_guid, interface_number)
90 testbed_instance.follow_trace(guid, trace_id, filename)
91 filepath = testbed_instance.trace_filename(guid, trace_id)
92 helper = testbed_instance.ns3.FileDescriptorHelper()
93 helper.EnablePcap(filepath, element, explicitFilename = True)
95 def yanswifipcap_trace(testbed_instance, guid, trace_id):
96 dev_guid = testbed_instance.get_connected(guid, "dev", "phy")[0]
97 node_guid = _get_node_guid(testbed_instance, dev_guid)
98 interface_number = _get_dev_number(testbed_instance, dev_guid)
99 element = testbed_instance._elements[dev_guid]
100 filename = "trace-yanswifi-node-%d-dev-%d.pcap" % (node_guid, interface_number)
101 testbed_instance.follow_trace(guid, trace_id, filename)
102 filepath = testbed_instance.trace_filename(guid, trace_id)
103 helper = testbed_instance.ns3.YansWifiPhyHelper()
104 helper.EnablePcap(filepath, element, explicitFilename = True)
106 trace_functions = dict({
107 "P2PPcapTrace": p2ppcap_trace,
108 "P2PAsciiTrace": p2pascii_trace,
109 "CsmaPcapTrace": csmapcap_trace,
110 "CsmaPcapPromiscTrace": csmapcap_promisc_trace,
111 "FileDescriptorPcapTrace": fdpcap_trace,
112 "YansWifiPhyPcapTrace": yanswifipcap_trace
115 ### Creation functions ###
117 wifi_standards = dict({
118 "WIFI_PHY_STANDARD_holland": 5,
119 "WIFI_PHY_STANDARD_80211p_SCH": 7,
120 "WIFI_PHY_STANDARD_80211_5Mhz": 4,
121 "WIFI_PHY_UNKNOWN": 8,
122 "WIFI_PHY_STANDARD_80211_10Mhz": 3,
123 "WIFI_PHY_STANDARD_80211g": 2,
124 "WIFI_PHY_STANDARD_80211p_CCH": 6,
125 "WIFI_PHY_STANDARD_80211a": 0,
126 "WIFI_PHY_STANDARD_80211b": 1
129 def create_element(testbed_instance, guid):
130 element_factory = testbed_instance.ns3.ObjectFactory()
131 factory_id = testbed_instance._create[guid]
132 element_factory.SetTypeId(factory_id)
133 construct_parameters = testbed_instance._get_construct_parameters(guid)
134 for name, value in construct_parameters.iteritems():
135 ns3_value = testbed_instance._to_ns3_value(guid, name, value)
136 element_factory.Set(name, ns3_value)
137 element = element_factory.Create()
138 testbed_instance._elements[guid] = element
140 def create_node(testbed_instance, guid):
141 create_element(testbed_instance, guid)
142 element = testbed_instance._elements[guid]
143 element.AggregateObject(testbed_instance.ns3.PacketSocketFactory())
145 def create_wifi_standard_model(testbed_instance, guid):
146 create_element(testbed_instance, guid)
147 element = testbed_instance._elements[guid]
148 parameters = testbed_instance._get_parameters(guid)
149 if "Standard" in parameters:
150 standard = parameters["Standard"]
152 element.ConfigureStandard(wifi_standards[standard])
154 def create_ipv4protocol(testbed_instance, guid):
155 create_element(testbed_instance, guid)
156 element = testbed_instance._elements[guid]
157 list_routing = testbed_instance.ns3.Ipv4ListRouting()
158 element.SetRoutingProtocol(list_routing)
159 static_routing = testbed_instance.ns3.Ipv4StaticRouting()
160 list_routing.AddRoutingProtocol(static_routing, 1)
162 ### Start/Stop functions ###
164 def start_application(testbed_instance, guid):
165 element = testbed_instance.elements[guid]
166 # BUG: without doing this explicit call it doesn't start!!!
167 # Shouldn't be enough to set the StartTime?
170 def stop_application(testbed_instance, guid):
171 element = testbed_instance.elements[guid]
172 now = testbed_instance.ns3.Simulator.Now()
173 element.SetStopTime(now)
175 ### Status functions ###
177 def status_application(testbed_instance, guid):
178 if guid not in testbed_instance.elements.keys():
179 raise RuntimeError("Can't get status on guid %d" % guid )
180 now = testbed_instance.ns3.Simulator.Now()
182 return STATUS_NOT_STARTED
183 app = testbed_instance.elements[guid]
184 parameters = testbed_instance._get_parameters(guid)
185 if "StartTime" in parameters and parameters["StartTime"]:
186 start_value = parameters["StartTime"]
187 start_time = testbed_instance.ns3.Time(start_value)
188 if now.Compare(start_time) < 0:
189 return STATUS_NOT_RUNNING
190 if "StopTime" in parameters and parameters["StopTime"]:
191 stop_value = parameters["StopTime"]
192 stop_time = testbed_instance.ns3.Time(stop_value)
193 if now.Compare(stop_time) < 0:
194 return STATUS_RUNNING
196 return STATUS_FINISHED
197 return STATUS_UNDETERMINED
199 ### Configure functions ###
201 def configure_traces(testbed_instance, guid):
202 traces = testbed_instance._get_traces(guid)
203 for trace_id in traces:
204 trace_func = trace_functions[trace_id]
205 trace_func(testbed_instance, guid, trace_id)
207 def configure_element(testbed_instance, guid):
208 configure_traces(testbed_instance, guid)
210 def configure_device(testbed_instance, guid):
211 configure_traces(testbed_instance, guid)
213 element = testbed_instance._elements[guid]
215 parameters = testbed_instance._get_parameters(guid)
216 if "macAddress" in parameters:
217 address = parameters["macAddress"]
218 macaddr = testbed_instance.ns3.Mac48Address(address)
220 macaddr = testbed_instance.ns3.Mac48Address.Allocate()
221 element.SetAddress(macaddr)
223 if not guid in testbed_instance._add_address:
225 # search for the node asociated with the device
226 node_guid = _get_node_guid(testbed_instance, guid)
227 node = testbed_instance.elements[node_guid]
228 # search for the Ipv4L3Protocol asociated with the device
229 ipv4_guid = _get_ipv4_protocol_guid(testbed_instance, node_guid)
230 ipv4 = testbed_instance._elements[ipv4_guid]
231 ns3 = testbed_instance.ns3
233 addresses = testbed_instance._add_address[guid]
234 for address in addresses:
235 (address, netprefix, broadcast) = address
236 # TODO: missing IPV6 addresses!!
237 ifindex = ipv4.AddInterface(element)
238 inaddr = ns3.Ipv4InterfaceAddress(ns3.Ipv4Address(address),
239 ns3.Ipv4Mask("/%d" % netprefix))
240 ipv4.AddAddress(ifindex, inaddr)
241 ipv4.SetMetric(ifindex, 1)
244 def _add_static_route(ns3, static_routing,
245 address, netprefix, nexthop_address, ifindex):
247 # Default route: 0.0.0.0/0
248 static_routing.SetDefaultRoute(nexthop_address, ifindex)
249 elif netprefix == 32:
250 # Host route: x.y.z.w/32
251 static_routing.AddHostRouteTo(address, nexthop_address, ifindex)
253 # Network route: x.y.z.w/n
254 mask = ns3.Ipv4Mask("/%d" % netprefix)
255 static_routing.AddNetworkRouteTo(address, mask, nexthop_address,
258 def _add_static_route_if(ns3, static_routing, address, netprefix, ifindex):
260 # Default route: 0.0.0.0/0
261 static_routing.SetDefaultRoute(ifindex)
262 elif netprefix == 32:
263 # Host route: x.y.z.w/32
264 static_routing.AddHostRouteTo(address, ifindex)
266 # Network route: x.y.z.w/n
267 mask = ns3.Ipv4Mask("/%d" % netprefix)
268 static_routing.AddNetworkRouteTo(address, mask, ifindex)
270 def configure_node(testbed_instance, guid):
271 configure_traces(testbed_instance, guid)
273 element = testbed_instance._elements[guid]
274 if not guid in testbed_instance._add_route:
276 # search for the Ipv4L3Protocol asociated with the device
277 ipv4_guid = _get_ipv4_protocol_guid(testbed_instance, guid)
278 ipv4 = testbed_instance._elements[ipv4_guid]
279 list_routing = ipv4.GetRoutingProtocol()
280 (static_routing, priority) = list_routing.GetRoutingProtocol(0)
281 ns3 = testbed_instance.ns3
282 routes = testbed_instance._add_route[guid]
284 (destination, netprefix, nexthop) = route
285 address = ns3.Ipv4Address(destination)
287 nexthop_address = ns3.Ipv4Address(nexthop)
289 # TODO: HACKISH way of getting the ifindex... improve this
290 nifaces = ipv4.GetNInterfaces()
291 for ifidx in range(nifaces):
292 iface = ipv4.GetInterface(ifidx)
293 naddress = iface.GetNAddresses()
294 for addridx in range(naddress):
295 ifaddr = iface.GetAddress(addridx)
296 ifmask = ifaddr.GetMask()
297 ifindex = ipv4.GetInterfaceForPrefix(nexthop_address, ifmask)
300 _add_static_route(ns3, static_routing,
301 address, netprefix, nexthop_address, ifindex)
303 mask = ns3.Ipv4Mask("/%d" % netprefix)
304 ifindex = ipv4.GetInterfaceForPrefix(address, mask)
305 _add_static_route_if(ns3, static_routing,
306 address, netprefix, nexthop_address, ifindex)
308 factories_info = dict({
310 "category": "Application",
311 "create_function": create_element,
312 "configure_function": configure_element,
314 "connector_types": [],
315 "stop_function": stop_application,
316 "start_function": start_application,
317 "status_function": status_application,
318 "box_attributes": ["MaxPackets",
326 "ns3::UdpL4Protocol": dict({
327 "category": "Protocol",
328 "create_function": create_element,
329 "configure_function": configure_element,
331 "connector_types": ["node"],
332 "box_attributes": ["ProtocolNumber"],
334 "ns3::RandomDiscPositionAllocator": dict({
335 "category": "Mobility",
336 "create_function": create_element,
337 "configure_function": configure_element,
339 "connector_types": [],
340 "box_attributes": ["Theta",
346 "category": "Topology",
347 "create_function": create_node,
348 "configure_function": configure_node,
350 "connector_types": ["devs", "apps", "protos", "mobility"],
351 "allow_routes": True,
352 "box_attributes": [],
354 "ns3::GridPositionAllocator": dict({
355 "category": "Mobility",
356 "create_function": create_element,
357 "configure_function": configure_element,
359 "connector_types": [],
360 "box_attributes": ["GridWidth",
367 "ns3::TapBridge": dict({
368 "category": "Device",
369 "create_function": create_element,
370 "configure_function": configure_element,
372 "connector_types": [],
373 "allow_addresses": True,
374 "box_attributes": ["Mtu",
383 "ns3::FlowMonitor": dict({
385 "create_function": create_element,
386 "configure_function": configure_element,
388 "connector_types": [],
389 "box_attributes": ["MaxPerHopDelay",
392 "PacketSizeBinWidth",
393 "FlowInterruptionsBinWidth",
394 "FlowInterruptionsMinTime"],
396 "ns3::ConstantVelocityMobilityModel": dict({
397 "category": "Mobility",
398 "create_function": create_element,
399 "configure_function": configure_element,
401 "connector_types": ["node"],
402 "box_attributes": ["Position",
405 "ns3::V4Ping": dict({
406 "category": "Application",
407 "create_function": create_element,
408 "configure_function": configure_element,
410 "connector_types": ["node"],
411 "stop_function": stop_application,
412 "start_function": start_application,
413 "status_function": status_application,
414 "box_attributes": ["Remote",
421 "ns3::dot11s::PeerLink": dict({
423 "create_function": create_element,
424 "configure_function": configure_element,
426 "connector_types": [],
427 "box_attributes": ["RetryTimeout",
434 "ns3::PointToPointNetDevice": dict({
435 "category": "Device",
436 "create_function": create_element,
437 "configure_function": configure_device,
439 "connector_types": ["node", "err", "queue", "chan"],
440 "allow_addresses": True,
441 "box_attributes": ["Mtu",
445 "traces": ["p2ppcap", "p2pascii"]
447 "ns3::NakagamiPropagationLossModel": dict({
449 "create_function": create_element,
450 "configure_function": configure_element,
452 "connector_types": [],
453 "box_attributes": ["Distance1",
459 "ns3::AarfWifiManager": dict({
460 "category": "Manager",
461 "create_function": create_element,
462 "configure_function": configure_element,
464 "connector_types": [],
465 "box_attributes": ["SuccessK",
467 "MaxSuccessThreshold",
469 "MinSuccessThreshold",
474 "FragmentationThreshold",
477 "ns3::Ipv6OptionJumbogram": dict({
479 "create_function": create_element,
480 "configure_function": configure_element,
482 "connector_types": [],
483 "box_attributes": ["OptionNumber"],
485 "ns3::TwoRayGroundPropagationLossModel": dict({
487 "create_function": create_element,
488 "configure_function": configure_element,
490 "connector_types": [],
491 "box_attributes": ["Lambda",
496 "ns3::OnOffApplication": dict({
497 "category": "Application",
498 "create_function": create_element,
499 "configure_function": configure_element,
501 "connector_types": ["node"],
502 "stop_function": stop_application,
503 "start_function": start_application,
504 "status_function": status_application,
505 "box_attributes": ["DataRate",
515 "ns3::AdhocWifiMac": dict({
517 "create_function": create_element,
518 "configure_function": configure_element,
520 "connector_types": [],
521 "box_attributes": ["CtsTimeout",
523 "BasicBlockAckTimeout",
524 "CompressedBlockAckTimeout",
529 "MaxPropagationDelay",
532 "ns3::ConstantAccelerationMobilityModel": dict({
533 "category": "Mobility",
534 "create_function": create_element,
535 "configure_function": configure_element,
537 "connector_types": ["node"],
538 "box_attributes": ["Position",
541 "ns3::GaussMarkovMobilityModel": dict({
542 "category": "Mobility",
543 "create_function": create_element,
544 "configure_function": configure_element,
546 "connector_types": [],
547 "box_attributes": ["Bounds",
559 "ns3::dot11s::HwmpProtocol": dict({
560 "category": "Protocol",
561 "create_function": create_element,
562 "configure_function": configure_element,
564 "connector_types": [],
565 "box_attributes": ["RandomStart",
567 "Dot11MeshHWMPmaxPREQretries",
568 "Dot11MeshHWMPnetDiameterTraversalTime",
569 "Dot11MeshHWMPpreqMinInterval",
570 "Dot11MeshHWMPperrMinInterval",
571 "Dot11MeshHWMPactiveRootTimeout",
572 "Dot11MeshHWMPactivePathTimeout",
573 "Dot11MeshHWMPpathToRootInterval",
574 "Dot11MeshHWMPrannInterval",
576 "UnicastPerrThreshold",
577 "UnicastPreqThreshold",
578 "UnicastDataThreshold",
582 "ns3::NscTcpL4Protocol": dict({
583 "category": "Protocol",
584 "create_function": create_element,
585 "configure_function": configure_element,
587 "connector_types": [],
588 "box_attributes": ["Library",
591 "ns3::dot11s::AirtimeLinkMetricCalculator": dict({
593 "create_function": create_element,
594 "configure_function": configure_element,
596 "connector_types": [],
597 "box_attributes": ["Dot11sMeshHeaderLength"],
599 "ns3::UanMacCw": dict({
601 "create_function": create_element,
602 "configure_function": configure_element,
604 "connector_types": [],
605 "box_attributes": ["CW",
608 "ns3::AthstatsWifiTraceSink": dict({
610 "create_function": create_element,
611 "configure_function": configure_element,
613 "connector_types": [],
614 "box_attributes": ["Interval"],
616 "ns3::FlameStack": dict({
618 "create_function": create_element,
619 "configure_function": configure_element,
621 "connector_types": [],
622 "box_attributes": [],
624 "ns3::UanMacRc": dict({
626 "create_function": create_element,
627 "configure_function": configure_element,
629 "connector_types": [],
630 "box_attributes": ["RetryRate",
637 "NumberOfRetryRates",
640 "ns3::WaypointMobilityModel": dict({
641 "category": "Mobility",
642 "create_function": create_element,
643 "configure_function": configure_element,
645 "connector_types": [],
646 "box_attributes": ["WaypointsLeft",
650 "ns3::FileDescriptorNetDevice": dict({
651 "category": "Device",
652 "create_function": create_element,
653 "configure_function": configure_device,
654 "help": "Network interface associated to a file descriptor",
655 "connector_types": ["node", "->fd"],
656 "allow_addresses": True,
657 "box_attributes": ["Address",
658 "LinuxSocketAddress",
659 "tun_proto", "tun_addr", "tun_port", "tun_key"],
662 "ns3::CsmaNetDevice": dict({
663 "category": "Device",
664 "create_function": create_element,
665 "configure_function": configure_device,
666 "help": "CSMA (carrier sense, multiple access) interface",
667 "connector_types": ["node", "chan", "err", "queue"],
668 "allow_addresses": True,
669 "box_attributes": ["Address",
673 "traces": ["csmapcap", "csmapcap_promisc"]
675 "ns3::UanPropModelThorp": dict({
677 "create_function": create_element,
678 "configure_function": configure_element,
680 "connector_types": [],
681 "box_attributes": ["SpreadCoef"],
683 "ns3::NqstaWifiMac": dict({
685 "create_function": create_element,
686 "configure_function": configure_element,
688 "connector_types": [],
689 "box_attributes": ["ProbeRequestTimeout",
690 "AssocRequestTimeout",
694 "BasicBlockAckTimeout",
695 "CompressedBlockAckTimeout",
700 "MaxPropagationDelay",
703 "ns3::Icmpv6L4Protocol": dict({
704 "category": "Protocol",
705 "create_function": create_element,
706 "configure_function": configure_element,
708 "connector_types": ["node"],
709 "box_attributes": ["DAD",
712 "ns3::SimpleNetDevice": dict({
713 "category": "Device",
714 "create_function": create_element,
715 "configure_function": configure_element,
717 "connector_types": ["node", "chan"],
718 "allow_addresses": True,
719 "box_attributes": [],
721 "ns3::FriisPropagationLossModel": dict({
723 "create_function": create_element,
724 "configure_function": configure_element,
726 "connector_types": [],
727 "box_attributes": ["Lambda",
731 "ns3::Ipv6OptionRouterAlert": dict({
733 "create_function": create_element,
734 "configure_function": configure_element,
736 "connector_types": [],
737 "box_attributes": ["OptionNumber"],
739 "ns3::UniformDiscPositionAllocator": dict({
740 "category": "Mobility",
741 "create_function": create_element,
742 "configure_function": configure_element,
744 "connector_types": [],
745 "box_attributes": ["rho",
749 "ns3::RandomBoxPositionAllocator": dict({
750 "category": "Mobility",
751 "create_function": create_element,
752 "configure_function": configure_element,
754 "connector_types": [],
755 "box_attributes": ["X",
759 "ns3::Ipv6ExtensionDestination": dict({
761 "create_function": create_element,
762 "configure_function": configure_element,
764 "connector_types": [],
765 "box_attributes": ["ExtensionNumber"],
767 "ns3::LoopbackNetDevice": dict({
768 "category": "Device",
769 "create_function": create_element,
770 "configure_function": configure_element,
772 "connector_types": [],
773 "box_attributes": [],
775 "ns3::ConstantSpeedPropagationDelayModel": dict({
777 "create_function": create_element,
778 "configure_function": configure_element,
780 "connector_types": ["chan"],
781 "box_attributes": ["Speed"],
783 "ns3::Ipv6ExtensionHopByHop": dict({
785 "create_function": create_element,
786 "configure_function": configure_element,
788 "connector_types": [],
789 "box_attributes": ["ExtensionNumber"],
791 "ns3::BridgeChannel": dict({
792 "category": "Channel",
793 "create_function": create_element,
794 "configure_function": configure_element,
796 "connector_types": [],
797 "box_attributes": [],
801 "create_function": create_element,
802 "configure_function": configure_element,
804 "connector_types": [],
805 "box_attributes": ["StartTime",
808 "ns3::PacketSocket": dict({
810 "create_function": create_element,
811 "configure_function": configure_element,
813 "connector_types": [],
814 "box_attributes": ["RcvBufSize"],
816 "ns3::flame::FlameProtocol": dict({
817 "category": "Protocol",
818 "create_function": create_element,
819 "configure_function": configure_element,
821 "connector_types": [],
822 "box_attributes": ["BroadcastInterval",
825 "ns3::Cost231PropagationLossModel": dict({
827 "create_function": create_element,
828 "configure_function": configure_element,
830 "connector_types": [],
831 "box_attributes": ["Lambda",
837 "ns3::Ipv6ExtensionESP": dict({
839 "create_function": create_element,
840 "configure_function": configure_element,
842 "connector_types": [],
843 "box_attributes": ["ExtensionNumber"],
845 "ns3::CaraWifiManager": dict({
846 "category": "Manager",
847 "create_function": create_element,
848 "configure_function": configure_element,
850 "connector_types": [],
851 "box_attributes": ["ProbeThreshold",
859 "FragmentationThreshold",
863 "ns3::RttMeanDeviation": dict({
865 "create_function": create_element,
866 "configure_function": configure_element,
868 "connector_types": [],
869 "box_attributes": ["Gain",
874 "ns3::Icmpv4L4Protocol": dict({
875 "category": "Protocol",
876 "create_function": create_element,
877 "configure_function": configure_element,
879 "connector_types": ["node"],
880 "box_attributes": ["ProtocolNumber"],
882 "ns3::WaveformGenerator": dict({
884 "create_function": create_element,
885 "configure_function": configure_element,
887 "connector_types": [],
888 "box_attributes": ["Period",
891 "ns3::YansWifiChannel": dict({
892 "category": "Channel",
893 "create_function": create_element,
894 "configure_function": configure_element,
896 "connector_types": ["phys", "delay", "loss"],
897 "box_attributes": [],
899 "ns3::SimpleChannel": dict({
900 "category": "Channel",
901 "create_function": create_element,
902 "configure_function": configure_element,
904 "connector_types": ["devs"],
905 "box_attributes": [],
907 "ns3::Ipv6ExtensionFragment": dict({
909 "create_function": create_element,
910 "configure_function": configure_element,
912 "connector_types": [],
913 "box_attributes": ["ExtensionNumber"],
915 "ns3::Dot11sStack": dict({
917 "create_function": create_element,
918 "configure_function": configure_element,
920 "connector_types": [],
921 "box_attributes": ["Root"],
923 "ns3::FriisSpectrumPropagationLossModel": dict({
925 "create_function": create_element,
926 "configure_function": configure_element,
928 "connector_types": [],
929 "box_attributes": [],
931 "ns3::RandomRectanglePositionAllocator": dict({
932 "category": "Mobility",
933 "create_function": create_element,
934 "configure_function": configure_element,
936 "connector_types": [],
937 "box_attributes": ["X",
940 "ns3::NqapWifiMac": dict({
942 "create_function": create_element,
943 "configure_function": configure_element,
945 "connector_types": [],
946 "box_attributes": ["BeaconInterval",
950 "BasicBlockAckTimeout",
951 "CompressedBlockAckTimeout",
956 "MaxPropagationDelay",
959 "ns3::HierarchicalMobilityModel": dict({
960 "category": "Mobility",
961 "create_function": create_element,
962 "configure_function": configure_element,
964 "connector_types": ["node"],
965 "box_attributes": ["Position",
968 "ns3::ThreeLogDistancePropagationLossModel": dict({
970 "create_function": create_element,
971 "configure_function": configure_element,
973 "connector_types": [],
974 "box_attributes": ["Distance0",
982 "ns3::UanNoiseModelDefault": dict({
984 "create_function": create_element,
985 "configure_function": configure_element,
987 "connector_types": [],
988 "box_attributes": ["Wind",
991 "ns3::dot11s::HwmpRtable": dict({
993 "create_function": create_element,
994 "configure_function": configure_element,
996 "connector_types": [],
997 "box_attributes": [],
999 "ns3::PacketBurst": dict({
1001 "create_function": create_element,
1002 "configure_function": configure_element,
1004 "connector_types": [],
1005 "box_attributes": [],
1007 "ns3::RandomPropagationDelayModel": dict({
1008 "category": "Delay",
1009 "create_function": create_element,
1010 "configure_function": configure_element,
1012 "connector_types": [],
1013 "box_attributes": ["Variable"],
1015 "ns3::ArpL3Protocol": dict({
1016 "category": "Protocol",
1017 "create_function": create_element,
1018 "configure_function": configure_element,
1020 "connector_types": ["node"],
1021 "box_attributes": [],
1023 "ns3::SteadyStateRandomWaypointMobilityModel": dict({
1024 "category": "Mobility",
1025 "create_function": create_element,
1026 "configure_function": configure_element,
1028 "connector_types": [],
1029 "box_attributes": ["MinSpeed",
1040 "ns3::BaseStationNetDevice": dict({
1041 "category": "Device",
1042 "create_function": create_element,
1043 "configure_function": configure_device,
1045 "connector_types": [],
1046 "allow_addresses": True,
1047 "box_attributes": ["InitialRangInterval",
1053 "MaxRangCorrectionRetries",
1058 "ns3::UdpServer": dict({
1059 "category": "Application",
1060 "create_function": create_element,
1061 "configure_function": configure_element,
1063 "connector_types": [],
1064 "stop_function": stop_application,
1065 "start_function": start_application,
1066 "status_function": status_application,
1067 "box_attributes": ["Port",
1072 "ns3::AarfcdWifiManager": dict({
1073 "category": "Manager",
1074 "create_function": create_element,
1075 "configure_function": configure_element,
1077 "connector_types": [],
1078 "box_attributes": ["SuccessK",
1080 "MaxSuccessThreshold",
1081 "MinTimerThreshold",
1082 "MinSuccessThreshold",
1085 "TurnOffRtsAfterRateDecrease",
1086 "TurnOnRtsAfterRateIncrease",
1091 "FragmentationThreshold",
1094 "ns3::UanTransducerHd": dict({
1096 "create_function": create_element,
1097 "configure_function": configure_element,
1099 "connector_types": [],
1100 "box_attributes": [],
1102 "ns3::LogDistancePropagationLossModel": dict({
1104 "create_function": create_element,
1105 "configure_function": configure_element,
1107 "connector_types": ["prev", "next"],
1108 "box_attributes": ["Exponent",
1109 "ReferenceDistance",
1112 "ns3::EmuNetDevice": dict({
1113 "category": "Device",
1114 "create_function": create_element,
1115 "configure_function": configure_element,
1117 "connector_types": ["node", "queue"],
1118 "box_attributes": ["Mtu",
1125 "ns3::Ipv6ExtensionLooseRouting": dict({
1127 "create_function": create_element,
1128 "configure_function": configure_element,
1130 "connector_types": [],
1131 "box_attributes": ["ExtensionNumber"],
1133 "ns3::RandomWaypointMobilityModel": dict({
1134 "category": "Mobility",
1135 "create_function": create_element,
1136 "configure_function": configure_element,
1138 "connector_types": ["node"],
1139 "box_attributes": ["Speed",
1144 "ns3::RangePropagationLossModel": dict({
1146 "create_function": create_element,
1147 "configure_function": configure_element,
1149 "connector_types": [],
1150 "box_attributes": ["MaxRange"],
1152 "ns3::AlohaNoackNetDevice": dict({
1153 "category": "Device",
1154 "create_function": create_element,
1155 "configure_function": configure_element,
1157 "connector_types": [],
1158 "box_attributes": ["Address",
1161 "ns3::MatrixPropagationLossModel": dict({
1163 "create_function": create_element,
1164 "configure_function": configure_element,
1166 "connector_types": [],
1167 "box_attributes": ["DefaultLoss"],
1169 "ns3::WifiNetDevice": dict({
1170 "category": "Device",
1171 "create_function": create_element,
1172 "configure_function": configure_device,
1174 "connector_types": ["node", "mac", "phy", "manager"],
1175 "allow_addresses": True,
1176 "box_attributes": ["Mtu"],
1178 "ns3::CsmaChannel": dict({
1179 "category": "Channel",
1180 "create_function": create_element,
1181 "configure_function": configure_element,
1183 "connector_types": ["devs"],
1184 "box_attributes": ["DataRate",
1187 "ns3::BridgeNetDevice": dict({
1188 "category": "Device",
1189 "create_function": create_element,
1190 "configure_function": configure_element,
1192 "connector_types": ["node"],
1193 "allow_addresses": True,
1194 "box_attributes": ["Mtu",
1198 "ns3::Ipv6ExtensionRouting": dict({
1200 "create_function": create_element,
1201 "configure_function": configure_element,
1203 "connector_types": [],
1204 "box_attributes": ["ExtensionNumber"],
1206 "ns3::QstaWifiMac": dict({
1208 "create_function": create_wifi_standard_model,
1209 "configure_function": configure_element,
1210 "help": "Station Wifi MAC Model",
1211 "connector_types": ["dev"],
1212 "box_attributes": ["ProbeRequestTimeout",
1213 "AssocRequestTimeout",
1217 "BasicBlockAckTimeout",
1218 "CompressedBlockAckTimeout",
1223 "MaxPropagationDelay",
1227 "ns3::UdpEchoClient": dict({
1228 "category": "Application",
1229 "create_function": create_element,
1230 "configure_function": configure_element,
1232 "connector_types": ["node"],
1233 "stop_function": stop_application,
1234 "start_function": start_application,
1235 "status_function": status_application,
1236 "box_attributes": ["MaxPackets",
1244 "ns3::UdpClient": dict({
1245 "category": "Application",
1246 "create_function": create_element,
1247 "configure_function": configure_element,
1249 "connector_types": [],
1250 "stop_function": stop_application,
1251 "start_function": start_application,
1252 "status_function": status_application,
1253 "box_attributes": ["MaxPackets",
1261 "ns3::PointToPointChannel": dict({
1262 "category": "Channel",
1263 "create_function": create_element,
1264 "configure_function": configure_element,
1266 "connector_types": ["dev2"],
1267 "box_attributes": ["Delay"],
1269 "ns3::Ipv6StaticRouting": dict({
1271 "create_function": create_element,
1272 "configure_function": configure_element,
1274 "connector_types": [],
1275 "box_attributes": [],
1277 "ns3::DropTailQueue": dict({
1278 "category": "Device",
1279 "create_function": create_element,
1280 "configure_function": configure_element,
1282 "connector_types": ["dev"],
1283 "box_attributes": ["MaxPackets",
1286 "ns3::ConstantPositionMobilityModel": dict({
1287 "category": "Mobility",
1288 "create_function": create_element,
1289 "configure_function": configure_element,
1291 "connector_types": ["node"],
1292 "box_attributes": ["Position",
1295 "ns3::FixedRssLossModel": dict({
1297 "create_function": create_element,
1298 "configure_function": configure_element,
1300 "connector_types": [],
1301 "box_attributes": ["Rss"],
1303 "ns3::EnergySourceContainer": dict({
1305 "create_function": create_element,
1306 "configure_function": configure_element,
1308 "connector_types": [],
1309 "box_attributes": [],
1311 "ns3::RandomWalk2dMobilityModel": dict({
1312 "category": "Mobility",
1313 "create_function": create_element,
1314 "configure_function": configure_element,
1316 "connector_types": ["node"],
1317 "box_attributes": ["Bounds",
1326 "ns3::ListPositionAllocator": dict({
1328 "create_function": create_element,
1329 "configure_function": configure_element,
1331 "connector_types": [],
1332 "box_attributes": [],
1334 "ns3::dot11s::PeerManagementProtocol": dict({
1335 "category": "Protocol",
1336 "create_function": create_element,
1337 "configure_function": configure_element,
1339 "connector_types": [],
1340 "box_attributes": ["MaxNumberOfPeerLinks",
1341 "MaxBeaconShiftValue",
1342 "EnableBeaconCollisionAvoidance"],
1344 "ns3::MeshPointDevice": dict({
1345 "category": "Device",
1346 "create_function": create_element,
1347 "configure_function": configure_element,
1349 "connector_types": [],
1350 "allow_addresses": True,
1351 "box_attributes": ["Mtu"],
1353 "ns3::BasicEnergySource": dict({
1355 "create_function": create_element,
1356 "configure_function": configure_element,
1358 "connector_types": [],
1359 "box_attributes": ["BasicEnergySourceInitialEnergyJ",
1360 "BasicEnergySupplyVoltageV",
1361 "PeriodicEnergyUpdateInterval"],
1363 "ns3::Ipv6OptionPadn": dict({
1365 "create_function": create_element,
1366 "configure_function": configure_element,
1368 "connector_types": [],
1369 "box_attributes": ["OptionNumber"],
1371 "ns3::QapWifiMac": dict({
1373 "create_function": create_wifi_standard_model,
1374 "configure_function": configure_element,
1375 "help": "Access point Wifi MAC Model",
1376 "connector_types": ["dev"],
1377 "box_attributes": ["BeaconInterval",
1381 "BasicBlockAckTimeout",
1382 "CompressedBlockAckTimeout",
1387 "MaxPropagationDelay",
1391 "ns3::YansErrorRateModel": dict({
1392 "category": "Error",
1393 "create_function": create_element,
1394 "configure_function": configure_element,
1396 "connector_types": [],
1397 "box_attributes": [],
1399 "ns3::WifiMacQueue": dict({
1401 "create_function": create_element,
1402 "configure_function": configure_element,
1404 "connector_types": [],
1405 "box_attributes": ["MaxPacketNumber",
1408 "ns3::NonCommunicatingNetDevice": dict({
1409 "category": "Device",
1410 "create_function": create_element,
1411 "configure_function": configure_element,
1413 "connector_types": [],
1414 "allow_addresses": True,
1415 "box_attributes": [],
1417 "ns3::RateErrorModel": dict({
1418 "category": "Error",
1419 "create_function": create_element,
1420 "configure_function": configure_element,
1422 "connector_types": [],
1423 "box_attributes": ["ErrorUnit",
1428 "ns3::MeshWifiInterfaceMac": dict({
1430 "create_function": create_element,
1431 "configure_function": configure_element,
1433 "connector_types": [],
1434 "box_attributes": ["BeaconInterval",
1439 "BasicBlockAckTimeout",
1440 "CompressedBlockAckTimeout",
1445 "MaxPropagationDelay",
1448 "ns3::UanPhyCalcSinrDual": dict({
1450 "create_function": create_element,
1451 "configure_function": configure_element,
1453 "connector_types": [],
1454 "box_attributes": [],
1456 "ns3::Ipv6ExtensionAH": dict({
1458 "create_function": create_element,
1459 "configure_function": configure_element,
1461 "connector_types": [],
1462 "box_attributes": ["ExtensionNumber"],
1464 "ns3::SingleModelSpectrumChannel": dict({
1465 "category": "Channel",
1466 "create_function": create_element,
1467 "configure_function": configure_element,
1469 "connector_types": [],
1470 "box_attributes": [],
1472 "ns3::YansWifiPhy": dict({
1474 "create_function": create_wifi_standard_model,
1475 "configure_function": configure_element,
1477 "connector_types": ["dev", "err", "chan"],
1478 "box_attributes": ["EnergyDetectionThreshold",
1479 "CcaMode1Threshold",
1486 "ChannelSwitchDelay",
1489 "traces": ["yanswifipcap"]
1491 "ns3::WifiRadioEnergyModel": dict({
1493 "create_function": create_element,
1494 "configure_function": configure_element,
1496 "connector_types": [],
1497 "box_attributes": ["TxCurrentA",
1502 "ns3::EdcaTxopN": dict({
1504 "create_function": create_element,
1505 "configure_function": configure_element,
1507 "connector_types": [],
1508 "box_attributes": ["BlockAckThreshold",
1513 "ns3::UanPhyPerGenDefault": dict({
1515 "create_function": create_element,
1516 "configure_function": configure_element,
1518 "connector_types": [],
1519 "box_attributes": ["Threshold"],
1521 "ns3::IdealWifiManager": dict({
1522 "category": "Manager",
1523 "create_function": create_element,
1524 "configure_function": configure_element,
1526 "connector_types": [],
1527 "box_attributes": ["BerThreshold",
1532 "FragmentationThreshold",
1535 "ns3::MultiModelSpectrumChannel": dict({
1536 "category": "Channel",
1537 "create_function": create_element,
1538 "configure_function": configure_element,
1540 "connector_types": [],
1541 "box_attributes": [],
1543 "ns3::HalfDuplexIdealPhy": dict({
1545 "create_function": create_element,
1546 "configure_function": configure_element,
1548 "connector_types": [],
1549 "box_attributes": ["Rate"],
1551 "ns3::UanPhyCalcSinrDefault": dict({
1553 "create_function": create_element,
1554 "configure_function": configure_element,
1556 "connector_types": [],
1557 "box_attributes": [],
1559 "ns3::ReceiveListErrorModel": dict({
1560 "category": "Error",
1561 "create_function": create_element,
1562 "configure_function": configure_element,
1564 "connector_types": [],
1565 "box_attributes": ["IsEnabled"],
1567 "ns3::SpectrumAnalyzer": dict({
1569 "create_function": create_element,
1570 "configure_function": configure_element,
1572 "connector_types": [],
1573 "box_attributes": ["Resolution",
1574 "NoisePowerSpectralDensity"],
1576 "ns3::ConstantRateWifiManager": dict({
1577 "category": "Manager",
1578 "create_function": create_element,
1579 "configure_function": configure_element,
1581 "connector_types": ["dev"],
1582 "box_attributes": ["DataMode",
1588 "FragmentationThreshold",
1591 "ns3::Ipv6OptionPad1": dict({
1593 "create_function": create_element,
1594 "configure_function": configure_element,
1596 "connector_types": [],
1597 "box_attributes": ["OptionNumber"],
1599 "ns3::UdpTraceClient": dict({
1601 "create_function": create_element,
1602 "configure_function": configure_element,
1604 "connector_types": [],
1605 "box_attributes": ["RemoteAddress",
1611 "ns3::RraaWifiManager": dict({
1612 "category": "Manager",
1613 "create_function": create_element,
1614 "configure_function": configure_element,
1616 "connector_types": [],
1617 "box_attributes": ["Basic",
1645 "FragmentationThreshold",
1648 "ns3::RandomPropagationLossModel": dict({
1650 "create_function": create_element,
1651 "configure_function": configure_element,
1653 "connector_types": [],
1654 "box_attributes": ["Variable"],
1656 "ns3::UanChannel": dict({
1657 "category": "Channel",
1658 "create_function": create_element,
1659 "configure_function": configure_element,
1661 "connector_types": [],
1662 "box_attributes": [],
1664 "ns3::MinstrelWifiManager": dict({
1665 "category": "Manager",
1666 "create_function": create_element,
1667 "configure_function": configure_element,
1669 "connector_types": [],
1670 "box_attributes": ["UpdateStatistics",
1680 "FragmentationThreshold",
1683 "ns3::UanPhyDual": dict({
1685 "create_function": create_element,
1686 "configure_function": configure_element,
1688 "connector_types": [],
1689 "box_attributes": ["CcaThresholdPhy1",
1695 "SupportedModesPhy1",
1696 "SupportedModesPhy2"],
1698 "ns3::ListErrorModel": dict({
1699 "category": "Error",
1700 "create_function": create_element,
1701 "configure_function": configure_element,
1703 "connector_types": ["dev"],
1704 "box_attributes": ["IsEnabled"],
1706 "ns3::VirtualNetDevice": dict({
1707 "category": "Device",
1708 "create_function": create_element,
1709 "configure_function": configure_element,
1711 "connector_types": [],
1712 "allow_addresses": True,
1713 "box_attributes": ["Mtu"],
1715 "ns3::UanPhyGen": dict({
1717 "create_function": create_element,
1718 "configure_function": configure_element,
1720 "connector_types": [],
1721 "box_attributes": ["CcaThreshold",
1727 "ns3::Ipv6L3Protocol": dict({
1728 "category": "Protocol",
1729 "create_function": create_element,
1730 "configure_function": configure_element,
1732 "connector_types": ["node"],
1733 "box_attributes": ["DefaultTtl",
1736 "ns3::PointToPointRemoteChannel": dict({
1737 "category": "Channel",
1738 "create_function": create_element,
1739 "configure_function": configure_element,
1741 "connector_types": [],
1742 "box_attributes": ["Delay"],
1744 "ns3::UanPhyPerUmodem": dict({
1746 "create_function": create_element,
1747 "configure_function": configure_element,
1749 "connector_types": [],
1750 "box_attributes": [],
1752 "ns3::OnoeWifiManager": dict({
1753 "category": "Manager",
1754 "create_function": create_element,
1755 "configure_function": configure_element,
1757 "connector_types": [],
1758 "box_attributes": ["UpdatePeriod",
1760 "AddCreditThreshold",
1765 "FragmentationThreshold",
1768 "ns3::QadhocWifiMac": dict({
1770 "create_function": create_element,
1771 "configure_function": configure_element,
1773 "connector_types": [],
1774 "box_attributes": ["CtsTimeout",
1776 "BasicBlockAckTimeout",
1777 "CompressedBlockAckTimeout",
1782 "MaxPropagationDelay",
1785 "ns3::JakesPropagationLossModel": dict({
1787 "create_function": create_element,
1788 "configure_function": configure_element,
1790 "connector_types": [],
1791 "box_attributes": ["NumberOfRaysPerPath",
1792 "NumberOfOscillatorsPerRay",
1796 "ns3::PacketSink": dict({
1797 "category": "Application",
1798 "create_function": create_element,
1799 "configure_function": configure_element,
1801 "connector_types": ["node"],
1802 "stop_function": stop_application,
1803 "start_function": start_application,
1804 "status_function": status_application,
1805 "box_attributes": ["Local",
1810 "ns3::RandomDirection2dMobilityModel": dict({
1811 "category": "Mobility",
1812 "create_function": create_element,
1813 "configure_function": configure_element,
1815 "connector_types": ["node"],
1816 "box_attributes": ["Bounds",
1822 "ns3::UanMacAloha": dict({
1824 "create_function": create_element,
1825 "configure_function": configure_element,
1827 "connector_types": [],
1828 "box_attributes": [],
1830 "ns3::MsduStandardAggregator": dict({
1832 "create_function": create_element,
1833 "configure_function": configure_element,
1835 "connector_types": [],
1836 "box_attributes": ["MaxAmsduSize"],
1838 "ns3::DcaTxop": dict({
1840 "create_function": create_element,
1841 "configure_function": configure_element,
1843 "connector_types": [],
1844 "box_attributes": ["MinCw",
1848 "ns3::UanPhyCalcSinrFhFsk": dict({
1850 "create_function": create_element,
1851 "configure_function": configure_element,
1853 "connector_types": [],
1854 "box_attributes": ["NumberOfHops"],
1856 "ns3::UanPropModelIdeal": dict({
1858 "create_function": create_element,
1859 "configure_function": configure_element,
1861 "connector_types": [],
1862 "box_attributes": [],
1864 "ns3::UanMacRcGw": dict({
1866 "create_function": create_element,
1867 "configure_function": configure_element,
1869 "connector_types": [],
1870 "box_attributes": ["MaxReservations",
1878 "NumberOfRetryRates",
1883 "ns3::NistErrorRateModel": dict({
1884 "category": "Error",
1885 "create_function": create_element,
1886 "configure_function": configure_element,
1888 "connector_types": ["phy"],
1889 "box_attributes": [],
1891 "ns3::Ipv4L3Protocol": dict({
1892 "category": "Protocol",
1893 "create_function": create_ipv4protocol,
1894 "configure_function": configure_element,
1896 "connector_types": ["node"],
1897 "box_attributes": ["DefaultTtl",
1901 "ns3::aodv::RoutingProtocol": dict({
1902 "category": "Protocol",
1903 "create_function": create_element,
1904 "configure_function": configure_element,
1906 "connector_types": [],
1907 "box_attributes": ["HelloInterval",
1910 "NodeTraversalTime",
1912 "ActiveRouteTimeout",
1919 "PathDiscoveryTime",
1928 "ns3::TcpL4Protocol": dict({
1929 "category": "Protocol",
1930 "create_function": create_element,
1931 "configure_function": configure_element,
1933 "connector_types": ["node"],
1934 "box_attributes": ["RttEstimatorFactory",
1937 "ns3::olsr::RoutingProtocol": dict({
1938 "category": "Protocol",
1939 "create_function": create_element,
1940 "configure_function": configure_element,
1942 "connector_types": [],
1943 "box_attributes": ["HelloInterval",
1949 "ns3::UdpEchoServer": dict({
1950 "category": "Application",
1951 "create_function": create_element,
1952 "configure_function": configure_element,
1954 "connector_types": ["node"],
1955 "stop_function": stop_application,
1956 "start_function": start_application,
1957 "status_function": status_application,
1958 "box_attributes": ["Port",
1962 "ns3::AmrrWifiManager": dict({
1963 "category": "Manager",
1964 "create_function": create_element,
1965 "configure_function": configure_element,
1967 "connector_types": [],
1968 "box_attributes": ["UpdatePeriod",
1971 "MaxSuccessThreshold",
1972 "MinSuccessThreshold",
1977 "FragmentationThreshold",
1980 "ns3::ArfWifiManager": dict({
1981 "category": "Manager",
1982 "create_function": create_element,
1983 "configure_function": configure_element,
1985 "connector_types": ["dev"],
1986 "box_attributes": ["TimerThreshold",
1992 "FragmentationThreshold",
1995 "ns3::SubscriberStationNetDevice": dict({
1996 "category": "Device",
1997 "create_function": create_element,
1998 "configure_function": configure_element,
2000 "connector_types": [],
2001 "allow_addresses": True,
2002 "box_attributes": ["LostDlMapInterval",
2003 "LostUlMapInterval",
2013 "MaxContentionRangingRetries",
2018 "ns3::flame::FlameRtable": dict({
2020 "create_function": create_element,
2021 "configure_function": configure_element,
2023 "connector_types": [],
2024 "box_attributes": ["Lifetime"],