2 # -*- coding: utf-8 -*-
4 from nepi.util import tags
5 from nepi.util.constants import AF_INET, ApplicationStatus as AS, \
6 FactoryCategories as FC
7 from nepi.util.tunchannel_impl import \
8 preconfigure_tunchannel, postconfigure_tunchannel, \
9 wait_tunchannel, create_tunchannel
12 wifi_standards = dict({
13 "WIFI_PHY_STANDARD_holland": 5,
14 "WIFI_PHY_STANDARD_80211p_SCH": 7,
15 "WIFI_PHY_STANDARD_80211_5Mhz": 4,
16 "WIFI_PHY_UNKNOWN": 8,
17 "WIFI_PHY_STANDARD_80211_10Mhz": 3,
18 "WIFI_PHY_STANDARD_80211g": 2,
19 "WIFI_PHY_STANDARD_80211p_CCH": 6,
20 "WIFI_PHY_STANDARD_80211a": 0,
21 "WIFI_PHY_STANDARD_80211b": 1
25 "Icmpv4L4Protocol": 1,
30 service_flow_direction = dict({
32 "SF_DIRECTION_DOWN": 0,
35 service_flow_scheduling_type = dict ({
45 def _get_ipv4_protocol_guid(testbed_instance, node_guid):
46 # search for the Ipv4L3Protocol asociated with the device
47 protos_guids = testbed_instance.get_connected(node_guid, "protos", "node")
48 if len(protos_guids) == 0:
49 raise RuntimeError("No protocols where found for the node %d" % node_guid)
51 for proto_guid in protos_guids:
52 proto_factory_id = testbed_instance._create[proto_guid]
53 if proto_factory_id == "ns3::Ipv4L3Protocol":
54 ipv4_guid = proto_guid
57 raise RuntimeError("No Ipv4L3Protocol associated to node %d. \
58 can't add Ipv4 addresses" % node_guid)
61 def _get_node_guid(testbed_instance, guid):
62 # search for the node asociated with the device
63 node_guids = testbed_instance.get_connected(guid, "node", "devs")
64 if len(node_guids) == 0:
65 raise RuntimeError("Can't instantiate interface %d outside netns \
67 node_guid = node_guids[0]
70 def _get_dev_number(testbed_instance, guid):
71 node_guid = _get_node_guid(testbed_instance, guid)
72 dev_guids = testbed_instance.get_connected(node_guid, "devs", "node")
74 for guid_ in dev_guids:
78 return interface_number
80 def _follow_trace(testbed_instance, guid, trace_id, filename):
81 testbed_instance.follow_trace(guid, trace_id, filename)
82 filepath = testbed_instance.trace_filepath(guid, trace_id)
85 ### create traces functions ###
87 def p2pascii_trace(testbed_instance, guid, trace_id):
88 node_guid = _get_node_guid(testbed_instance, guid)
89 interface_number = _get_dev_number(testbed_instance, guid)
90 element = testbed_instance._elements[guid]
91 filename = "trace-p2p-node-%d-dev-%d.tr" % (node_guid, interface_number)
92 filepath = _follow_trace(testbed_instance, guid, trace_id, filename)
93 helper = testbed_instance.ns3.PointToPointHelper()
94 asciiHelper = testbed_instance.ns3.AsciiTraceHelper()
95 stream = asciiHelper.CreateFileStream(filepath)
96 helper.EnableAscii(stream, element)
98 def p2ppcap_trace(testbed_instance, guid, trace_id):
99 node_guid = _get_node_guid(testbed_instance, guid)
100 interface_number = _get_dev_number(testbed_instance, guid)
101 element = testbed_instance._elements[guid]
102 filename = "trace-p2p-node-%d-dev-%d.pcap" % (node_guid, interface_number)
103 filepath = _follow_trace(testbed_instance, guid, trace_id, filename)
104 helper = testbed_instance.ns3.PointToPointHelper()
105 helper.EnablePcap(filepath, element, explicitFilename = True)
107 def _csmapcap_trace(testbed_instance, guid, trace_id, promisc):
108 node_guid = _get_node_guid(testbed_instance, guid)
109 interface_number = _get_dev_number(testbed_instance, guid)
110 element = testbed_instance._elements[guid]
111 filename = "trace-csma-node-%d-dev-%d.pcap" % (node_guid, interface_number)
112 filepath = _follow_trace(testbed_instance, guid, trace_id, filename)
113 helper = testbed_instance.ns3.CsmaHelper()
114 helper.EnablePcap(filepath, element, promiscuous = promisc,
115 explicitFilename = True)
117 def csmapcap_trace(testbed_instance, guid, trace_id):
119 _csmapcap_trace(testbed_instance, guid, trace_id, promisc)
121 def csmapcap_promisc_trace(testbed_instance, guid, trace_id):
123 _csmapcap_trace(testbed_instance, guid, trace_id, promisc)
125 def fdpcap_trace(testbed_instance, guid, trace_id):
126 node_guid = _get_node_guid(testbed_instance, guid)
127 interface_number = _get_dev_number(testbed_instance, guid)
128 element = testbed_instance._elements[guid]
129 filename = "trace-fd-node-%d-dev-%d.pcap" % (node_guid, interface_number)
130 filepath = _follow_trace(testbed_instance, guid, trace_id, filename)
131 helper = testbed_instance.ns3.FileDescriptorHelper()
132 helper.EnablePcap(filepath, element, explicitFilename = True)
134 def yanswifipcap_trace(testbed_instance, guid, trace_id):
135 dev_guid = testbed_instance.get_connected(guid, "dev", "phy")[0]
136 node_guid = _get_node_guid(testbed_instance, dev_guid)
137 interface_number = _get_dev_number(testbed_instance, dev_guid)
138 element = testbed_instance._elements[dev_guid]
139 filename = "trace-yanswifi-node-%d-dev-%d.pcap" % (node_guid, interface_number)
140 filepath = _follow_trace(testbed_instance, guid, trace_id, filename)
141 helper = testbed_instance.ns3.YansWifiPhyHelper()
142 helper.EnablePcap(filepath, element, explicitFilename = True)
144 def wimaxascii_trace(testbed_instance, guid, trace_id):
145 node_guid = _get_node_guid(testbed_instance, guid)
146 interface_number = _get_dev_number(testbed_instance, guid)
147 element = testbed_instance._elements[guid]
148 filename = "trace-wimax-node-%d-dev-%d.tr" % (node_guid, interface_number)
149 filepath = _follow_trace(testbed_instance, guid, trace_id, filename)
150 helper = testbed_instance.ns3.WimaxHelper()
151 asciiHelper = testbed_instance.ns3.AsciiTraceHelper()
152 stream = asciiHelper.CreateFileStream (filepath)
153 helper.EnableAscii(stream, element)
154 #helper.EnableLogComponents()
156 def wimaxpcap_trace(testbed_instance, guid, trace_id):
157 node_guid = _get_node_guid(testbed_instance, guid)
158 interface_number = _get_dev_number(testbed_instance, guid)
159 element = testbed_instance._elements[guid]
160 filename = "trace-wimax-node-%d-dev-%d.pcap" % (node_guid, interface_number)
161 filepath = _follow_trace(testbed_instance, guid, trace_id, filename)
162 helper = testbed_instance.ns3.WimaxHelper()
163 helper.EnablePcap(filepath, element, explicitFilename = True)
165 def rtt_trace(testbed_instance, guid, trace_id):
166 element = testbed_instance._elements[guid]
167 helper = testbed_instance.ns3.PlotHelper()
168 prefix = "trace-app-%d" % (guid, )
169 filename = helper.GetFilenameFromSource(prefix, element, trace_id)
170 filepath = _follow_trace(testbed_instance, guid, trace_id, filename)
171 prefix = filepath[:filepath.find(prefix)+len(prefix)]
172 helper.EnableTrace(element, trace_id, prefix, "T")
174 trace_functions = dict({
175 "P2PPcapTrace": p2ppcap_trace,
176 "P2PAsciiTrace": p2pascii_trace,
177 "CsmaPcapTrace": csmapcap_trace,
178 "CsmaPcapPromiscTrace": csmapcap_promisc_trace,
179 "FileDescriptorPcapTrace": fdpcap_trace,
180 "YansWifiPhyPcapTrace": yanswifipcap_trace,
181 "WimaxPcapTrace": wimaxpcap_trace,
182 "WimaxAsciiTrace": wimaxascii_trace,
186 ### Creation functions ###
188 def create_element(testbed_instance, guid):
189 element_factory = testbed_instance.ns3.ObjectFactory()
190 factory_id = testbed_instance._create[guid]
191 element_factory.SetTypeId(factory_id)
192 construct_parameters = testbed_instance._get_construct_parameters(guid)
193 for name, value in construct_parameters.iteritems():
194 ns3_value = testbed_instance._to_ns3_value(guid, name, value)
195 element_factory.Set(name, ns3_value)
196 element = element_factory.Create()
197 testbed_instance._elements[guid] = element
199 def create_node(testbed_instance, guid):
200 create_element(testbed_instance, guid)
201 element = testbed_instance._elements[guid]
202 element.AggregateObject(testbed_instance.ns3.PacketSocketFactory())
204 def create_wifi_standard_model(testbed_instance, guid):
205 create_element(testbed_instance, guid)
206 element = testbed_instance._elements[guid]
207 parameters = testbed_instance._get_parameters(guid)
208 standard = parameters.get("Standard")
210 raise RuntimeError("No wifi standard set for %d" % guid)
211 element.ConfigureStandard(wifi_standards[standard])
213 def create_waypoint_mobility(testbed_instance, guid):
214 create_element(testbed_instance, guid)
215 element = testbed_instance._elements[guid]
216 parameters = testbed_instance._get_parameters(guid)
217 ns3 = testbed_instance.ns3
218 waypoints = parameters.get("WaypointList", "")
219 waypoints = re.sub(" |\(|\)", "", waypoints)
220 for swp in waypoints.split(","):
224 pos = ns3.Vector(float(dwp[1]), float(dwp[2]), float(dwp[3]))
225 waypoint = ns3.Waypoint(time, pos)
226 element.AddWaypoint(waypoint)
228 def create_ipv4protocol(testbed_instance, guid):
229 create_element(testbed_instance, guid)
230 element = testbed_instance._elements[guid]
231 list_routing = testbed_instance.ns3.Ipv4ListRouting()
232 element.SetRoutingProtocol(list_routing)
233 static_routing = testbed_instance.ns3.Ipv4StaticRouting()
234 list_routing.AddRoutingProtocol(static_routing, 1)
236 def create_element_no_constructor(testbed_instance, guid):
237 """ Create function for ns3 classes for which
238 TypeId.HasConstructor == False"""
239 factory_id = testbed_instance._create[guid]
240 factory_name = factory_id.replace("ns3::", "")
241 constructor = getattr(testbed_instance.ns3, factory_name)
242 element = constructor()
243 testbed_instance._elements[guid] = element
245 def create_base_station(testbed_instance, guid):
246 node_guid = _get_node_guid(testbed_instance, guid)
247 node = testbed_instance._elements[node_guid]
248 phy_guids = testbed_instance.get_connected(guid, "phy", "dev")
249 if len(phy_guids) == 0:
250 raise RuntimeError("No PHY was found for station %d" % guid)
251 phy = testbed_instance._elements[phy_guids[0]]
252 uplnk_guids = testbed_instance.get_connected(guid, "uplnk", "dev")
253 if len(uplnk_guids) == 0:
254 raise RuntimeError("No uplink scheduler was found for station %d" % guid)
255 uplnk = testbed_instance._elements[uplnk_guids[0]]
256 dwnlnk_guids = testbed_instance.get_connected(guid, "dwnlnk", "dev")
257 if len(dwnlnk_guids) == 0:
258 raise RuntimeError("No downlink scheduler was found for station %d" % guid)
259 dwnlnk = testbed_instance._elements[dwnlnk_guids[0]]
260 element = testbed_instance.ns3.BaseStationNetDevice(node, phy, uplnk, dwnlnk)
261 testbed_instance._elements[guid] = element
263 def create_subscriber_station(testbed_instance, guid):
264 node_guid = _get_node_guid(testbed_instance, guid)
265 node = testbed_instance._elements[node_guid]
266 phy_guids = testbed_instance.get_connected(guid, "phy", "dev")
267 if len(phy_guids) == 0:
268 raise RuntimeError("No PHY was found for station %d" % guid)
269 phy = testbed_instance._elements[phy_guids[0]]
270 element = testbed_instance.ns3.SubscriberStationNetDevice(node, phy)
271 element.SetModulationType(testbed_instance.ns3.WimaxPhy.MODULATION_TYPE_QAM16_12)
272 testbed_instance._elements[guid] = element
274 def create_wimax_channel(testbed_instance, guid):
275 element = testbed_instance.ns3.SimpleOfdmWimaxChannel(testbed_instance.ns3.SimpleOfdmWimaxChannel.COST231_PROPAGATION)
276 testbed_instance._elements[guid] = element
278 def create_wimax_phy(testbed_instance, guid):
279 element = testbed_instance.ns3.SimpleOfdmWimaxPhy()
280 testbed_instance._elements[guid] = element
282 def create_service_flow(testbed_instance, guid):
283 parameters = testbed_instance._get_parameters(guid)
284 direction = parameters.get("Direction")
285 if direction == None:
286 raise RuntimeError("No SchedulingType was found for service flow %d" % guid)
287 sched = parameters.get("SchedulingType")
289 raise RuntimeError("No SchedulingType was found for service flow %d" % guid)
290 ServiceFlow = testbed_instance.ns3.ServiceFlow
291 direction = service_flow_direction[direction]
292 sched = service_flow_scheduling_type[sched]
293 element = ServiceFlow(direction)
294 element.SetCsSpecification(ServiceFlow.IPV4)
295 element.SetServiceSchedulingType(sched)
296 element.SetMaxSustainedTrafficRate(100)
297 element.SetMinReservedTrafficRate(1000000)
298 element.SetMinTolerableTrafficRate(1000000)
299 element.SetMaximumLatency(100)
300 element.SetMaxTrafficBurst(2000)
301 element.SetTrafficPriority(1)
302 element.SetUnsolicitedGrantInterval(1)
303 element.SetMaxSustainedTrafficRate(70)
304 element.SetToleratedJitter(10)
305 element.SetSduSize(49)
306 element.SetRequestTransmissionPolicy(0)
307 testbed_instance._elements[guid] = element
309 def create_ipcs_classifier_record(testbed_instance, guid):
310 parameters = testbed_instance._get_parameters(guid)
311 src_address = parameters.get("SrcAddress")
312 if src_address == None:
313 raise RuntimeError("No SrcAddress was found for classifier %d" % guid)
314 src_address = testbed_instance.ns3.Ipv4Address(src_address)
315 src_mask = parameters.get("SrcMask")
317 raise RuntimeError("No SrcMask was found for classifier %d" % guid)
318 src_mask = testbed_instance.ns3.Ipv4Mask(src_mask)
319 dst_address = parameters.get("DstAddress")
320 if dst_address == None:
321 raise RuntimeError("No Dstddress was found for classifier %d" % guid)
322 dst_address = testbed_instance.ns3.Ipv4Address(dst_address)
323 dst_mask = parameters.get("DstMask")
325 raise RuntimeError("No DstMask was found for classifier %d" % guid)
326 dst_mask = testbed_instance.ns3.Ipv4Mask(dst_mask)
327 src_port_low = parameters.get("SrcPortLow")
328 if src_port_low == None:
329 raise RuntimeError("No SrcPortLow was found for classifier %d" % guid)
330 src_port_high = parameters.get("SrcPortHigh")
331 if src_port_high == None:
332 raise RuntimeError("No SrcPortHigh was found for classifier %d" % guid)
333 dst_port_low = parameters.get("DstPortLow")
334 if dst_port_low == None:
335 raise RuntimeError("No DstPortLow was found for classifier %d" % guid)
336 dst_port_high = parameters.get("DstPortHigh")
337 if dst_port_high == None:
338 raise RuntimeError("No DstPortHigh was found for classifier %d" % guid)
339 protocol = parameters.get("Protocol")
340 if protocol == None or protocol not in l4_protocols:
341 raise RuntimeError("No Protocol was found for classifier %d" % guid)
342 priority = parameters.get("Priority")
344 raise RuntimeError("No Priority was found for classifier %d" % guid)
345 element = testbed_instance.ns3.IpcsClassifierRecord(src_address, src_mask,
346 dst_address, dst_mask, src_port_low, src_port_high, dst_port_low,
347 dst_port_high, l4_protocols[protocol], priority)
348 testbed_instance._elements[guid] = element
350 ### Start/Stop functions ###
352 def start_application(testbed_instance, guid):
353 element = testbed_instance.elements[guid]
354 # BUG: without doing this explicit call it doesn't start!!!
355 # Shouldn't be enough to set the StartTime?
358 def stop_application(testbed_instance, guid):
359 element = testbed_instance.elements[guid]
360 now = testbed_instance.ns3.Simulator.Now()
361 element.SetStopTime(now)
363 ### Status functions ###
365 def status_application(testbed_instance, guid):
366 if guid not in testbed_instance.elements.keys():
367 raise RuntimeError("Can't get status on guid %d" % guid )
368 now = testbed_instance.ns3.Simulator.Now()
370 return AS.STATUS_NOT_STARTED
371 app = testbed_instance.elements[guid]
372 parameters = testbed_instance._get_parameters(guid)
373 start_value = parameters.get("StartTime")
374 if start_value != None:
375 start_time = testbed_instance.ns3.Time(start_value)
376 if now.Compare(start_time) < 0:
377 return AS.STATUS_NOT_STARTED
378 stop_value = parameters.get("StopTime")
379 if stop_value != None:
380 stop_time = testbed_instance.ns3.Time(stop_value)
381 if now.Compare(stop_time) < 0:
382 return AS.STATUS_RUNNING
384 return AS.STATUS_FINISHED
385 return AS.STATUS_UNDETERMINED
387 ### Configure functions ###
389 def configure_traces(testbed_instance, guid):
390 traces = testbed_instance._get_traces(guid)
391 for trace_id in traces:
392 trace_func = trace_functions[trace_id]
393 trace_func(testbed_instance, guid, trace_id)
395 def configure_element(testbed_instance, guid):
396 configure_traces(testbed_instance, guid)
398 def configure_device(testbed_instance, guid):
399 configure_traces(testbed_instance, guid)
401 element = testbed_instance._elements[guid]
403 parameters = testbed_instance._get_parameters(guid)
404 address = parameters.get("macAddress")
406 macaddr = testbed_instance.ns3.Mac48Address(address)
408 macaddr = testbed_instance.ns3.Mac48Address.Allocate()
409 element.SetAddress(macaddr)
411 if not guid in testbed_instance._add_address:
413 # search for the node asociated with the device
414 node_guid = _get_node_guid(testbed_instance, guid)
415 node = testbed_instance.elements[node_guid]
416 # search for the Ipv4L3Protocol asociated with the device
417 ipv4_guid = _get_ipv4_protocol_guid(testbed_instance, node_guid)
418 ipv4 = testbed_instance._elements[ipv4_guid]
419 ns3 = testbed_instance.ns3
421 addresses = testbed_instance._add_address[guid]
422 for address in addresses:
423 (address, netprefix, broadcast) = address
424 # TODO: missing IPV6 addresses!!
425 ifindex = ipv4.AddInterface(element)
426 inaddr = ns3.Ipv4InterfaceAddress(ns3.Ipv4Address(address),
427 ns3.Ipv4Mask("/%d" % netprefix))
428 ipv4.AddAddress(ifindex, inaddr)
429 ipv4.SetMetric(ifindex, 1)
432 def _add_static_route(ns3, static_routing,
433 address, netprefix, nexthop_address, ifindex):
435 # Default route: 0.0.0.0/0
436 static_routing.SetDefaultRoute(nexthop_address, ifindex)
437 elif netprefix == 32:
438 # Host route: x.y.z.w/32
439 static_routing.AddHostRouteTo(address, nexthop_address, ifindex)
441 # Network route: x.y.z.w/n
442 mask = ns3.Ipv4Mask("/%d" % netprefix)
443 static_routing.AddNetworkRouteTo(address, mask, nexthop_address,
446 def _add_static_route_if(ns3, static_routing, address, netprefix, ifindex):
448 # Default route: 0.0.0.0/0
449 static_routing.SetDefaultRoute(ifindex)
450 elif netprefix == 32:
451 # Host route: x.y.z.w/32
452 static_routing.AddHostRouteTo(address, ifindex)
454 # Network route: x.y.z.w/n
455 mask = ns3.Ipv4Mask("/%d" % netprefix)
456 static_routing.AddNetworkRouteTo(address, mask, ifindex)
458 def configure_node(testbed_instance, guid):
459 configure_traces(testbed_instance, guid)
461 element = testbed_instance._elements[guid]
462 if not guid in testbed_instance._add_route:
464 # search for the Ipv4L3Protocol asociated with the device
465 ipv4_guid = _get_ipv4_protocol_guid(testbed_instance, guid)
466 ipv4 = testbed_instance._elements[ipv4_guid]
467 list_routing = ipv4.GetRoutingProtocol()
468 (static_routing, priority) = list_routing.GetRoutingProtocol(0)
469 ns3 = testbed_instance.ns3
470 routes = testbed_instance._add_route[guid]
472 (destination, netprefix, nexthop, metric) = route
473 address = ns3.Ipv4Address(destination)
475 nexthop_address = ns3.Ipv4Address(nexthop)
477 # TODO: HACKISH way of getting the ifindex... improve this
478 nifaces = ipv4.GetNInterfaces()
479 for ifidx in xrange(nifaces):
480 iface = ipv4.GetInterface(ifidx)
481 naddress = iface.GetNAddresses()
482 for addridx in xrange(naddress):
483 ifaddr = iface.GetAddress(addridx)
484 ifmask = ifaddr.GetMask()
485 ifindex = ipv4.GetInterfaceForPrefix(nexthop_address, ifmask)
489 # Check previous ptp routes
490 for chaindest, chainprefix, chainhop in routes:
491 if chaindest == nexthop and chainprefix == 32:
492 chainhop_address = ns3.Ipv4Address(chainhop)
493 for ifidx in xrange(nifaces):
494 iface = ipv4.GetInterface(ifidx)
495 naddress = iface.GetNAddresses()
496 for addridx in xrange(naddress):
497 ifaddr = iface.GetAddress(addridx)
498 ifmask = ifaddr.GetMask()
499 ifindex = ipv4.GetInterfaceForPrefix(chainhop_address, ifmask)
503 raise RuntimeError, "Cannot associate interface for routing entry:" \
504 "%s/%s -> %s. At node %s" % (destination, netprefix, nexthop, guid)
505 _add_static_route(ns3, static_routing,
506 address, netprefix, nexthop_address, ifindex)
508 mask = ns3.Ipv4Mask("/%d" % netprefix)
509 ifindex = ipv4.GetInterfaceForPrefix(address, mask)
511 raise RuntimeError, "Cannot associate interface for routing entry:" \
512 "%s/%s -> %s. At node %s" % (destination, netprefix, nexthop, guid)
513 _add_static_route_if(ns3, static_routing,
514 address, netprefix, nexthop_address, ifindex)
516 def configure_station(testbed_instance, guid):
517 configure_device(testbed_instance, guid)
518 element = testbed_instance._elements[guid]
523 factories_order = ["ns3::BasicEnergySource",
524 "ns3::WifiRadioEnergyModel",
525 "ns3::BSSchedulerRtps",
526 "ns3::BSSchedulerSimple",
527 "ns3::UdpTraceClient",
533 "ns3::flame::FlameProtocol",
534 "ns3::flame::FlameRtable",
535 "ns3::dot11s::AirtimeLinkMetricCalculator",
536 "ns3::dot11s::HwmpProtocol",
537 "ns3::dot11s::HwmpRtable",
538 "ns3::dot11s::PeerManagementProtocol",
539 "ns3::dot11s::PeerLink",
540 "ns3::MeshWifiInterfaceMac",
541 "ns3::MeshPointDevice",
544 "ns3::UanPhyCalcSinrDual",
545 "ns3::UanPhyPerGenDefault",
547 "ns3::UanPropModelThorp",
549 "ns3::UanNoiseModelDefault",
551 "ns3::UanPropModelIdeal",
552 "ns3::UanTransducerHd",
553 "ns3::UanPhyCalcSinrDefault",
555 "ns3::UanPhyCalcSinrFhFsk",
556 "ns3::UanPhyPerUmodem",
559 "ns3::AthstatsWifiTraceSink",
562 "ns3::NonCommunicatingNetDevice",
563 "ns3::HalfDuplexIdealPhy",
564 "ns3::AlohaNoackNetDevice",
565 "ns3::SpectrumAnalyzer",
566 "ns3::WaveformGenerator",
567 "ns3::MultiModelSpectrumChannel",
568 "ns3::SingleModelSpectrumChannel",
569 "ns3::MsduStandardAggregator",
573 "ns3::QadhocWifiMac",
574 "ns3::MinstrelWifiManager",
575 "ns3::CaraWifiManager",
576 "ns3::AarfcdWifiManager",
577 "ns3::OnoeWifiManager",
578 "ns3::AmrrWifiManager",
579 "ns3::ConstantRateWifiManager",
580 "ns3::IdealWifiManager",
581 "ns3::AarfWifiManager",
582 "ns3::ArfWifiManager",
583 "ns3::WifiNetDevice",
589 "ns3::YansWifiChannel",
591 "ns3::NistErrorRateModel",
592 "ns3::YansErrorRateModel",
593 "ns3::WaypointMobilityModel",
594 "ns3::ConstantAccelerationMobilityModel",
595 "ns3::RandomDirection2dMobilityModel",
596 "ns3::RandomWalk2dMobilityModel",
597 "ns3::SteadyStateRandomWaypointMobilityModel",
598 "ns3::RandomWaypointMobilityModel",
599 "ns3::GaussMarkovMobilityModel",
600 "ns3::ConstantVelocityMobilityModel",
601 "ns3::ConstantPositionMobilityModel",
602 "ns3::ListPositionAllocator",
603 "ns3::GridPositionAllocator",
604 "ns3::RandomRectanglePositionAllocator",
605 "ns3::RandomBoxPositionAllocator",
606 "ns3::RandomDiscPositionAllocator",
607 "ns3::UniformDiscPositionAllocator",
608 "ns3::HierarchicalMobilityModel",
609 "ns3::aodv::RoutingProtocol",
610 "ns3::UdpEchoServer",
611 "ns3::UdpEchoClient",
613 "ns3::OnOffApplication",
614 "ns3::VirtualNetDevice",
615 "ns3::FileDescriptorNetDevice",
616 "ns3::Nepi::TunChannel",
618 "ns3::BridgeChannel",
619 "ns3::BridgeNetDevice",
622 "ns3::CsmaNetDevice",
623 "ns3::PointToPointRemoteChannel",
624 "ns3::PointToPointChannel",
625 "ns3::PointToPointNetDevice",
626 "ns3::NscTcpL4Protocol",
627 "ns3::Icmpv6L4Protocol",
628 "ns3::Ipv6OptionPad1",
629 "ns3::Ipv6OptionPadn",
630 "ns3::Ipv6OptionJumbogram",
631 "ns3::Ipv6OptionRouterAlert",
632 "ns3::Ipv6ExtensionHopByHop",
633 "ns3::Ipv6ExtensionDestination",
634 "ns3::Ipv6ExtensionFragment",
635 "ns3::Ipv6ExtensionRouting",
636 "ns3::Ipv6ExtensionLooseRouting",
637 "ns3::Ipv6ExtensionESP",
638 "ns3::Ipv6ExtensionAH",
639 "ns3::Ipv6L3Protocol",
640 "ns3::LoopbackNetDevice",
641 "ns3::Icmpv4L4Protocol",
642 "ns3::RttMeanDeviation",
643 "ns3::ArpL3Protocol",
644 "ns3::TcpL4Protocol",
645 "ns3::UdpL4Protocol",
646 "ns3::Ipv4L3Protocol",
647 "ns3::SimpleNetDevice",
648 "ns3::SimpleChannel",
650 "ns3::DropTailQueue",
652 "ns3::FriisSpectrumPropagationLossModel",
653 "ns3::Cost231PropagationLossModel",
654 "ns3::JakesPropagationLossModel",
655 "ns3::RandomPropagationLossModel",
656 "ns3::FriisPropagationLossModel",
657 "ns3::TwoRayGroundPropagationLossModel",
658 "ns3::LogDistancePropagationLossModel",
659 "ns3::ThreeLogDistancePropagationLossModel",
660 "ns3::NakagamiPropagationLossModel",
661 "ns3::FixedRssLossModel",
662 "ns3::MatrixPropagationLossModel",
663 "ns3::RangePropagationLossModel",
664 "ns3::RandomPropagationDelayModel",
665 "ns3::ConstantSpeedPropagationDelayModel",
666 "ns3::RateErrorModel",
667 "ns3::ListErrorModel",
668 "ns3::ReceiveListErrorModel",
670 "ns3::EnergySourceContainer",
671 "ns3::BSSchedulerRtps",
672 "ns3::BSSchedulerSimple",
673 "ns3::SimpleOfdmWimaxChannel",
674 "ns3::SimpleOfdmWimaxPhy",
675 "ns3::UplinkSchedulerMBQoS",
676 "ns3::UplinkSchedulerRtps",
677 "ns3::UplinkSchedulerSimple",
678 "ns3::IpcsClassifierRecord",
680 "ns3::BaseStationNetDevice",
681 "ns3::SubscriberStationNetDevice",
684 factories_info = dict({
686 "category": FC.CATEGORY_APPLICATIONS,
687 "create_function": create_element,
688 "configure_function": configure_element,
690 "connector_types": [],
691 "stop_function": stop_application,
692 "start_function": start_application,
693 "status_function": status_application,
694 "box_attributes": ["MaxPackets",
702 "ns3::UdpL4Protocol": dict({
703 "category": FC.CATEGORY_PROTOCOLS,
704 "create_function": create_element,
705 "configure_function": configure_element,
707 "connector_types": ["node"],
708 "box_attributes": ["ProtocolNumber"],
710 "ns3::RandomDiscPositionAllocator": dict({
711 "category": FC.CATEGORY_MOBILITY_MODELS,
712 "create_function": create_element,
713 "configure_function": configure_element,
715 "connector_types": [],
716 "box_attributes": ["Theta",
720 "tags": [tags.MOBILE],
723 "category": FC.CATEGORY_NODES,
724 "create_function": create_node,
725 "configure_function": configure_node,
727 "connector_types": ["devs", "apps", "protos", "mobility"],
728 "allow_routes": True,
729 "box_attributes": [],
731 "ns3::GridPositionAllocator": dict({
732 "category": FC.CATEGORY_MOBILITY_MODELS,
733 "create_function": create_element,
734 "configure_function": configure_element,
736 "connector_types": [],
737 "box_attributes": ["GridWidth",
743 "tags": [tags.MOBILE],
745 "ns3::TapBridge": dict({
746 "category": FC.CATEGORY_DEVICES,
747 "create_function": create_element,
748 "configure_function": configure_element,
750 "connector_types": [],
751 "allow_addresses": True,
752 "box_attributes": ["Mtu",
761 "ns3::FlowMonitor": dict({
763 "create_function": create_element,
764 "configure_function": configure_element,
766 "connector_types": [],
767 "box_attributes": ["MaxPerHopDelay",
770 "PacketSizeBinWidth",
771 "FlowInterruptionsBinWidth",
772 "FlowInterruptionsMinTime"],
774 "ns3::ConstantVelocityMobilityModel": dict({
775 "category": FC.CATEGORY_MOBILITY_MODELS,
776 "create_function": create_element,
777 "configure_function": configure_element,
779 "connector_types": ["node"],
780 "box_attributes": ["Position",
782 "tags": [tags.MOBILE],
784 "ns3::V4Ping": dict({
785 "category": FC.CATEGORY_APPLICATIONS,
786 "create_function": create_element,
787 "configure_function": configure_element,
789 "connector_types": ["node"],
790 "stop_function": stop_application,
791 "start_function": start_application,
792 "status_function": status_application,
793 "box_attributes": ["Remote",
801 "ns3::dot11s::PeerLink": dict({
803 "create_function": create_element,
804 "configure_function": configure_element,
806 "connector_types": [],
807 "box_attributes": ["RetryTimeout",
814 "ns3::PointToPointNetDevice": dict({
815 "category": FC.CATEGORY_DEVICES,
816 "create_function": create_element,
817 "configure_function": configure_device,
819 "connector_types": ["node", "err", "queue", "chan"],
820 "allow_addresses": True,
821 "box_attributes": ["Mtu",
825 "traces": ["p2ppcap", "p2pascii"]
827 "ns3::NakagamiPropagationLossModel": dict({
828 "category": FC.CATEGORY_LOSS_MODELS,
829 "create_function": create_element,
830 "configure_function": configure_element,
832 "connector_types": [],
833 "box_attributes": ["Distance1",
839 "ns3::AarfWifiManager": dict({
840 "category": FC.CATEGORY_MANAGERS,
841 "create_function": create_element,
842 "configure_function": configure_element,
844 "connector_types": ["dev"],
845 "box_attributes": ["SuccessK",
847 "MaxSuccessThreshold",
849 "MinSuccessThreshold",
854 "FragmentationThreshold",
857 "ns3::Ipv6OptionJumbogram": dict({
859 "create_function": create_element,
860 "configure_function": configure_element,
862 "connector_types": [],
863 "box_attributes": ["OptionNumber"],
865 "ns3::TwoRayGroundPropagationLossModel": dict({
866 "category": FC.CATEGORY_LOSS_MODELS,
867 "create_function": create_element,
868 "configure_function": configure_element,
870 "connector_types": [],
871 "box_attributes": ["Lambda",
876 "ns3::OnOffApplication": dict({
877 "category": FC.CATEGORY_APPLICATIONS,
878 "create_function": create_element,
879 "configure_function": configure_element,
881 "connector_types": ["node"],
882 "stop_function": stop_application,
883 "start_function": start_application,
884 "status_function": status_application,
885 "box_attributes": ["DataRate",
895 "ns3::AdhocWifiMac": dict({
896 "category": FC.CATEGORY_MAC_MODELS,
897 "create_function": create_element,
898 "configure_function": configure_element,
900 "connector_types": [],
901 "box_attributes": ["CtsTimeout",
903 "BasicBlockAckTimeout",
904 "CompressedBlockAckTimeout",
909 "MaxPropagationDelay",
912 "ns3::ConstantAccelerationMobilityModel": dict({
913 "category": FC.CATEGORY_MOBILITY_MODELS,
914 "create_function": create_element,
915 "configure_function": configure_element,
917 "connector_types": ["node"],
918 "box_attributes": ["Position",
920 "tags": [tags.MOBILE],
922 "ns3::GaussMarkovMobilityModel": dict({
923 "category": FC.CATEGORY_MOBILITY_MODELS,
924 "create_function": create_element,
925 "configure_function": configure_element,
927 "connector_types": [],
928 "box_attributes": ["Bounds",
939 "tags": [tags.MOBILE],
941 "ns3::dot11s::HwmpProtocol": dict({
942 "category": FC.CATEGORY_PROTOCOLS,
943 "create_function": create_element,
944 "configure_function": configure_element,
946 "connector_types": [],
947 "box_attributes": ["RandomStart",
949 "Dot11MeshHWMPmaxPREQretries",
950 "Dot11MeshHWMPnetDiameterTraversalTime",
951 "Dot11MeshHWMPpreqMinInterval",
952 "Dot11MeshHWMPperrMinInterval",
953 "Dot11MeshHWMPactiveRootTimeout",
954 "Dot11MeshHWMPactivePathTimeout",
955 "Dot11MeshHWMPpathToRootInterval",
956 "Dot11MeshHWMPrannInterval",
958 "UnicastPerrThreshold",
959 "UnicastPreqThreshold",
960 "UnicastDataThreshold",
964 "ns3::NscTcpL4Protocol": dict({
965 "category": FC.CATEGORY_PROTOCOLS,
966 "create_function": create_element,
967 "configure_function": configure_element,
969 "connector_types": [],
970 "box_attributes": ["Library",
973 "ns3::dot11s::AirtimeLinkMetricCalculator": dict({
975 "create_function": create_element,
976 "configure_function": configure_element,
978 "connector_types": [],
979 "box_attributes": ["Dot11sMeshHeaderLength"],
981 "ns3::UanMacCw": dict({
983 "create_function": create_element,
984 "configure_function": configure_element,
986 "connector_types": [],
987 "box_attributes": ["CW",
990 "ns3::AthstatsWifiTraceSink": dict({
992 "create_function": create_element,
993 "configure_function": configure_element,
995 "connector_types": [],
996 "box_attributes": ["Interval"],
998 "ns3::FlameStack": dict({
1000 "create_function": create_element,
1001 "configure_function": configure_element,
1003 "connector_types": [],
1004 "box_attributes": [],
1006 "ns3::UanMacRc": dict({
1008 "create_function": create_element,
1009 "configure_function": configure_element,
1011 "connector_types": [],
1012 "box_attributes": ["RetryRate",
1019 "NumberOfRetryRates",
1022 "ns3::WaypointMobilityModel": dict({
1023 "category": FC.CATEGORY_MOBILITY_MODELS,
1024 "create_function": create_waypoint_mobility,
1025 "configure_function": configure_element,
1026 "help": "Waypoint-based mobility model.",
1027 "connector_types": ["node"],
1028 "box_attributes": ["WaypointsLeft",
1032 "tags": [tags.MOBILE],
1034 "ns3::FileDescriptorNetDevice": dict({
1035 "category": FC.CATEGORY_DEVICES,
1036 "create_function": create_element,
1037 "configure_function": configure_device,
1038 "help": "Network interface associated to a file descriptor",
1039 "connector_types": ["node", "->fd"],
1040 "allow_addresses": True,
1041 "box_attributes": ["Address",
1042 "LinuxSocketAddress",
1043 "tun_proto", "tun_addr", "tun_port", "tun_key"],
1044 "traces": ["fdpcap"]
1046 "ns3::Nepi::TunChannel": dict({
1047 "category": FC.CATEGORY_TUNNELS,
1048 "create_function": create_tunchannel,
1049 "preconfigure_function": preconfigure_tunchannel,
1050 "configure_function": postconfigure_tunchannel,
1051 "prestart_function": wait_tunchannel,
1052 "help": "Channel to forward FileDescriptorNetDevice data to "
1053 "other TAP interfaces supporting the NEPI tunneling protocol.",
1054 "connector_types": ["fd->", "udp", "tcp"],
1055 "allow_addresses": False,
1056 "box_attributes": ["tun_proto", "tun_addr", "tun_port", "tun_key"]
1058 "ns3::CsmaNetDevice": dict({
1059 "category": FC.CATEGORY_DEVICES,
1060 "create_function": create_element,
1061 "configure_function": configure_device,
1062 "help": "CSMA (carrier sense, multiple access) interface",
1063 "connector_types": ["node", "chan", "err", "queue"],
1064 "allow_addresses": True,
1065 "box_attributes": ["Address",
1069 "traces": ["csmapcap", "csmapcap_promisc"]
1071 "ns3::UanPropModelThorp": dict({
1073 "create_function": create_element,
1074 "configure_function": configure_element,
1076 "connector_types": [],
1077 "box_attributes": ["SpreadCoef"],
1079 "ns3::NqstaWifiMac": dict({
1080 "category": FC.CATEGORY_MAC_MODELS,
1081 "create_function": create_wifi_standard_model,
1082 "configure_function": configure_element,
1084 "connector_types": ["dev"],
1085 "box_attributes": ["ProbeRequestTimeout",
1086 "AssocRequestTimeout",
1090 "BasicBlockAckTimeout",
1091 "CompressedBlockAckTimeout",
1096 "MaxPropagationDelay",
1099 "ns3::Icmpv6L4Protocol": dict({
1100 "category": FC.CATEGORY_PROTOCOLS,
1101 "create_function": create_element,
1102 "configure_function": configure_element,
1104 "connector_types": ["node"],
1105 "box_attributes": ["DAD",
1108 "ns3::SimpleNetDevice": dict({
1109 "category": FC.CATEGORY_DEVICES,
1110 "create_function": create_element,
1111 "configure_function": configure_element,
1113 "connector_types": ["node", "chan"],
1114 "allow_addresses": True,
1115 "box_attributes": [],
1117 "ns3::FriisPropagationLossModel": dict({
1118 "category": FC.CATEGORY_LOSS_MODELS,
1119 "create_function": create_element,
1120 "configure_function": configure_element,
1122 "connector_types": [],
1123 "box_attributes": ["Lambda",
1127 "ns3::Ipv6OptionRouterAlert": dict({
1129 "create_function": create_element,
1130 "configure_function": configure_element,
1132 "connector_types": [],
1133 "box_attributes": ["OptionNumber"],
1135 "ns3::UniformDiscPositionAllocator": dict({
1136 "category": FC.CATEGORY_MOBILITY_MODELS,
1137 "create_function": create_element,
1138 "configure_function": configure_element,
1140 "connector_types": [],
1141 "box_attributes": ["rho",
1144 "tags": [tags.MOBILE],
1146 "ns3::RandomBoxPositionAllocator": dict({
1147 "category": FC.CATEGORY_MOBILITY_MODELS,
1148 "create_function": create_element,
1149 "configure_function": configure_element,
1151 "connector_types": [],
1152 "box_attributes": ["X",
1155 "tags": [tags.MOBILE],
1157 "ns3::Ipv6ExtensionDestination": dict({
1159 "create_function": create_element,
1160 "configure_function": configure_element,
1162 "connector_types": [],
1163 "box_attributes": ["ExtensionNumber"],
1165 "ns3::LoopbackNetDevice": dict({
1166 "category": FC.CATEGORY_DEVICES,
1167 "create_function": create_element,
1168 "configure_function": configure_element,
1170 "connector_types": [],
1171 "box_attributes": [],
1173 "ns3::ConstantSpeedPropagationDelayModel": dict({
1174 "category": FC.CATEGORY_DELAY_MODELS,
1175 "create_function": create_element,
1176 "configure_function": configure_element,
1178 "connector_types": ["chan"],
1179 "box_attributes": ["Speed"],
1181 "ns3::Ipv6ExtensionHopByHop": dict({
1183 "create_function": create_element,
1184 "configure_function": configure_element,
1186 "connector_types": [],
1187 "box_attributes": ["ExtensionNumber"],
1189 "ns3::BridgeChannel": dict({
1190 "category": FC.CATEGORY_CHANNELS,
1191 "create_function": create_element,
1192 "configure_function": configure_element,
1194 "connector_types": [],
1195 "box_attributes": [],
1197 "ns3::Radvd": dict({
1199 "create_function": create_element,
1200 "configure_function": configure_element,
1202 "connector_types": [],
1203 "box_attributes": ["StartTime",
1206 "ns3::PacketSocket": dict({
1208 "create_function": create_element,
1209 "configure_function": configure_element,
1211 "connector_types": [],
1212 "box_attributes": ["RcvBufSize"],
1214 "ns3::flame::FlameProtocol": dict({
1215 "category": FC.CATEGORY_PROTOCOLS,
1216 "create_function": create_element,
1217 "configure_function": configure_element,
1219 "connector_types": [],
1220 "box_attributes": ["BroadcastInterval",
1223 "ns3::Cost231PropagationLossModel": dict({
1224 "category": FC.CATEGORY_LOSS_MODELS,
1225 "create_function": create_element,
1226 "configure_function": configure_element,
1228 "connector_types": [],
1229 "box_attributes": ["Lambda",
1235 "ns3::Ipv6ExtensionESP": dict({
1237 "create_function": create_element,
1238 "configure_function": configure_element,
1240 "connector_types": [],
1241 "box_attributes": ["ExtensionNumber"],
1243 "ns3::CaraWifiManager": dict({
1244 "category": FC.CATEGORY_MANAGERS,
1245 "create_function": create_element,
1246 "configure_function": configure_element,
1248 "connector_types": ["dev"],
1249 "box_attributes": ["ProbeThreshold",
1257 "FragmentationThreshold",
1261 "ns3::RttMeanDeviation": dict({
1263 "create_function": create_element,
1264 "configure_function": configure_element,
1266 "connector_types": [],
1267 "box_attributes": ["Gain",
1269 "InitialEstimation",
1272 "ns3::Icmpv4L4Protocol": dict({
1273 "category": FC.CATEGORY_PROTOCOLS,
1274 "create_function": create_element,
1275 "configure_function": configure_element,
1277 "connector_types": ["node"],
1278 "box_attributes": ["ProtocolNumber"],
1280 "ns3::WaveformGenerator": dict({
1282 "create_function": create_element,
1283 "configure_function": configure_element,
1285 "connector_types": [],
1286 "box_attributes": ["Period",
1289 "ns3::YansWifiChannel": dict({
1290 "category": FC.CATEGORY_CHANNELS,
1291 "create_function": create_element,
1292 "configure_function": configure_element,
1294 "connector_types": ["phys", "delay", "loss"],
1295 "box_attributes": [],
1297 "ns3::SimpleChannel": dict({
1298 "category": FC.CATEGORY_CHANNELS,
1299 "create_function": create_element,
1300 "configure_function": configure_element,
1302 "connector_types": ["devs"],
1303 "box_attributes": [],
1305 "ns3::Ipv6ExtensionFragment": dict({
1307 "create_function": create_element,
1308 "configure_function": configure_element,
1310 "connector_types": [],
1311 "box_attributes": ["ExtensionNumber"],
1313 "ns3::Dot11sStack": dict({
1315 "create_function": create_element,
1316 "configure_function": configure_element,
1318 "connector_types": [],
1319 "box_attributes": ["Root"],
1321 "ns3::FriisSpectrumPropagationLossModel": dict({
1322 "category": FC.CATEGORY_LOSS_MODELS,
1323 "create_function": create_element,
1324 "configure_function": configure_element,
1326 "connector_types": [],
1327 "box_attributes": [],
1329 "ns3::RandomRectanglePositionAllocator": dict({
1330 "category": FC.CATEGORY_MOBILITY_MODELS,
1331 "create_function": create_element,
1332 "configure_function": configure_element,
1334 "connector_types": [],
1335 "box_attributes": ["X",
1337 "tags": [tags.MOBILE],
1339 "ns3::NqapWifiMac": dict({
1340 "category": FC.CATEGORY_MAC_MODELS,
1341 "create_function": create_wifi_standard_model,
1342 "configure_function": configure_element,
1344 "connector_types": ["dev"],
1345 "box_attributes": ["BeaconInterval",
1349 "BasicBlockAckTimeout",
1350 "CompressedBlockAckTimeout",
1355 "MaxPropagationDelay",
1358 "ns3::HierarchicalMobilityModel": dict({
1359 "category": FC.CATEGORY_MOBILITY_MODELS,
1360 "create_function": create_element,
1361 "configure_function": configure_element,
1363 "connector_types": ["node"],
1364 "box_attributes": ["Position",
1366 "tags": [tags.MOBILE],
1368 "ns3::ThreeLogDistancePropagationLossModel": dict({
1369 "category": FC.CATEGORY_LOSS_MODELS,
1370 "create_function": create_element,
1371 "configure_function": configure_element,
1373 "connector_types": [],
1374 "box_attributes": ["Distance0",
1382 "ns3::UanNoiseModelDefault": dict({
1384 "create_function": create_element,
1385 "configure_function": configure_element,
1387 "connector_types": [],
1388 "box_attributes": ["Wind",
1391 "ns3::dot11s::HwmpRtable": dict({
1393 "create_function": create_element,
1394 "configure_function": configure_element,
1396 "connector_types": [],
1397 "box_attributes": [],
1399 "ns3::PacketBurst": dict({
1401 "create_function": create_element,
1402 "configure_function": configure_element,
1404 "connector_types": [],
1405 "box_attributes": [],
1407 "ns3::RandomPropagationDelayModel": dict({
1408 "category": FC.CATEGORY_DELAY_MODELS,
1409 "create_function": create_element,
1410 "configure_function": configure_element,
1412 "connector_types": [],
1413 "box_attributes": ["Variable"],
1415 "ns3::ArpL3Protocol": dict({
1416 "category": FC.CATEGORY_PROTOCOLS,
1417 "create_function": create_element,
1418 "configure_function": configure_element,
1420 "connector_types": ["node"],
1421 "box_attributes": [],
1423 "ns3::SteadyStateRandomWaypointMobilityModel": dict({
1424 "category": FC.CATEGORY_MOBILITY_MODELS,
1425 "create_function": create_element,
1426 "configure_function": configure_element,
1428 "connector_types": [],
1429 "box_attributes": ["MinSpeed",
1439 "tags": [tags.MOBILE],
1441 "ns3::BaseStationNetDevice": dict({
1442 "category": FC.CATEGORY_DEVICES,
1443 "create_function": create_base_station,
1444 "configure_function": configure_station,
1445 "help": "Base station for wireless mobile network",
1446 "connector_types": ["node", "chan", "phy", "uplnk", "dwnlnk"],
1447 "allow_addresses": True,
1448 "box_attributes": ["InitialRangInterval",
1454 "MaxRangCorrectionRetries",
1458 "traces": ["wimaxpcap", "wimaxascii"],
1460 "ns3::UdpServer": dict({
1461 "category": FC.CATEGORY_APPLICATIONS,
1462 "create_function": create_element,
1463 "configure_function": configure_element,
1465 "connector_types": ["node"],
1466 "stop_function": stop_application,
1467 "start_function": start_application,
1468 "status_function": status_application,
1469 "box_attributes": ["Port",
1474 "ns3::AarfcdWifiManager": dict({
1475 "category": FC.CATEGORY_MANAGERS,
1476 "create_function": create_element,
1477 "configure_function": configure_element,
1479 "connector_types": ["dev"],
1480 "box_attributes": ["SuccessK",
1482 "MaxSuccessThreshold",
1483 "MinTimerThreshold",
1484 "MinSuccessThreshold",
1487 "TurnOffRtsAfterRateDecrease",
1488 "TurnOnRtsAfterRateIncrease",
1493 "FragmentationThreshold",
1496 "ns3::UanTransducerHd": dict({
1498 "create_function": create_element,
1499 "configure_function": configure_element,
1501 "connector_types": [],
1502 "box_attributes": [],
1504 "ns3::LogDistancePropagationLossModel": dict({
1505 "category": FC.CATEGORY_LOSS_MODELS,
1506 "create_function": create_element,
1507 "configure_function": configure_element,
1509 "connector_types": ["prev", "next"],
1510 "box_attributes": ["Exponent",
1511 "ReferenceDistance",
1514 "ns3::EmuNetDevice": dict({
1515 "category": FC.CATEGORY_DEVICES,
1516 "create_function": create_element,
1517 "configure_function": configure_element,
1519 "connector_types": ["node", "queue"],
1520 "box_attributes": ["Mtu",
1527 "ns3::Ipv6ExtensionLooseRouting": dict({
1528 "category": FC.CATEGORY_ROUTING,
1529 "create_function": create_element,
1530 "configure_function": configure_element,
1532 "connector_types": [],
1533 "box_attributes": ["ExtensionNumber"],
1535 "ns3::RandomWaypointMobilityModel": dict({
1536 "category": FC.CATEGORY_MOBILITY_MODELS,
1537 "create_function": create_element,
1538 "configure_function": configure_element,
1540 "connector_types": ["node"],
1541 "box_attributes": ["Speed",
1545 "tags": [tags.MOBILE],
1547 "ns3::RangePropagationLossModel": dict({
1548 "category": FC.CATEGORY_LOSS_MODELS,
1549 "create_function": create_element,
1550 "configure_function": configure_element,
1552 "connector_types": [],
1553 "box_attributes": ["MaxRange"],
1555 "ns3::AlohaNoackNetDevice": dict({
1556 "category": FC.CATEGORY_DEVICES,
1557 "create_function": create_element,
1558 "configure_function": configure_element,
1560 "connector_types": [],
1561 "box_attributes": ["Address",
1564 "ns3::MatrixPropagationLossModel": dict({
1565 "category": FC.CATEGORY_LOSS_MODELS,
1566 "create_function": create_element,
1567 "configure_function": configure_element,
1569 "connector_types": [],
1570 "box_attributes": ["DefaultLoss"],
1572 "ns3::WifiNetDevice": dict({
1573 "category": FC.CATEGORY_DEVICES,
1574 "create_function": create_element,
1575 "configure_function": configure_device,
1577 "connector_types": ["node", "mac", "phy", "manager"],
1578 "allow_addresses": True,
1579 "box_attributes": ["Mtu"],
1581 "ns3::CsmaChannel": dict({
1582 "category": FC.CATEGORY_CHANNELS,
1583 "create_function": create_element,
1584 "configure_function": configure_element,
1586 "connector_types": ["devs"],
1587 "box_attributes": ["DataRate",
1590 "ns3::BridgeNetDevice": dict({
1591 "category": FC.CATEGORY_DEVICES,
1592 "create_function": create_element,
1593 "configure_function": configure_element,
1595 "connector_types": ["node"],
1596 "allow_addresses": True,
1597 "box_attributes": ["Mtu",
1601 "ns3::Ipv6ExtensionRouting": dict({
1602 "category": FC.CATEGORY_ROUTING,
1603 "create_function": create_element,
1604 "configure_function": configure_element,
1606 "connector_types": [],
1607 "box_attributes": ["ExtensionNumber"],
1609 "ns3::QstaWifiMac": dict({
1610 "category": FC.CATEGORY_MAC_MODELS,
1611 "create_function": create_wifi_standard_model,
1612 "configure_function": configure_element,
1613 "help": "Station Wifi MAC Model",
1614 "connector_types": ["dev"],
1615 "box_attributes": ["ProbeRequestTimeout",
1616 "AssocRequestTimeout",
1620 "BasicBlockAckTimeout",
1621 "CompressedBlockAckTimeout",
1626 "MaxPropagationDelay",
1630 "ns3::UdpEchoClient": dict({
1631 "category": FC.CATEGORY_APPLICATIONS,
1632 "create_function": create_element,
1633 "configure_function": configure_element,
1635 "connector_types": ["node"],
1636 "stop_function": stop_application,
1637 "start_function": start_application,
1638 "status_function": status_application,
1639 "box_attributes": ["MaxPackets",
1647 "ns3::UdpClient": dict({
1648 "category": FC.CATEGORY_APPLICATIONS,
1649 "create_function": create_element,
1650 "configure_function": configure_element,
1652 "connector_types": ["node"],
1653 "stop_function": stop_application,
1654 "start_function": start_application,
1655 "status_function": status_application,
1656 "box_attributes": ["MaxPackets",
1664 "ns3::PointToPointChannel": dict({
1665 "category": FC.CATEGORY_CHANNELS,
1666 "create_function": create_element,
1667 "configure_function": configure_element,
1669 "connector_types": ["dev2"],
1670 "box_attributes": ["Delay"],
1672 "ns3::Ipv6StaticRouting": dict({
1673 "category": FC.CATEGORY_ROUTING,
1674 "create_function": create_element,
1675 "configure_function": configure_element,
1677 "connector_types": [],
1678 "box_attributes": [],
1680 "ns3::DropTailQueue": dict({
1681 "category": FC.CATEGORY_QUEUES,
1682 "create_function": create_element,
1683 "configure_function": configure_element,
1685 "connector_types": ["dev"],
1686 "box_attributes": ["MaxPackets",
1689 "ns3::ConstantPositionMobilityModel": dict({
1690 "category": FC.CATEGORY_MOBILITY_MODELS,
1691 "create_function": create_element,
1692 "configure_function": configure_element,
1694 "connector_types": ["node"],
1695 "box_attributes": ["Position",
1697 "tags": [tags.MOBILE],
1699 "ns3::FixedRssLossModel": dict({
1700 "category": FC.CATEGORY_LOSS_MODELS,
1701 "create_function": create_element,
1702 "configure_function": configure_element,
1704 "connector_types": [],
1705 "box_attributes": ["Rss"],
1707 "ns3::EnergySourceContainer": dict({
1708 "category": FC.CATEGORY_ENERGY_MODELS,
1709 "create_function": create_element,
1710 "configure_function": configure_element,
1712 "connector_types": [],
1713 "box_attributes": [],
1715 "ns3::RandomWalk2dMobilityModel": dict({
1716 "category": FC.CATEGORY_MOBILITY_MODELS,
1717 "create_function": create_element,
1718 "configure_function": configure_element,
1720 "connector_types": ["node"],
1721 "box_attributes": ["Bounds",
1729 "tags": [tags.MOBILE],
1731 "ns3::ListPositionAllocator": dict({
1733 "create_function": create_element,
1734 "configure_function": configure_element,
1736 "connector_types": [],
1737 "box_attributes": [],
1739 "ns3::dot11s::PeerManagementProtocol": dict({
1740 "category": FC.CATEGORY_PROTOCOLS,
1741 "create_function": create_element,
1742 "configure_function": configure_element,
1744 "connector_types": [],
1745 "box_attributes": ["MaxNumberOfPeerLinks",
1746 "MaxBeaconShiftValue",
1747 "EnableBeaconCollisionAvoidance"],
1749 "ns3::MeshPointDevice": dict({
1750 "category": FC.CATEGORY_DEVICES,
1751 "create_function": create_element,
1752 "configure_function": configure_element,
1754 "connector_types": [],
1755 "allow_addresses": True,
1756 "box_attributes": ["Mtu"],
1758 "ns3::BasicEnergySource": dict({
1759 "category": FC.CATEGORY_ENERGY_MODELS,
1760 "create_function": create_element,
1761 "configure_function": configure_element,
1763 "connector_types": [],
1764 "box_attributes": ["BasicEnergySourceInitialEnergyJ",
1765 "BasicEnergySupplyVoltageV",
1766 "PeriodicEnergyUpdateInterval"],
1768 "ns3::Ipv6OptionPadn": dict({
1770 "create_function": create_element,
1771 "configure_function": configure_element,
1773 "connector_types": [],
1774 "box_attributes": ["OptionNumber"],
1776 "ns3::QapWifiMac": dict({
1777 "category": FC.CATEGORY_MAC_MODELS,
1778 "create_function": create_wifi_standard_model,
1779 "configure_function": configure_element,
1780 "help": "Access point Wifi MAC Model",
1781 "connector_types": ["dev"],
1782 "box_attributes": ["BeaconInterval",
1786 "BasicBlockAckTimeout",
1787 "CompressedBlockAckTimeout",
1792 "MaxPropagationDelay",
1796 "ns3::YansErrorRateModel": dict({
1797 "category": FC.CATEGORY_ERROR_MODELS,
1798 "create_function": create_element,
1799 "configure_function": configure_element,
1801 "connector_types": [],
1802 "box_attributes": [],
1804 "ns3::WifiMacQueue": dict({
1805 "category": FC.CATEGORY_QUEUES,
1806 "create_function": create_element,
1807 "configure_function": configure_element,
1809 "connector_types": [],
1810 "box_attributes": ["MaxPacketNumber",
1813 "ns3::NonCommunicatingNetDevice": dict({
1814 "category": FC.CATEGORY_DEVICES,
1815 "create_function": create_element,
1816 "configure_function": configure_element,
1818 "connector_types": [],
1819 "allow_addresses": True,
1820 "box_attributes": [],
1822 "ns3::RateErrorModel": dict({
1823 "category": FC.CATEGORY_ERROR_MODELS,
1824 "create_function": create_element,
1825 "configure_function": configure_element,
1827 "connector_types": [],
1828 "box_attributes": ["ErrorUnit",
1833 "ns3::MeshWifiInterfaceMac": dict({
1834 "category": FC.CATEGORY_MAC_MODELS,
1835 "create_function": create_element,
1836 "configure_function": configure_element,
1838 "connector_types": [],
1839 "box_attributes": ["BeaconInterval",
1844 "BasicBlockAckTimeout",
1845 "CompressedBlockAckTimeout",
1850 "MaxPropagationDelay",
1853 "ns3::UanPhyCalcSinrDual": dict({
1855 "create_function": create_element,
1856 "configure_function": configure_element,
1858 "connector_types": [],
1859 "box_attributes": [],
1861 "ns3::Ipv6ExtensionAH": dict({
1863 "create_function": create_element,
1864 "configure_function": configure_element,
1866 "connector_types": [],
1867 "box_attributes": ["ExtensionNumber"],
1869 "ns3::SingleModelSpectrumChannel": dict({
1870 "category": FC.CATEGORY_CHANNELS,
1871 "create_function": create_element,
1872 "configure_function": configure_element,
1874 "connector_types": [],
1875 "box_attributes": [],
1877 "ns3::YansWifiPhy": dict({
1878 "category": FC.CATEGORY_PHY_MODELS,
1879 "create_function": create_wifi_standard_model,
1880 "configure_function": configure_element,
1882 "connector_types": ["dev", "err", "chan"],
1883 "box_attributes": ["EnergyDetectionThreshold",
1884 "CcaMode1Threshold",
1891 "ChannelSwitchDelay",
1894 "traces": ["yanswifipcap"]
1896 "ns3::WifiRadioEnergyModel": dict({
1897 "category": FC.CATEGORY_ENERGY_MODELS,
1898 "create_function": create_element,
1899 "configure_function": configure_element,
1901 "connector_types": [],
1902 "box_attributes": ["TxCurrentA",
1907 "ns3::EdcaTxopN": dict({
1909 "create_function": create_element,
1910 "configure_function": configure_element,
1912 "connector_types": [],
1913 "box_attributes": ["BlockAckThreshold",
1918 "ns3::UanPhyPerGenDefault": dict({
1920 "create_function": create_element,
1921 "configure_function": configure_element,
1923 "connector_types": [],
1924 "box_attributes": ["Threshold"],
1926 "ns3::IdealWifiManager": dict({
1927 "category": FC.CATEGORY_MANAGERS,
1928 "create_function": create_element,
1929 "configure_function": configure_element,
1931 "connector_types": ["dev"],
1932 "box_attributes": ["BerThreshold",
1937 "FragmentationThreshold",
1940 "ns3::MultiModelSpectrumChannel": dict({
1941 "category": FC.CATEGORY_CHANNELS,
1942 "create_function": create_element,
1943 "configure_function": configure_element,
1945 "connector_types": [],
1946 "box_attributes": [],
1948 "ns3::HalfDuplexIdealPhy": dict({
1949 "category": FC.CATEGORY_PHY_MODELS,
1950 "create_function": create_element,
1951 "configure_function": configure_element,
1953 "connector_types": [],
1954 "box_attributes": ["Rate"],
1956 "ns3::UanPhyCalcSinrDefault": dict({
1957 "category": FC.CATEGORY_PHY_MODELS,
1958 "create_function": create_element,
1959 "configure_function": configure_element,
1961 "connector_types": [],
1962 "box_attributes": [],
1964 "ns3::ReceiveListErrorModel": dict({
1965 "category": FC.CATEGORY_ERROR_MODELS,
1966 "create_function": create_element,
1967 "configure_function": configure_element,
1969 "connector_types": [],
1970 "box_attributes": ["IsEnabled"],
1972 "ns3::SpectrumAnalyzer": dict({
1974 "create_function": create_element,
1975 "configure_function": configure_element,
1977 "connector_types": [],
1978 "box_attributes": ["Resolution",
1979 "NoisePowerSpectralDensity"],
1981 "ns3::ConstantRateWifiManager": dict({
1982 "category": FC.CATEGORY_MANAGERS,
1983 "create_function": create_element,
1984 "configure_function": configure_element,
1986 "connector_types": ["dev"],
1987 "box_attributes": ["DataMode",
1993 "FragmentationThreshold",
1996 "ns3::Ipv6OptionPad1": dict({
1998 "create_function": create_element,
1999 "configure_function": configure_element,
2001 "connector_types": [],
2002 "box_attributes": ["OptionNumber"],
2004 "ns3::UdpTraceClient": dict({
2006 "create_function": create_element,
2007 "configure_function": configure_element,
2009 "connector_types": [],
2010 "box_attributes": ["RemoteAddress",
2016 "ns3::RraaWifiManager": dict({
2017 "category": FC.CATEGORY_MANAGERS,
2018 "create_function": create_element,
2019 "configure_function": configure_element,
2021 "connector_types": ["dev"],
2022 "box_attributes": ["Basic",
2050 "FragmentationThreshold",
2053 "ns3::RandomPropagationLossModel": dict({
2054 "category": FC.CATEGORY_LOSS_MODELS,
2055 "create_function": create_element,
2056 "configure_function": configure_element,
2058 "connector_types": [],
2059 "box_attributes": ["Variable"],
2061 "ns3::UanChannel": dict({
2062 "category": FC.CATEGORY_CHANNELS,
2063 "create_function": create_element,
2064 "configure_function": configure_element,
2066 "connector_types": [],
2067 "box_attributes": [],
2069 "ns3::MinstrelWifiManager": dict({
2070 "category": FC.CATEGORY_MANAGERS,
2071 "create_function": create_element,
2072 "configure_function": configure_element,
2074 "connector_types": ["dev"],
2075 "box_attributes": ["UpdateStatistics",
2085 "FragmentationThreshold",
2088 "ns3::UanPhyDual": dict({
2089 "category": FC.CATEGORY_PHY_MODELS,
2090 "create_function": create_element,
2091 "configure_function": configure_element,
2093 "connector_types": [],
2094 "box_attributes": ["CcaThresholdPhy1",
2100 "SupportedModesPhy1",
2101 "SupportedModesPhy2"],
2103 "ns3::ListErrorModel": dict({
2104 "category": FC.CATEGORY_ERROR_MODELS,
2105 "create_function": create_element,
2106 "configure_function": configure_element,
2108 "connector_types": ["dev"],
2109 "box_attributes": ["IsEnabled"],
2111 "ns3::VirtualNetDevice": dict({
2112 "category": FC.CATEGORY_DEVICES,
2113 "create_function": create_element,
2114 "configure_function": configure_element,
2116 "connector_types": [],
2117 "allow_addresses": True,
2118 "box_attributes": ["Mtu"],
2120 "ns3::UanPhyGen": dict({
2121 "category": FC.CATEGORY_PHY_MODELS,
2122 "create_function": create_element,
2123 "configure_function": configure_element,
2125 "connector_types": [],
2126 "box_attributes": ["CcaThreshold",
2132 "ns3::Ipv6L3Protocol": dict({
2133 "category": FC.CATEGORY_PROTOCOLS,
2134 "create_function": create_element,
2135 "configure_function": configure_element,
2137 "connector_types": ["node"],
2138 "box_attributes": ["DefaultTtl",
2141 "ns3::PointToPointRemoteChannel": dict({
2142 "category": FC.CATEGORY_CHANNELS,
2143 "create_function": create_element,
2144 "configure_function": configure_element,
2146 "connector_types": [],
2147 "box_attributes": ["Delay"],
2149 "ns3::UanPhyPerUmodem": dict({
2150 "category": FC.CATEGORY_PHY_MODELS,
2151 "create_function": create_element,
2152 "configure_function": configure_element,
2154 "connector_types": [],
2155 "box_attributes": [],
2157 "ns3::OnoeWifiManager": dict({
2158 "category": FC.CATEGORY_MANAGERS,
2159 "create_function": create_element,
2160 "configure_function": configure_element,
2162 "connector_types": ["dev"],
2163 "box_attributes": ["UpdatePeriod",
2165 "AddCreditThreshold",
2170 "FragmentationThreshold",
2173 "ns3::QadhocWifiMac": dict({
2174 "category": FC.CATEGORY_MAC_MODELS,
2175 "create_function": create_element,
2176 "configure_function": configure_element,
2178 "connector_types": [],
2179 "box_attributes": ["CtsTimeout",
2181 "BasicBlockAckTimeout",
2182 "CompressedBlockAckTimeout",
2187 "MaxPropagationDelay",
2190 "ns3::JakesPropagationLossModel": dict({
2191 "category": FC.CATEGORY_LOSS_MODELS,
2192 "create_function": create_element,
2193 "configure_function": configure_element,
2195 "connector_types": [],
2196 "box_attributes": ["NumberOfRaysPerPath",
2197 "NumberOfOscillatorsPerRay",
2201 "ns3::PacketSink": dict({
2202 "category": FC.CATEGORY_APPLICATIONS,
2203 "create_function": create_element,
2204 "configure_function": configure_element,
2206 "connector_types": ["node"],
2207 "stop_function": stop_application,
2208 "start_function": start_application,
2209 "status_function": status_application,
2210 "box_attributes": ["Local",
2215 "ns3::RandomDirection2dMobilityModel": dict({
2216 "category": FC.CATEGORY_MOBILITY_MODELS,
2217 "create_function": create_element,
2218 "configure_function": configure_element,
2220 "connector_types": ["node"],
2221 "box_attributes": ["Bounds",
2226 "tags": [tags.MOBILE],
2228 "ns3::UanMacAloha": dict({
2230 "create_function": create_element,
2231 "configure_function": configure_element,
2233 "connector_types": [],
2234 "box_attributes": [],
2236 "ns3::MsduStandardAggregator": dict({
2238 "create_function": create_element,
2239 "configure_function": configure_element,
2241 "connector_types": [],
2242 "box_attributes": ["MaxAmsduSize"],
2244 "ns3::DcaTxop": dict({
2246 "create_function": create_element,
2247 "configure_function": configure_element,
2249 "connector_types": [],
2250 "box_attributes": ["MinCw",
2254 "ns3::UanPhyCalcSinrFhFsk": dict({
2255 "category": FC.CATEGORY_PHY_MODELS,
2256 "create_function": create_element,
2257 "configure_function": configure_element,
2259 "connector_types": [],
2260 "box_attributes": ["NumberOfHops"],
2262 "ns3::UanPropModelIdeal": dict({
2264 "create_function": create_element,
2265 "configure_function": configure_element,
2267 "connector_types": [],
2268 "box_attributes": [],
2270 "ns3::UanMacRcGw": dict({
2272 "create_function": create_element,
2273 "configure_function": configure_element,
2275 "connector_types": [],
2276 "box_attributes": ["MaxReservations",
2284 "NumberOfRetryRates",
2289 "ns3::NistErrorRateModel": dict({
2290 "category": FC.CATEGORY_ERROR_MODELS,
2291 "create_function": create_element,
2292 "configure_function": configure_element,
2294 "connector_types": ["phy"],
2295 "box_attributes": [],
2297 "ns3::Ipv4L3Protocol": dict({
2298 "category": FC.CATEGORY_PROTOCOLS,
2299 "create_function": create_ipv4protocol,
2300 "configure_function": configure_element,
2302 "connector_types": ["node"],
2303 "box_attributes": ["DefaultTtl",
2307 "ns3::aodv::RoutingProtocol": dict({
2308 "category": FC.CATEGORY_PROTOCOLS,
2309 "create_function": create_element,
2310 "configure_function": configure_element,
2312 "connector_types": [],
2313 "box_attributes": ["HelloInterval",
2316 "NodeTraversalTime",
2318 "ActiveRouteTimeout",
2325 "PathDiscoveryTime",
2334 "ns3::TcpL4Protocol": dict({
2335 "category": FC.CATEGORY_PROTOCOLS,
2336 "create_function": create_element,
2337 "configure_function": configure_element,
2339 "connector_types": ["node"],
2340 "box_attributes": ["RttEstimatorFactory",
2343 "ns3::olsr::RoutingProtocol": dict({
2344 "category": FC.CATEGORY_PROTOCOLS,
2345 "create_function": create_element,
2346 "configure_function": configure_element,
2348 "connector_types": [],
2349 "box_attributes": ["HelloInterval",
2355 "ns3::UdpEchoServer": dict({
2356 "category": FC.CATEGORY_APPLICATIONS,
2357 "create_function": create_element,
2358 "configure_function": configure_element,
2360 "connector_types": ["node"],
2361 "stop_function": stop_application,
2362 "start_function": start_application,
2363 "status_function": status_application,
2364 "box_attributes": ["Port",
2368 "ns3::AmrrWifiManager": dict({
2369 "category": FC.CATEGORY_MANAGERS,
2370 "create_function": create_element,
2371 "configure_function": configure_element,
2373 "connector_types": ["dev"],
2374 "box_attributes": ["UpdatePeriod",
2377 "MaxSuccessThreshold",
2378 "MinSuccessThreshold",
2383 "FragmentationThreshold",
2386 "ns3::ArfWifiManager": dict({
2387 "category": FC.CATEGORY_MANAGERS,
2388 "create_function": create_element,
2389 "configure_function": configure_element,
2391 "connector_types": ["dev"],
2392 "box_attributes": ["TimerThreshold",
2398 "FragmentationThreshold",
2401 "ns3::SubscriberStationNetDevice": dict({
2402 "category": FC.CATEGORY_DEVICES,
2403 "create_function": create_subscriber_station,
2404 "configure_function": configure_station,
2405 "help": "Subscriber station for mobile wireless network",
2406 "connector_types": ["node", "chan", "phy", "sflows"],
2407 "allow_addresses": True,
2408 "box_attributes": ["LostDlMapInterval",
2409 "LostUlMapInterval",
2419 "MaxContentionRangingRetries",
2423 "traces": ["wimaxpcap", "wimaxascii"],
2425 "ns3::flame::FlameRtable": dict({
2427 "create_function": create_element,
2428 "configure_function": configure_element,
2430 "connector_types": [],
2431 "box_attributes": ["Lifetime"],
2433 "ns3::BSSchedulerRtps": dict({
2434 "category": FC.CATEGORY_SERVICE_FLOWS,
2435 "create_function": create_element,
2436 "configure_function": configure_element,
2437 "help": "Simple downlink scheduler for rtPS flows",
2438 "connector_types": ["dev"],
2439 "box_attributes": [],
2441 "ns3::BSSchedulerSimple": dict({
2442 "category": FC.CATEGORY_SERVICE_FLOWS,
2443 "create_function": create_element,
2444 "configure_function": configure_element,
2445 "help": "simple downlink scheduler for service flows",
2446 "connector_types": ["dev"],
2447 "box_attributes": [],
2449 "ns3::SimpleOfdmWimaxChannel": dict({
2450 "category": FC.CATEGORY_CHANNELS,
2451 "create_function": create_wimax_channel,
2452 "configure_function": configure_element,
2453 "help": "Wimax channel",
2454 "connector_types": ["devs"],
2455 "box_attributes": [],
2457 "ns3::SimpleOfdmWimaxPhy": dict({
2458 "category": FC.CATEGORY_PHY_MODELS,
2459 "create_function": create_wimax_phy,
2460 "configure_function": configure_element,
2461 "help": "Wimax Phy",
2462 "connector_types": ["dev"],
2463 "box_attributes": [],
2465 "ns3::UplinkSchedulerSimple": dict({
2466 "category": FC.CATEGORY_SERVICE_FLOWS,
2467 "create_function": create_element_no_constructor,
2468 "configure_function": configure_element,
2469 "help": "Simple uplink scheduler for service flows",
2470 "connector_types": ["dev"],
2471 "box_attributes": [],
2473 "ns3::UplinkSchedulerRtps": dict({
2474 "category": FC.CATEGORY_SERVICE_FLOWS,
2475 "create_function": create_element_no_constructor,
2476 "configure_function": configure_element,
2477 "help": "Simple uplink scheduler for rtPS flows",
2478 "connector_types": ["dev"],
2479 "box_attributes": [],
2481 "ns3::IpcsClassifierRecord": dict({
2482 "category": FC.CATEGORY_SERVICE_FLOWS,
2483 "create_function": create_ipcs_classifier_record,
2484 "configure_function": configure_element,
2485 "help": "Classifier record for service flow",
2486 "connector_types": ["sflow"],
2487 "box_attributes": ["ClassifierSrcAddress",
2488 "ClassifierSrcMask",
2489 "ClassifierDstAddress",
2490 "ClassifierDstMask",
2491 "ClassifierSrcPortLow",
2492 "ClassifierSrcPortHigh",
2493 "ClassifierDstPortLow",
2494 "ClassifierDstPortHigh",
2495 "ClassifierProtocol",
2496 "ClassifierPriority"],
2498 "ns3::ServiceFlow": dict({
2499 "category": FC.CATEGORY_SERVICE_FLOWS,
2500 "create_function": create_service_flow,
2501 "configure_function": configure_element,
2502 "help": "Service flow for QoS",
2503 "connector_types": ["classif", "dev"],
2504 "box_attributes": ["ServiceFlowDirection",
2505 "ServiceFlowSchedulingType"],