# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: github_com/TheThingsNetwork/api/protocol/lorawan/lorawan.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from ttn.github_com.gogo.protobuf.gogoproto import gogo_pb2 as github__com_dot_gogo_dot_protobuf_dot_gogoproto_dot_gogo__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='github_com/TheThingsNetwork/api/protocol/lorawan/lorawan.proto',
  package='lorawan',
  syntax='proto3',
  serialized_pb=_b('\n>github_com/TheThingsNetwork/api/protocol/lorawan/lorawan.proto\x12\x07lorawan\x1a-github_com/gogo/protobuf/gogoproto/gogo.proto\"\xac\x01\n\x08Metadata\x12\'\n\nmodulation\x18\x0b \x01(\x0e\x32\x13.lorawan.Modulation\x12\x11\n\tdata_rate\x18\x0c \x01(\t\x12\x10\n\x08\x62it_rate\x18\r \x01(\r\x12\x13\n\x0b\x63oding_rate\x18\x0e \x01(\t\x12\r\n\x05\x66_cnt\x18\x0f \x01(\r\x12.\n\x0e\x66requency_plan\x18\x10 \x01(\x0e\x32\x16.lorawan.FrequencyPlan\"\x83\x01\n\x0fTxConfiguration\x12\'\n\nmodulation\x18\x0b \x01(\x0e\x32\x13.lorawan.Modulation\x12\x11\n\tdata_rate\x18\x0c \x01(\t\x12\x10\n\x08\x62it_rate\x18\r \x01(\r\x12\x13\n\x0b\x63oding_rate\x18\x0e \x01(\t\x12\r\n\x05\x66_cnt\x18\x0f \x01(\r\"\x88\x04\n\x12\x41\x63tivationMetadata\x12T\n\x07\x61pp_eui\x18\x01 \x01(\x0c\x42\x43\xe2\xde\x1f\x06\x41ppEUI\xc8\xde\x1f\x00\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.AppEUI\x12T\n\x07\x64\x65v_eui\x18\x02 \x01(\x0c\x42\x43\xe2\xde\x1f\x06\x44\x65vEUI\xc8\xde\x1f\x00\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.DevEUI\x12H\n\x08\x64\x65v_addr\x18\x03 \x01(\x0c\x42\x36\xda\xde\x1f\x32github_com/TheThingsNetwork/ttn/core/types.DevAddr\x12I\n\tnwk_s_key\x18\x04 \x01(\x0c\x42\x36\xda\xde\x1f\x32github_com/TheThingsNetwork/ttn/core/types.NwkSKey\x12&\n\rrx1_dr_offset\x18\x0b \x01(\rB\x0f\xe2\xde\x1f\x0bRx1DROffset\x12\x19\n\x06rx2_dr\x18\x0c \x01(\rB\t\xe2\xde\x1f\x05Rx2DR\x12\x10\n\x08rx_delay\x18\r \x01(\r\x12,\n\x07\x63\x66_list\x18\x0e \x01(\x0b\x32\x0f.lorawan.CFListB\n\xe2\xde\x1f\x06\x43\x46List\x12.\n\x0e\x66requency_plan\x18\x0f \x01(\x0e\x32\x16.lorawan.FrequencyPlan\"\x86\x02\n\x07Message\x12&\n\x05m_hdr\x18\x01 \x01(\x0b\x32\r.lorawan.MHDRB\x08\xd0\xde\x1f\x01\xc8\xde\x1f\x00\x12\x14\n\x03mic\x18\x02 \x01(\x0c\x42\x07\xe2\xde\x1f\x03MIC\x12:\n\x0bmac_payload\x18\x03 \x01(\x0b\x32\x13.lorawan.MACPayloadB\x0e\xe2\xde\x1f\nMACPayloadH\x00\x12;\n\x14join_request_payload\x18\x04 \x01(\x0b\x32\x1b.lorawan.JoinRequestPayloadH\x00\x12\x39\n\x13join_accept_payload\x18\x05 \x01(\x0b\x32\x1a.lorawan.JoinAcceptPayloadH\x00\x42\t\n\x07Payload\"E\n\x04MHDR\x12\x1e\n\x06m_type\x18\x01 \x01(\x0e\x32\x0e.lorawan.MType\x12\x1d\n\x05major\x18\x02 \x01(\x0e\x32\x0e.lorawan.Major\"i\n\nMACPayload\x12&\n\x05\x66_hdr\x18\x01 \x01(\x0b\x32\r.lorawan.FHDRB\x08\xd0\xde\x1f\x01\xc8\xde\x1f\x00\x12\x0e\n\x06\x66_port\x18\x02 \x01(\x05\x12#\n\x0b\x66rm_payload\x18\x03 \x01(\x0c\x42\x0e\xe2\xde\x1f\nFRMPayload\"\xb8\x01\n\x04\x46HDR\x12L\n\x08\x64\x65v_addr\x18\x01 \x01(\x0c\x42:\xc8\xde\x1f\x00\xda\xde\x1f\x32github_com/TheThingsNetwork/ttn/core/types.DevAddr\x12(\n\x06\x66_ctrl\x18\x02 \x01(\x0b\x32\x0e.lorawan.FCtrlB\x08\xd0\xde\x1f\x01\xc8\xde\x1f\x00\x12\r\n\x05\x66_cnt\x18\x03 \x01(\r\x12)\n\x06\x66_opts\x18\x04 \x03(\x0b\x32\x13.lorawan.MACCommandB\x04\xc8\xde\x1f\x00\"a\n\x05\x46\x43trl\x12\x14\n\x03\x61\x64r\x18\x01 \x01(\x08\x42\x07\xe2\xde\x1f\x03\x41\x44R\x12\"\n\x0b\x61\x64r_ack_req\x18\x02 \x01(\x08\x42\r\xe2\xde\x1f\tADRAckReq\x12\x0b\n\x03\x61\x63k\x18\x03 \x01(\x08\x12\x11\n\tf_pending\x18\x04 \x01(\x08\"3\n\nMACCommand\x12\x14\n\x03\x63id\x18\x01 \x01(\rB\x07\xe2\xde\x1f\x03\x43ID\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\"\x90\x02\n\x12JoinRequestPayload\x12T\n\x07\x61pp_eui\x18\x01 \x01(\x0c\x42\x43\xc8\xde\x1f\x00\xe2\xde\x1f\x06\x41ppEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.AppEUI\x12T\n\x07\x64\x65v_eui\x18\x02 \x01(\x0c\x42\x43\xc8\xde\x1f\x00\xe2\xde\x1f\x06\x44\x65vEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.DevEUI\x12N\n\tdev_nonce\x18\x03 \x01(\x0c\x42;\xc8\xde\x1f\x00\xda\xde\x1f\x33github_com/TheThingsNetwork/ttn/core/types.DevNonce\"\x8b\x03\n\x11JoinAcceptPayload\x12\x11\n\tencrypted\x18\x01 \x01(\x0c\x12N\n\tapp_nonce\x18\x02 \x01(\x0c\x42;\xc8\xde\x1f\x00\xda\xde\x1f\x33github_com/TheThingsNetwork/ttn/core/types.AppNonce\x12Q\n\x06net_id\x18\x03 \x01(\x0c\x42\x41\xc8\xde\x1f\x00\xe2\xde\x1f\x05NetID\xda\xde\x1f\x30github_com/TheThingsNetwork/ttn/core/types.NetID\x12L\n\x08\x64\x65v_addr\x18\x04 \x01(\x0c\x42:\xc8\xde\x1f\x00\xda\xde\x1f\x32github_com/TheThingsNetwork/ttn/core/types.DevAddr\x12\x32\n\x0b\x64l_settings\x18\x05 \x01(\x0b\x32\x13.lorawan.DLSettingsB\x08\xd0\xde\x1f\x01\xc8\xde\x1f\x00\x12\x10\n\x08rx_delay\x18\x06 \x01(\r\x12,\n\x07\x63\x66_list\x18\x07 \x01(\x0b\x32\x0f.lorawan.CFListB\n\xe2\xde\x1f\x06\x43\x46List\"O\n\nDLSettings\x12&\n\rrx1_dr_offset\x18\x01 \x01(\rB\x0f\xe2\xde\x1f\x0bRx1DROffset\x12\x19\n\x06rx2_dr\x18\x02 \x01(\rB\t\xe2\xde\x1f\x05Rx2DR\"\x16\n\x06\x43\x46List\x12\x0c\n\x04\x66req\x18\x01 \x03(\r*\x1f\n\nModulation\x12\x08\n\x04LORA\x10\x00\x12\x07\n\x03\x46SK\x10\x01*\xb7\x01\n\rFrequencyPlan\x12\x0e\n\nEU_863_870\x10\x00\x12\x0e\n\nUS_902_928\x10\x01\x12\x0e\n\nCN_779_787\x10\x02\x12\n\n\x06\x45U_433\x10\x03\x12\x0e\n\nAU_915_928\x10\x04\x12\x0e\n\nCN_470_510\x10\x05\x12\n\n\x06\x41S_923\x10\x06\x12\x0e\n\nAS_920_923\x10=\x12\x0e\n\nAS_923_925\x10>\x12\x0e\n\nKR_920_923\x10\x07\x12\x0e\n\nIN_865_867\x10\x08*\x17\n\x05Major\x12\x0e\n\nLORAWAN_R1\x10\x00*z\n\x05MType\x12\x10\n\x0cJOIN_REQUEST\x10\x00\x12\x0f\n\x0bJOIN_ACCEPT\x10\x01\x12\x12\n\x0eUNCONFIRMED_UP\x10\x02\x12\x14\n\x10UNCONFIRMED_DOWN\x10\x03\x12\x10\n\x0c\x43ONFIRMED_UP\x10\x04\x12\x12\n\x0e\x43ONFIRMED_DOWN\x10\x05\x42\x9c\x01\n)org.thethingsnetwork.api.protocol.lorawanB\x14LoRaWANProtocolProtoP\x01Z0github_com/TheThingsNetwork/api/protocol/lorawan\xaa\x02$TheThingsNetwork.API.LoRaWANProtocolb\x06proto3')
  ,
  dependencies=[github__com_dot_gogo_dot_protobuf_dot_gogoproto_dot_gogo__pb2.DESCRIPTOR,])

