Beispiel #1
0
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()
    }
Beispiel #2
0
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(),
    }
Beispiel #3
0
    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)
Beispiel #4
0
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(),
    }