def create_default_network_diag_tlv_factories(): return { network_diag.TlvType.EXT_ADDRESS: network_layer.MacExtendedAddressFactory(), network_diag.TlvType.ADDRESS16: mle.Address16Factory(), network_diag.TlvType.MODE: mle.ModeFactory(), network_diag.TlvType.POLLING_PERIOD: mle.TimeoutFactory(), network_diag.TlvType.CONNECTIVITY: mle.ConnectivityFactory(), network_diag.TlvType.ROUTE64: create_default_mle_tlv_route64_factory(), network_diag.TlvType.LEADER_DATA: mle.LeaderDataFactory(), network_diag.TlvType.NETWORK_DATA: create_default_mle_tlv_network_data_factory(), network_diag.TlvType.IPV6_ADDRESS_LIST: network_diag.Ipv6AddressListFactory(), network_diag.TlvType.MAC_COUNTERS: network_diag.MacCountersFactory(), network_diag.TlvType.BATTERY_LEVEL: network_diag.BatteryLevelFactory(), network_diag.TlvType.SUPPLY_VOLTAGE: network_diag.SupplyVoltageFactory(), network_diag.TlvType.CHILD_TABLE: network_diag.ChildTableFactory(), network_diag.TlvType.CHANNEL_PAGES: network_diag.ChannelPagesFactory(), network_diag.TlvType.TYPE_LIST: network_diag.TypeListFactory(), network_diag.TlvType.MAX_CHILD_TIMEOUT: network_diag.MaxChildTimeoutFactory() }
def create_default_mle_tlvs_factories(): return { mle.TlvType.SOURCE_ADDRESS: mle.SourceAddressFactory(), mle.TlvType.MODE: mle.ModeFactory(), mle.TlvType.TIMEOUT: mle.TimeoutFactory(), mle.TlvType.CHALLENGE: mle.ChallengeFactory(), mle.TlvType.RESPONSE: mle.ResponseFactory(), mle.TlvType.LINK_LAYER_FRAME_COUNTER: mle.LinkLayerFrameCounterFactory(), mle.TlvType.MLE_FRAME_COUNTER: mle.MleFrameCounterFactory(), mle.TlvType.ROUTE64: create_default_mle_tlv_route64_factory(), mle.TlvType.ADDRESS16: mle.Address16Factory(), mle.TlvType.LEADER_DATA: mle.LeaderDataFactory(), mle.TlvType.NETWORK_DATA: create_default_mle_tlv_network_data_factory(), mle.TlvType.TLV_REQUEST: mle.TlvRequestFactory(), mle.TlvType.SCAN_MASK: mle.ScanMaskFactory(), mle.TlvType.CONNECTIVITY: mle.ConnectivityFactory(), mle.TlvType.LINK_MARGIN: mle.LinkMarginFactory(), mle.TlvType.STATUS: mle.StatusFactory(), mle.TlvType.VERSION: mle.VersionFactory(), mle.TlvType.ADDRESS_REGISTRATION: create_default_mle_tlv_address_registration_factory(), mle.TlvType.CHANNEL: mle.ChannelFactory(), mle.TlvType.PANID: mle.PanIdFactory(), mle.TlvType.ACTIVE_TIMESTAMP: mle.ActiveTimestampFactory(), mle.TlvType.PENDING_TIMESTAMP: mle.PendingTimestampFactory(), mle.TlvType.ACTIVE_OPERATIONAL_DATASET: mle.ActiveOperationalDatasetFactory(), mle.TlvType.PENDING_OPERATIONAL_DATASET: mle.PendingOperationalDatasetFactory(), mle.TlvType.THREAD_DISCOVERY: mle.ThreadDiscoveryFactory(), mle.TlvType.TIME_REQUEST: mle.TimeRequestFactory(), mle.TlvType.TIME_PARAMETER: mle.TimeParameterFactory(), }
def parse(self, data, message_info): children = [] while message_info.length > 0: timeout_and_id = struct.unpack('>H', data.read(2))[0] message_info.length -= 2 timeout = (timeout_and_id & 0xf800) >> 11 child_id = timeout_and_id & 0x1fff mode = mle.ModeFactory().parse(data, message_info) message_info.length -= 1 children.append(ChildTableEntry(timeout, child_id, mode)) return ChildTable(children)
def create_default_mle_tlvs_factories(): return { mle.TlvType.SOURCE_ADDRESS: mle.SourceAddressFactory(), mle.TlvType.MODE: mle.ModeFactory(), mle.TlvType.TIMEOUT: mle.TimeoutFactory(), mle.TlvType.CHALLENGE: mle.ChallengeFactory(), mle.TlvType.RESPONSE: mle.ResponseFactory(), mle.TlvType.LINK_LAYER_FRAME_COUNTER: mle.LinkLayerFrameCounterFactory(), mle.TlvType.MLE_FRAME_COUNTER: mle.MleFrameCounterFactory(), mle.TlvType.ROUTE64: create_default_mle_tlv_route64_factory(), mle.TlvType.ADDRESS16: mle.Address16Factory(), mle.TlvType.LEADER_DATA: mle.LeaderDataFactory(), mle.TlvType.NETWORK_DATA: create_default_mle_tlv_network_data_factory(), mle.TlvType.TLV_REQUEST: mle.TlvRequestFactory(), mle.TlvType.SCAN_MASK: mle.ScanMaskFactory(), mle.TlvType.CONNECTIVITY: mle.ConnectivityFactory(), mle.TlvType.LINK_MARGIN: mle.LinkMarginFactory(), mle.TlvType.STATUS: mle.StatusFactory(), mle.TlvType.VERSION: mle.VersionFactory(), mle.TlvType.ADDRESS_REGISTRATION: create_default_mle_tlv_address_registration_factory(), mle.TlvType.CHANNEL: mle.ChannelFactory(), mle.TlvType.PANID: mle.PanIdFactory(), mle.TlvType.ACTIVE_TIMESTAMP: mle.ActiveTimestampFactory(), mle.TlvType.PENDING_TIMESTAMP: mle.PendingTimestampFactory(), mle.TlvType.CSL_CHANNEL: mle.CslChannelFactory(), mle.TlvType.CSL_SYNCHRONIZED_TIMEOUT: mle.CslSynchronizedTimeoutFactory(), mle.TlvType.CSL_CLOCK_ACCURACY: mle.CslClockAccuracyFactory(), mle.TlvType.ACTIVE_OPERATIONAL_DATASET: mle.ActiveOperationalDatasetFactory(), mle.TlvType.PENDING_OPERATIONAL_DATASET: mle.PendingOperationalDatasetFactory(), mle.TlvType.TIME_REQUEST: mle.TimeRequestFactory(), mle.TlvType.TIME_PARAMETER: mle.TimeParameterFactory(), mle.TlvType.THREAD_DISCOVERY: create_default_mle_tlv_thread_discovery_factory(), mle.TlvType.LINK_METRICS_QUERY: mle.LinkMetricsQueryFactory(), mle.TlvType.LINK_METRICS_MANAGEMENT: mle.LinkMetricsManagementFactory(), mle.TlvType.LINK_METRICS_REPORT: mle.LinkMetricsReportFactory(), mle.TlvType.LINK_PROBE: mle.LinkProbeFactory(), }