_MODULATION = _descriptor.EnumDescriptor(
  name='Modulation',
  full_name='lorawan.Modulation',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='LORA', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FSK', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2514,
  serialized_end=2545,
)
_sym_db.RegisterEnumDescriptor(_MODULATION)

Modulation = enum_type_wrapper.EnumTypeWrapper(_MODULATION)
_FREQUENCYPLAN = _descriptor.EnumDescriptor(
  name='FrequencyPlan',
  full_name='lorawan.FrequencyPlan',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='EU_863_870', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='US_902_928', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CN_779_787', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EU_433', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='AU_915_928', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CN_470_510', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='AS_923', index=6, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='AS_920_923', index=7, number=61,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='AS_923_925', index=8, number=62,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='KR_920_923', index=9, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IN_865_867', index=10, number=8,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2548,
  serialized_end=2731,
)
_sym_db.RegisterEnumDescriptor(_FREQUENCYPLAN)

FrequencyPlan = enum_type_wrapper.EnumTypeWrapper(_FREQUENCYPLAN)
_MAJOR = _descriptor.EnumDescriptor(
  name='Major',
  full_name='lorawan.Major',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='LORAWAN_R1', index=0, number=0,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2733,
  serialized_end=2756,
)
_sym_db.RegisterEnumDescriptor(_MAJOR)

Major = enum_type_wrapper.EnumTypeWrapper(_MAJOR)
_MTYPE = _descriptor.EnumDescriptor(
  name='MType',
  full_name='lorawan.MType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='JOIN_REQUEST', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='JOIN_ACCEPT', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNCONFIRMED_UP', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNCONFIRMED_DOWN', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CONFIRMED_UP', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CONFIRMED_DOWN', index=5, number=5,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2758,
  serialized_end=2880,
)
_sym_db.RegisterEnumDescriptor(_MTYPE)

MType = enum_type_wrapper.EnumTypeWrapper(_MTYPE)
LORA = 0
FSK = 1
EU_863_870 = 0
US_902_928 = 1
CN_779_787 = 2
EU_433 = 3
AU_915_928 = 4
CN_470_510 = 5
AS_923 = 6
AS_920_923 = 61
AS_923_925 = 62
KR_920_923 = 7
IN_865_867 = 8
LORAWAN_R1 = 0
JOIN_REQUEST = 0
JOIN_ACCEPT = 1
UNCONFIRMED_UP = 2
UNCONFIRMED_DOWN = 3
CONFIRMED_UP = 4
CONFIRMED_DOWN = 5



_METADATA = _descriptor.Descriptor(
  name='Metadata',
  full_name='lorawan.Metadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='modulation', full_name='lorawan.Metadata.modulation', index=0,
      number=11, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='data_rate', full_name='lorawan.Metadata.data_rate', index=1,
      number=12, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='bit_rate', full_name='lorawan.Metadata.bit_rate', index=2,
      number=13, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='coding_rate', full_name='lorawan.Metadata.coding_rate', index=3,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='f_cnt', full_name='lorawan.Metadata.f_cnt', index=4,
      number=15, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='frequency_plan', full_name='lorawan.Metadata.frequency_plan', index=5,
      number=16, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=123,
  serialized_end=295,
)


_TXCONFIGURATION = _descriptor.Descriptor(
  name='TxConfiguration',
  full_name='lorawan.TxConfiguration',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='modulation', full_name='lorawan.TxConfiguration.modulation', index=0,
      number=11, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='data_rate', full_name='lorawan.TxConfiguration.data_rate', index=1,
      number=12, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='bit_rate', full_name='lorawan.TxConfiguration.bit_rate', index=2,
      number=13, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='coding_rate', full_name='lorawan.TxConfiguration.coding_rate', index=3,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='f_cnt', full_name='lorawan.TxConfiguration.f_cnt', index=4,
      number=15, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=298,
  serialized_end=429,
)


_ACTIVATIONMETADATA = _descriptor.Descriptor(
  name='ActivationMetadata',
  full_name='lorawan.ActivationMetadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='app_eui', full_name='lorawan.ActivationMetadata.app_eui', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006AppEUI\310\336\037\000\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))),
    _descriptor.FieldDescriptor(
      name='dev_eui', full_name='lorawan.ActivationMetadata.dev_eui', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006DevEUI\310\336\037\000\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))),
    _descriptor.FieldDescriptor(
      name='dev_addr', full_name='lorawan.ActivationMetadata.dev_addr', index=2,
      number=3, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\332\336\0372github_com/TheThingsNetwork/ttn/core/types.DevAddr'))),
    _descriptor.FieldDescriptor(
      name='nwk_s_key', full_name='lorawan.ActivationMetadata.nwk_s_key', index=3,
      number=4, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\332\336\0372github_com/TheThingsNetwork/ttn/core/types.NwkSKey'))),
    _descriptor.FieldDescriptor(
      name='rx1_dr_offset', full_name='lorawan.ActivationMetadata.rx1_dr_offset', index=4,
      number=11, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\013Rx1DROffset'))),
    _descriptor.FieldDescriptor(
      name='rx2_dr', full_name='lorawan.ActivationMetadata.rx2_dr', index=5,
      number=12, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005Rx2DR'))),
    _descriptor.FieldDescriptor(
      name='rx_delay', full_name='lorawan.ActivationMetadata.rx_delay', index=6,
      number=13, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='cf_list', full_name='lorawan.ActivationMetadata.cf_list', index=7,
      number=14, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006CFList'))),
    _descriptor.FieldDescriptor(
      name='frequency_plan', full_name='lorawan.ActivationMetadata.frequency_plan', index=8,
      number=15, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=432,
  serialized_end=952,
)


_MESSAGE = _descriptor.Descriptor(
  name='Message',
  full_name='lorawan.Message',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='m_hdr', full_name='lorawan.Message.m_hdr', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\320\336\037\001\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='mic', full_name='lorawan.Message.mic', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\003MIC'))),
    _descriptor.FieldDescriptor(
      name='mac_payload', full_name='lorawan.Message.mac_payload', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\nMACPayload'))),
    _descriptor.FieldDescriptor(
      name='join_request_payload', full_name='lorawan.Message.join_request_payload', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='join_accept_payload', full_name='lorawan.Message.join_accept_payload', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='Payload', full_name='lorawan.Message.Payload',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=955,
  serialized_end=1217,
)


_MHDR = _descriptor.Descriptor(
  name='MHDR',
  full_name='lorawan.MHDR',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='m_type', full_name='lorawan.MHDR.m_type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='major', full_name='lorawan.MHDR.major', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1219,
  serialized_end=1288,
)


_MACPAYLOAD = _descriptor.Descriptor(
  name='MACPayload',
  full_name='lorawan.MACPayload',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='f_hdr', full_name='lorawan.MACPayload.f_hdr', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\320\336\037\001\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='f_port', full_name='lorawan.MACPayload.f_port', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='frm_payload', full_name='lorawan.MACPayload.frm_payload', index=2,
      number=3, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\nFRMPayload'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1290,
  serialized_end=1395,
)


_FHDR = _descriptor.Descriptor(
  name='FHDR',
  full_name='lorawan.FHDR',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='dev_addr', full_name='lorawan.FHDR.dev_addr', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\332\336\0372github_com/TheThingsNetwork/ttn/core/types.DevAddr'))),
    _descriptor.FieldDescriptor(
      name='f_ctrl', full_name='lorawan.FHDR.f_ctrl', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\320\336\037\001\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='f_cnt', full_name='lorawan.FHDR.f_cnt', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='f_opts', full_name='lorawan.FHDR.f_opts', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1398,
  serialized_end=1582,
)


_FCTRL = _descriptor.Descriptor(
  name='FCtrl',
  full_name='lorawan.FCtrl',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='adr', full_name='lorawan.FCtrl.adr', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\003ADR'))),
    _descriptor.FieldDescriptor(
      name='adr_ack_req', full_name='lorawan.FCtrl.adr_ack_req', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\tADRAckReq'))),
    _descriptor.FieldDescriptor(
      name='ack', full_name='lorawan.FCtrl.ack', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='f_pending', full_name='lorawan.FCtrl.f_pending', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1584,
  serialized_end=1681,
)


_MACCOMMAND = _descriptor.Descriptor(
  name='MACCommand',
  full_name='lorawan.MACCommand',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cid', full_name='lorawan.MACCommand.cid', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\003CID'))),
    _descriptor.FieldDescriptor(
      name='payload', full_name='lorawan.MACCommand.payload', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1683,
  serialized_end=1734,
)


_JOINREQUESTPAYLOAD = _descriptor.Descriptor(
  name='JoinRequestPayload',
  full_name='lorawan.JoinRequestPayload',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='app_eui', full_name='lorawan.JoinRequestPayload.app_eui', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))),
    _descriptor.FieldDescriptor(
      name='dev_eui', full_name='lorawan.JoinRequestPayload.dev_eui', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))),
    _descriptor.FieldDescriptor(
      name='dev_nonce', full_name='lorawan.JoinRequestPayload.dev_nonce', index=2,
      number=3, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\332\336\0373github_com/TheThingsNetwork/ttn/core/types.DevNonce'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1737,
  serialized_end=2009,
)


_JOINACCEPTPAYLOAD = _descriptor.Descriptor(
  name='JoinAcceptPayload',
  full_name='lorawan.JoinAcceptPayload',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='encrypted', full_name='lorawan.JoinAcceptPayload.encrypted', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='app_nonce', full_name='lorawan.JoinAcceptPayload.app_nonce', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\332\336\0373github_com/TheThingsNetwork/ttn/core/types.AppNonce'))),
    _descriptor.FieldDescriptor(
      name='net_id', full_name='lorawan.JoinAcceptPayload.net_id', index=2,
      number=3, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\005NetID\332\336\0370github_com/TheThingsNetwork/ttn/core/types.NetID'))),
    _descriptor.FieldDescriptor(
      name='dev_addr', full_name='lorawan.JoinAcceptPayload.dev_addr', index=3,
      number=4, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\332\336\0372github_com/TheThingsNetwork/ttn/core/types.DevAddr'))),
    _descriptor.FieldDescriptor(
      name='dl_settings', full_name='lorawan.JoinAcceptPayload.dl_settings', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\320\336\037\001\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='rx_delay', full_name='lorawan.JoinAcceptPayload.rx_delay', index=5,
      number=6, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='cf_list', full_name='lorawan.JoinAcceptPayload.cf_list', index=6,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006CFList'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2012,
  serialized_end=2407,
)


_DLSETTINGS = _descriptor.Descriptor(
  name='DLSettings',
  full_name='lorawan.DLSettings',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='rx1_dr_offset', full_name='lorawan.DLSettings.rx1_dr_offset', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\013Rx1DROffset'))),
    _descriptor.FieldDescriptor(
      name='rx2_dr', full_name='lorawan.DLSettings.rx2_dr', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005Rx2DR'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2409,
  serialized_end=2488,
)


_CFLIST = _descriptor.Descriptor(
  name='CFList',
  full_name='lorawan.CFList',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='freq', full_name='lorawan.CFList.freq', index=0,
      number=1, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2490,
  serialized_end=2512,
)

_METADATA.fields_by_name['modulation'].enum_type = _MODULATION
_METADATA.fields_by_name['frequency_plan'].enum_type = _FREQUENCYPLAN
_TXCONFIGURATION.fields_by_name['modulation'].enum_type = _MODULATION
_ACTIVATIONMETADATA.fields_by_name['cf_list'].message_type = _CFLIST
_ACTIVATIONMETADATA.fields_by_name['frequency_plan'].enum_type = _FREQUENCYPLAN
_MESSAGE.fields_by_name['m_hdr'].message_type = _MHDR
_MESSAGE.fields_by_name['mac_payload'].message_type = _MACPAYLOAD
_MESSAGE.fields_by_name['join_request_payload'].message_type = _JOINREQUESTPAYLOAD
_MESSAGE.fields_by_name['join_accept_payload'].message_type = _JOINACCEPTPAYLOAD
_MESSAGE.oneofs_by_name['Payload'].fields.append(
  _MESSAGE.fields_by_name['mac_payload'])
_MESSAGE.fields_by_name['mac_payload'].containing_oneof = _MESSAGE.oneofs_by_name['Payload']
_MESSAGE.oneofs_by_name['Payload'].fields.append(
  _MESSAGE.fields_by_name['join_request_payload'])
_MESSAGE.fields_by_name['join_request_payload'].containing_oneof = _MESSAGE.oneofs_by_name['Payload']
_MESSAGE.oneofs_by_name['Payload'].fields.append(
  _MESSAGE.fields_by_name['join_accept_payload'])
_MESSAGE.fields_by_name['join_accept_payload'].containing_oneof = _MESSAGE.oneofs_by_name['Payload']
_MHDR.fields_by_name['m_type'].enum_type = _MTYPE
_MHDR.fields_by_name['major'].enum_type = _MAJOR
_MACPAYLOAD.fields_by_name['f_hdr'].message_type = _FHDR
_FHDR.fields_by_name['f_ctrl'].message_type = _FCTRL
_FHDR.fields_by_name['f_opts'].message_type = _MACCOMMAND
_JOINACCEPTPAYLOAD.fields_by_name['dl_settings'].message_type = _DLSETTINGS
_JOINACCEPTPAYLOAD.fields_by_name['cf_list'].message_type = _CFLIST
DESCRIPTOR.message_types_by_name['Metadata'] = _METADATA
DESCRIPTOR.message_types_by_name['TxConfiguration'] = _TXCONFIGURATION
DESCRIPTOR.message_types_by_name['ActivationMetadata'] = _ACTIVATIONMETADATA
DESCRIPTOR.message_types_by_name['Message'] = _MESSAGE
DESCRIPTOR.message_types_by_name['MHDR'] = _MHDR
DESCRIPTOR.message_types_by_name['MACPayload'] = _MACPAYLOAD
DESCRIPTOR.message_types_by_name['FHDR'] = _FHDR
DESCRIPTOR.message_types_by_name['FCtrl'] = _FCTRL
DESCRIPTOR.message_types_by_name['MACCommand'] = _MACCOMMAND
DESCRIPTOR.message_types_by_name['JoinRequestPayload'] = _JOINREQUESTPAYLOAD
DESCRIPTOR.message_types_by_name['JoinAcceptPayload'] = _JOINACCEPTPAYLOAD
DESCRIPTOR.message_types_by_name['DLSettings'] = _DLSETTINGS
DESCRIPTOR.message_types_by_name['CFList'] = _CFLIST
DESCRIPTOR.enum_types_by_name['Modulation'] = _MODULATION
DESCRIPTOR.enum_types_by_name['FrequencyPlan'] = _FREQUENCYPLAN
DESCRIPTOR.enum_types_by_name['Major'] = _MAJOR
DESCRIPTOR.enum_types_by_name['MType'] = _MTYPE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), dict(
  DESCRIPTOR = _METADATA,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.Metadata)
  ))
_sym_db.RegisterMessage(Metadata)

TxConfiguration = _reflection.GeneratedProtocolMessageType('TxConfiguration', (_message.Message,), dict(
  DESCRIPTOR = _TXCONFIGURATION,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.TxConfiguration)
  ))
_sym_db.RegisterMessage(TxConfiguration)

ActivationMetadata = _reflection.GeneratedProtocolMessageType('ActivationMetadata', (_message.Message,), dict(
  DESCRIPTOR = _ACTIVATIONMETADATA,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.ActivationMetadata)
  ))
_sym_db.RegisterMessage(ActivationMetadata)

Message = _reflection.GeneratedProtocolMessageType('Message', (_message.Message,), dict(
  DESCRIPTOR = _MESSAGE,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.Message)
  ))
_sym_db.RegisterMessage(Message)

MHDR = _reflection.GeneratedProtocolMessageType('MHDR', (_message.Message,), dict(
  DESCRIPTOR = _MHDR,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.MHDR)
  ))
_sym_db.RegisterMessage(MHDR)

MACPayload = _reflection.GeneratedProtocolMessageType('MACPayload', (_message.Message,), dict(
  DESCRIPTOR = _MACPAYLOAD,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.MACPayload)
  ))
_sym_db.RegisterMessage(MACPayload)

FHDR = _reflection.GeneratedProtocolMessageType('FHDR', (_message.Message,), dict(
  DESCRIPTOR = _FHDR,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.FHDR)
  ))
_sym_db.RegisterMessage(FHDR)

FCtrl = _reflection.GeneratedProtocolMessageType('FCtrl', (_message.Message,), dict(
  DESCRIPTOR = _FCTRL,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.FCtrl)
  ))
_sym_db.RegisterMessage(FCtrl)

MACCommand = _reflection.GeneratedProtocolMessageType('MACCommand', (_message.Message,), dict(
  DESCRIPTOR = _MACCOMMAND,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.MACCommand)
  ))
_sym_db.RegisterMessage(MACCommand)

JoinRequestPayload = _reflection.GeneratedProtocolMessageType('JoinRequestPayload', (_message.Message,), dict(
  DESCRIPTOR = _JOINREQUESTPAYLOAD,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.JoinRequestPayload)
  ))
_sym_db.RegisterMessage(JoinRequestPayload)

JoinAcceptPayload = _reflection.GeneratedProtocolMessageType('JoinAcceptPayload', (_message.Message,), dict(
  DESCRIPTOR = _JOINACCEPTPAYLOAD,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.JoinAcceptPayload)
  ))
_sym_db.RegisterMessage(JoinAcceptPayload)

DLSettings = _reflection.GeneratedProtocolMessageType('DLSettings', (_message.Message,), dict(
  DESCRIPTOR = _DLSETTINGS,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.DLSettings)
  ))
_sym_db.RegisterMessage(DLSettings)

CFList = _reflection.GeneratedProtocolMessageType('CFList', (_message.Message,), dict(
  DESCRIPTOR = _CFLIST,
  __module__ = 'github_com.TheThingsNetwork.api.protocol.lorawan.lorawan_pb2'
  # @@protoc_insertion_point(class_scope:lorawan.CFList)
  ))
_sym_db.RegisterMessage(CFList)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n)org.thethingsnetwork.api.protocol.lorawanB\024LoRaWANProtocolProtoP\001Z0github_com/TheThingsNetwork/api/protocol/lorawan\252\002$TheThingsNetwork.API.LoRaWANProtocol'))
_ACTIVATIONMETADATA.fields_by_name['app_eui'].has_options = True
_ACTIVATIONMETADATA.fields_by_name['app_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006AppEUI\310\336\037\000\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))
_ACTIVATIONMETADATA.fields_by_name['dev_eui'].has_options = True
_ACTIVATIONMETADATA.fields_by_name['dev_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006DevEUI\310\336\037\000\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))
_ACTIVATIONMETADATA.fields_by_name['dev_addr'].has_options = True
_ACTIVATIONMETADATA.fields_by_name['dev_addr']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\332\336\0372github_com/TheThingsNetwork/ttn/core/types.DevAddr'))
_ACTIVATIONMETADATA.fields_by_name['nwk_s_key'].has_options = True
_ACTIVATIONMETADATA.fields_by_name['nwk_s_key']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\332\336\0372github_com/TheThingsNetwork/ttn/core/types.NwkSKey'))
_ACTIVATIONMETADATA.fields_by_name['rx1_dr_offset'].has_options = True
_ACTIVATIONMETADATA.fields_by_name['rx1_dr_offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\013Rx1DROffset'))
_ACTIVATIONMETADATA.fields_by_name['rx2_dr'].has_options = True
_ACTIVATIONMETADATA.fields_by_name['rx2_dr']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005Rx2DR'))
_ACTIVATIONMETADATA.fields_by_name['cf_list'].has_options = True
_ACTIVATIONMETADATA.fields_by_name['cf_list']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006CFList'))
_MESSAGE.fields_by_name['m_hdr'].has_options = True
_MESSAGE.fields_by_name['m_hdr']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\320\336\037\001\310\336\037\000'))
_MESSAGE.fields_by_name['mic'].has_options = True
_MESSAGE.fields_by_name['mic']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\003MIC'))
_MESSAGE.fields_by_name['mac_payload'].has_options = True
_MESSAGE.fields_by_name['mac_payload']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\nMACPayload'))
_MACPAYLOAD.fields_by_name['f_hdr'].has_options = True
_MACPAYLOAD.fields_by_name['f_hdr']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\320\336\037\001\310\336\037\000'))
_MACPAYLOAD.fields_by_name['frm_payload'].has_options = True
_MACPAYLOAD.fields_by_name['frm_payload']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\nFRMPayload'))
_FHDR.fields_by_name['dev_addr'].has_options = True
_FHDR.fields_by_name['dev_addr']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\332\336\0372github_com/TheThingsNetwork/ttn/core/types.DevAddr'))
_FHDR.fields_by_name['f_ctrl'].has_options = True
_FHDR.fields_by_name['f_ctrl']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\320\336\037\001\310\336\037\000'))
_FHDR.fields_by_name['f_opts'].has_options = True
_FHDR.fields_by_name['f_opts']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_FCTRL.fields_by_name['adr'].has_options = True
_FCTRL.fields_by_name['adr']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\003ADR'))
_FCTRL.fields_by_name['adr_ack_req'].has_options = True
_FCTRL.fields_by_name['adr_ack_req']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\tADRAckReq'))
_MACCOMMAND.fields_by_name['cid'].has_options = True
_MACCOMMAND.fields_by_name['cid']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\003CID'))
_JOINREQUESTPAYLOAD.fields_by_name['app_eui'].has_options = True
_JOINREQUESTPAYLOAD.fields_by_name['app_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))
_JOINREQUESTPAYLOAD.fields_by_name['dev_eui'].has_options = True
_JOINREQUESTPAYLOAD.fields_by_name['dev_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))
_JOINREQUESTPAYLOAD.fields_by_name['dev_nonce'].has_options = True
_JOINREQUESTPAYLOAD.fields_by_name['dev_nonce']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\332\336\0373github_com/TheThingsNetwork/ttn/core/types.DevNonce'))
_JOINACCEPTPAYLOAD.fields_by_name['app_nonce'].has_options = True
_JOINACCEPTPAYLOAD.fields_by_name['app_nonce']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\332\336\0373github_com/TheThingsNetwork/ttn/core/types.AppNonce'))
_JOINACCEPTPAYLOAD.fields_by_name['net_id'].has_options = True
_JOINACCEPTPAYLOAD.fields_by_name['net_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\005NetID\332\336\0370github_com/TheThingsNetwork/ttn/core/types.NetID'))
_JOINACCEPTPAYLOAD.fields_by_name['dev_addr'].has_options = True
_JOINACCEPTPAYLOAD.fields_by_name['dev_addr']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\332\336\0372github_com/TheThingsNetwork/ttn/core/types.DevAddr'))
_JOINACCEPTPAYLOAD.fields_by_name['dl_settings'].has_options = True
_JOINACCEPTPAYLOAD.fields_by_name['dl_settings']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\320\336\037\001\310\336\037\000'))
_JOINACCEPTPAYLOAD.fields_by_name['cf_list'].has_options = True
_JOINACCEPTPAYLOAD.fields_by_name['cf_list']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006CFList'))
_DLSETTINGS.fields_by_name['rx1_dr_offset'].has_options = True
_DLSETTINGS.fields_by_name['rx1_dr_offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\013Rx1DROffset'))
_DLSETTINGS.fields_by_name['rx2_dr'].has_options = True
_DLSETTINGS.fields_by_name['rx2_dr']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005Rx2DR'))
try:
  # THESE ELEMENTS WILL BE DEPRECATED.
  # Please use the generated *_pb2_grpc.py files instead.
  import grpc
  from grpc.beta import implementations as beta_implementations
  from grpc.beta import interfaces as beta_interfaces
  from grpc.framework.common import cardinality
  from grpc.framework.interfaces.face import utilities as face_utilities
except ImportError:
  pass
# @@protoc_insertion_point(module_scope)
