# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: p4/config/v1/p4info.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
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 google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from p4.config.v1 import p4types_pb2 as p4_dot_config_dot_v1_dot_p4types__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='p4/config/v1/p4info.proto',
  package='p4.config.v1',
  syntax='proto3',
  serialized_pb=_b('\n\x19p4/config/v1/p4info.proto\x12\x0cp4.config.v1\x1a\x19google/protobuf/any.proto\x1a\x1ap4/config/v1/p4types.proto\"\x88\x05\n\x06P4Info\x12\'\n\x08pkg_info\x18\x01 \x01(\x0b\x32\x15.p4.config.v1.PkgInfo\x12#\n\x06tables\x18\x02 \x03(\x0b\x32\x13.p4.config.v1.Table\x12%\n\x07\x61\x63tions\x18\x03 \x03(\x0b\x32\x14.p4.config.v1.Action\x12\x34\n\x0f\x61\x63tion_profiles\x18\x04 \x03(\x0b\x32\x1b.p4.config.v1.ActionProfile\x12\'\n\x08\x63ounters\x18\x05 \x03(\x0b\x32\x15.p4.config.v1.Counter\x12\x34\n\x0f\x64irect_counters\x18\x06 \x03(\x0b\x32\x1b.p4.config.v1.DirectCounter\x12#\n\x06meters\x18\x07 \x03(\x0b\x32\x13.p4.config.v1.Meter\x12\x30\n\rdirect_meters\x18\x08 \x03(\x0b\x32\x19.p4.config.v1.DirectMeter\x12J\n\x1a\x63ontroller_packet_metadata\x18\t \x03(\x0b\x32&.p4.config.v1.ControllerPacketMetadata\x12*\n\nvalue_sets\x18\n \x03(\x0b\x32\x16.p4.config.v1.ValueSet\x12)\n\tregisters\x18\x0b \x03(\x0b\x32\x16.p4.config.v1.Register\x12%\n\x07\x64igests\x18\x0c \x03(\x0b\x32\x14.p4.config.v1.Digest\x12%\n\x07\x65xterns\x18\x64 \x03(\x0b\x32\x14.p4.config.v1.Extern\x12,\n\ttype_info\x18\xc8\x01 \x01(\x0b\x32\x18.p4.config.v1.P4TypeInfo\"3\n\rDocumentation\x12\r\n\x05\x62rief\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"\xa9\x01\n\x07PkgInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12(\n\x03\x64oc\x18\x03 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12\x13\n\x0b\x61nnotations\x18\x04 \x03(\t\x12\x0c\n\x04\x61rch\x18\x05 \x01(\t\x12\x14\n\x0corganization\x18\x06 \x01(\t\x12\x0f\n\x07\x63ontact\x18\x07 \x01(\t\x12\x0b\n\x03url\x18\x08 \x01(\t\"\x87\x02\n\x05P4Ids\"\xfd\x01\n\x06Prefix\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06\x41\x43TION\x10\x01\x12\t\n\x05TABLE\x10\x02\x12\r\n\tVALUE_SET\x10\x03\x12\x15\n\x11\x43ONTROLLER_HEADER\x10\x04\x12\x15\n\x11PSA_EXTERNS_START\x10\x10\x12\x12\n\x0e\x41\x43TION_PROFILE\x10\x11\x12\x0b\n\x07\x43OUNTER\x10\x12\x12\x12\n\x0e\x44IRECT_COUNTER\x10\x13\x12\t\n\x05METER\x10\x14\x12\x10\n\x0c\x44IRECT_METER\x10\x15\x12\x0c\n\x08REGISTER\x10\x16\x12\n\n\x06\x44IGEST\x10\x17\x12\x18\n\x13OTHER_EXTERNS_START\x10\x80\x01\x12\x08\n\x03MAX\x10\xff\x01\"r\n\x08Preamble\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x04 \x03(\t\x12(\n\x03\x64oc\x18\x05 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\"k\n\x06\x45xtern\x12\x16\n\x0e\x65xtern_type_id\x18\x01 \x01(\r\x12\x18\n\x10\x65xtern_type_name\x18\x02 \x01(\t\x12/\n\tinstances\x18\x03 \x03(\x0b\x32\x1c.p4.config.v1.ExternInstance\"^\n\x0e\x45xternInstance\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\"\n\x04info\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\"\xce\x02\n\nMatchField\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x03 \x03(\t\x12\x10\n\x08\x62itwidth\x18\x04 \x01(\x05\x12\x38\n\nmatch_type\x18\x05 \x01(\x0e\x32\".p4.config.v1.MatchField.MatchTypeH\x00\x12\x1a\n\x10other_match_type\x18\x07 \x01(\tH\x00\x12(\n\x03\x64oc\x18\x06 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12,\n\ttype_name\x18\x08 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"H\n\tMatchType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x45XACT\x10\x02\x12\x07\n\x03LPM\x10\x03\x12\x0b\n\x07TERNARY\x10\x04\x12\t\n\x05RANGE\x10\x05\x42\x07\n\x05match\"\xc1\x03\n\x05Table\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12.\n\x0cmatch_fields\x18\x02 \x03(\x0b\x32\x18.p4.config.v1.MatchField\x12,\n\x0b\x61\x63tion_refs\x18\x03 \x03(\x0b\x32\x17.p4.config.v1.ActionRef\x12\x1f\n\x17\x63onst_default_action_id\x18\x04 \x01(\r\x12\x19\n\x11implementation_id\x18\x06 \x01(\r\x12\x1b\n\x13\x64irect_resource_ids\x18\x07 \x03(\r\x12\x0c\n\x04size\x18\x08 \x01(\x03\x12\x46\n\x15idle_timeout_behavior\x18\t \x01(\x0e\x32\'.p4.config.v1.Table.IdleTimeoutBehavior\x12\x16\n\x0eis_const_table\x18\n \x01(\x08\x12.\n\x10other_properties\x18\x64 \x01(\x0b\x32\x14.google.protobuf.Any\"9\n\x13IdleTimeoutBehavior\x12\x0e\n\nNO_TIMEOUT\x10\x00\x12\x12\n\x0eNOTIFY_CONTROL\x10\x01\"\x9c\x01\n\tActionRef\x12\n\n\x02id\x18\x01 \x01(\r\x12,\n\x05scope\x18\x03 \x01(\x0e\x32\x1d.p4.config.v1.ActionRef.Scope\x12\x13\n\x0b\x61nnotations\x18\x02 \x03(\t\"@\n\x05Scope\x12\x15\n\x11TABLE_AND_DEFAULT\x10\x00\x12\x0e\n\nTABLE_ONLY\x10\x01\x12\x10\n\x0c\x44\x45\x46\x41ULT_ONLY\x10\x02\"\x81\x02\n\x06\x41\x63tion\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12*\n\x06params\x18\x02 \x03(\x0b\x32\x1a.p4.config.v1.Action.Param\x1a\xa0\x01\n\x05Param\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x03 \x03(\t\x12\x10\n\x08\x62itwidth\x18\x04 \x01(\x05\x12(\n\x03\x64oc\x18\x05 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12,\n\ttype_name\x18\x06 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"\x89\x01\n\rActionProfile\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\x11\n\ttable_ids\x18\x02 \x03(\r\x12\x15\n\rwith_selector\x18\x03 \x01(\x08\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12\x16\n\x0emax_group_size\x18\x05 \x01(\x05\"v\n\x0b\x43ounterSpec\x12,\n\x04unit\x18\x01 \x01(\x0e\x32\x1e.p4.config.v1.CounterSpec.Unit\"9\n\x04Unit\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\x0b\n\x07PACKETS\x10\x02\x12\x08\n\x04\x42OTH\x10\x03\"\x9e\x01\n\x07\x43ounter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\'\n\x04spec\x18\x02 \x01(\x0b\x32\x19.p4.config.v1.CounterSpec\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x32\n\x0findex_type_name\x18\x04 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"{\n\rDirectCounter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\'\n\x04spec\x18\x02 \x01(\x0b\x32\x19.p4.config.v1.CounterSpec\x12\x17\n\x0f\x64irect_table_id\x18\x03 \x01(\r\"h\n\tMeterSpec\x12*\n\x04unit\x18\x01 \x01(\x0e\x32\x1c.p4.config.v1.MeterSpec.Unit\"/\n\x04Unit\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\x0b\n\x07PACKETS\x10\x02\"\x9a\x01\n\x05Meter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12%\n\x04spec\x18\x02 \x01(\x0b\x32\x17.p4.config.v1.MeterSpec\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x32\n\x0findex_type_name\x18\x04 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"w\n\x0b\x44irectMeter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12%\n\x04spec\x18\x02 \x01(\x0b\x32\x17.p4.config.v1.MeterSpec\x12\x17\n\x0f\x64irect_table_id\x18\x03 \x01(\r\"\x82\x02\n\x18\x43ontrollerPacketMetadata\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\x41\n\x08metadata\x18\x02 \x03(\x0b\x32/.p4.config.v1.ControllerPacketMetadata.Metadata\x1ay\n\x08Metadata\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x03 \x03(\t\x12\x10\n\x08\x62itwidth\x18\x04 \x01(\x05\x12,\n\ttype_name\x18\x05 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"k\n\x08ValueSet\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\'\n\x05match\x18\x02 \x03(\x0b\x32\x18.p4.config.v1.MatchField\x12\x0c\n\x04size\x18\x03 \x01(\x05\"\xa7\x01\n\x08Register\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12/\n\ttype_spec\x18\x02 \x01(\x0b\x32\x1c.p4.config.v1.P4DataTypeSpec\x12\x0c\n\x04size\x18\x03 \x01(\x05\x12\x32\n\x0findex_type_name\x18\x04 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"c\n\x06\x44igest\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12/\n\ttype_spec\x18\x02 \x01(\x0b\x32\x1c.p4.config.v1.P4DataTypeSpecb\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,p4_dot_config_dot_v1_dot_p4types__pb2.DESCRIPTOR,])
_sym_db.RegisterFileDescriptor(DESCRIPTOR)



_P4IDS_PREFIX = _descriptor.EnumDescriptor(
  name='Prefix',
  full_name='p4.config.v1.P4Ids.Prefix',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNSPECIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ACTION', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TABLE', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VALUE_SET', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CONTROLLER_HEADER', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PSA_EXTERNS_START', index=5, number=16,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ACTION_PROFILE', index=6, number=17,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='COUNTER', index=7, number=18,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DIRECT_COUNTER', index=8, number=19,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='METER', index=9, number=20,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DIRECT_METER', index=10, number=21,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='REGISTER', index=11, number=22,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DIGEST', index=12, number=23,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='OTHER_EXTERNS_START', index=13, number=128,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MAX', index=14, number=255,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=985,
  serialized_end=1238,
)
_sym_db.RegisterEnumDescriptor(_P4IDS_PREFIX)

_MATCHFIELD_MATCHTYPE = _descriptor.EnumDescriptor(
  name='MatchType',
  full_name='p4.config.v1.MatchField.MatchType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNSPECIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EXACT', index=1, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LPM', index=2, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TERNARY', index=3, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='RANGE', index=4, number=5,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1815,
  serialized_end=1887,
)
_sym_db.RegisterEnumDescriptor(_MATCHFIELD_MATCHTYPE)

_TABLE_IDLETIMEOUTBEHAVIOR = _descriptor.EnumDescriptor(
  name='IdleTimeoutBehavior',
  full_name='p4.config.v1.Table.IdleTimeoutBehavior',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='NO_TIMEOUT', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NOTIFY_CONTROL', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2291,
  serialized_end=2348,
)
_sym_db.RegisterEnumDescriptor(_TABLE_IDLETIMEOUTBEHAVIOR)

_ACTIONREF_SCOPE = _descriptor.EnumDescriptor(
  name='Scope',
  full_name='p4.config.v1.ActionRef.Scope',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='TABLE_AND_DEFAULT', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TABLE_ONLY', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DEFAULT_ONLY', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2443,
  serialized_end=2507,
)
_sym_db.RegisterEnumDescriptor(_ACTIONREF_SCOPE)

_COUNTERSPEC_UNIT = _descriptor.EnumDescriptor(
  name='Unit',
  full_name='p4.config.v1.CounterSpec.Unit',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNSPECIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BYTES', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PACKETS', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BOTH', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2970,
  serialized_end=3027,
)
_sym_db.RegisterEnumDescriptor(_COUNTERSPEC_UNIT)

_METERSPEC_UNIT = _descriptor.EnumDescriptor(
  name='Unit',
  full_name='p4.config.v1.MeterSpec.Unit',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNSPECIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BYTES', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PACKETS', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2970,
  serialized_end=3017,
)
_sym_db.RegisterEnumDescriptor(_METERSPEC_UNIT)


_P4INFO = _descriptor.Descriptor(
  name='P4Info',
  full_name='p4.config.v1.P4Info',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pkg_info', full_name='p4.config.v1.P4Info.pkg_info', 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=None),
    _descriptor.FieldDescriptor(
      name='tables', full_name='p4.config.v1.P4Info.tables', index=1,
      number=2, 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=None),
    _descriptor.FieldDescriptor(
      name='actions', full_name='p4.config.v1.P4Info.actions', index=2,
      number=3, 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=None),
    _descriptor.FieldDescriptor(
      name='action_profiles', full_name='p4.config.v1.P4Info.action_profiles', 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=None),
    _descriptor.FieldDescriptor(
      name='counters', full_name='p4.config.v1.P4Info.counters', index=4,
      number=5, 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=None),
    _descriptor.FieldDescriptor(
      name='direct_counters', full_name='p4.config.v1.P4Info.direct_counters', index=5,
      number=6, 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=None),
    _descriptor.FieldDescriptor(
      name='meters', full_name='p4.config.v1.P4Info.meters', index=6,
      number=7, 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=None),
    _descriptor.FieldDescriptor(
      name='direct_meters', full_name='p4.config.v1.P4Info.direct_meters', index=7,
      number=8, 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=None),
    _descriptor.FieldDescriptor(
      name='controller_packet_metadata', full_name='p4.config.v1.P4Info.controller_packet_metadata', index=8,
      number=9, 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=None),
    _descriptor.FieldDescriptor(
      name='value_sets', full_name='p4.config.v1.P4Info.value_sets', index=9,
      number=10, 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=None),
    _descriptor.FieldDescriptor(
      name='registers', full_name='p4.config.v1.P4Info.registers', index=10,
      number=11, 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=None),
    _descriptor.FieldDescriptor(
      name='digests', full_name='p4.config.v1.P4Info.digests', index=11,
      number=12, 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=None),
    _descriptor.FieldDescriptor(
      name='externs', full_name='p4.config.v1.P4Info.externs', index=12,
      number=100, 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=None),
    _descriptor.FieldDescriptor(
      name='type_info', full_name='p4.config.v1.P4Info.type_info', index=13,
      number=200, 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=[
  ],
  serialized_start=99,
  serialized_end=747,
)


_DOCUMENTATION = _descriptor.Descriptor(
  name='Documentation',
  full_name='p4.config.v1.Documentation',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='brief', full_name='p4.config.v1.Documentation.brief', index=0,
      number=1, 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='description', full_name='p4.config.v1.Documentation.description', index=1,
      number=2, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=749,
  serialized_end=800,
)


_PKGINFO = _descriptor.Descriptor(
  name='PkgInfo',
  full_name='p4.config.v1.PkgInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='p4.config.v1.PkgInfo.name', index=0,
      number=1, 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='version', full_name='p4.config.v1.PkgInfo.version', index=1,
      number=2, 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='doc', full_name='p4.config.v1.PkgInfo.doc', 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=None),
    _descriptor.FieldDescriptor(
      name='annotations', full_name='p4.config.v1.PkgInfo.annotations', index=3,
      number=4, type=9, cpp_type=9, 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),
    _descriptor.FieldDescriptor(
      name='arch', full_name='p4.config.v1.PkgInfo.arch', index=4,
      number=5, 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='organization', full_name='p4.config.v1.PkgInfo.organization', index=5,
      number=6, 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='contact', full_name='p4.config.v1.PkgInfo.contact', index=6,
      number=7, 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='url', full_name='p4.config.v1.PkgInfo.url', index=7,
      number=8, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=803,
  serialized_end=972,
)


_P4IDS = _descriptor.Descriptor(
  name='P4Ids',
  full_name='p4.config.v1.P4Ids',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _P4IDS_PREFIX,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=975,
  serialized_end=1238,
)


_PREAMBLE = _descriptor.Descriptor(
  name='Preamble',
  full_name='p4.config.v1.Preamble',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='p4.config.v1.Preamble.id', 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=None),
    _descriptor.FieldDescriptor(
      name='name', full_name='p4.config.v1.Preamble.name', index=1,
      number=2, 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='alias', full_name='p4.config.v1.Preamble.alias', index=2,
      number=3, 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='annotations', full_name='p4.config.v1.Preamble.annotations', index=3,
      number=4, type=9, cpp_type=9, 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),
    _descriptor.FieldDescriptor(
      name='doc', full_name='p4.config.v1.Preamble.doc', 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=[
  ],
  serialized_start=1240,
  serialized_end=1354,
)


_EXTERN = _descriptor.Descriptor(
  name='Extern',
  full_name='p4.config.v1.Extern',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='extern_type_id', full_name='p4.config.v1.Extern.extern_type_id', 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=None),
    _descriptor.FieldDescriptor(
      name='extern_type_name', full_name='p4.config.v1.Extern.extern_type_name', index=1,
      number=2, 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='instances', full_name='p4.config.v1.Extern.instances', index=2,
      number=3, 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1356,
  serialized_end=1463,
)


_EXTERNINSTANCE = _descriptor.Descriptor(
  name='ExternInstance',
  full_name='p4.config.v1.ExternInstance',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.ExternInstance.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='info', full_name='p4.config.v1.ExternInstance.info', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1465,
  serialized_end=1559,
)


_MATCHFIELD = _descriptor.Descriptor(
  name='MatchField',
  full_name='p4.config.v1.MatchField',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='p4.config.v1.MatchField.id', 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=None),
    _descriptor.FieldDescriptor(
      name='name', full_name='p4.config.v1.MatchField.name', index=1,
      number=2, 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='annotations', full_name='p4.config.v1.MatchField.annotations', index=2,
      number=3, type=9, cpp_type=9, 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),
    _descriptor.FieldDescriptor(
      name='bitwidth', full_name='p4.config.v1.MatchField.bitwidth', index=3,
      number=4, 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='match_type', full_name='p4.config.v1.MatchField.match_type', index=4,
      number=5, 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='other_match_type', full_name='p4.config.v1.MatchField.other_match_type', index=5,
      number=7, 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='doc', full_name='p4.config.v1.MatchField.doc', index=6,
      number=6, 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='type_name', full_name='p4.config.v1.MatchField.type_name', index=7,
      number=8, 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=[
    _MATCHFIELD_MATCHTYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='match', full_name='p4.config.v1.MatchField.match',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1562,
  serialized_end=1896,
)


_TABLE = _descriptor.Descriptor(
  name='Table',
  full_name='p4.config.v1.Table',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.Table.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='match_fields', full_name='p4.config.v1.Table.match_fields', index=1,
      number=2, 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=None),
    _descriptor.FieldDescriptor(
      name='action_refs', full_name='p4.config.v1.Table.action_refs', index=2,
      number=3, 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=None),
    _descriptor.FieldDescriptor(
      name='const_default_action_id', full_name='p4.config.v1.Table.const_default_action_id', index=3,
      number=4, 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='implementation_id', full_name='p4.config.v1.Table.implementation_id', index=4,
      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='direct_resource_ids', full_name='p4.config.v1.Table.direct_resource_ids', index=5,
      number=7, 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),
    _descriptor.FieldDescriptor(
      name='size', full_name='p4.config.v1.Table.size', index=6,
      number=8, type=3, cpp_type=2, 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='idle_timeout_behavior', full_name='p4.config.v1.Table.idle_timeout_behavior', index=7,
      number=9, 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='is_const_table', full_name='p4.config.v1.Table.is_const_table', index=8,
      number=10, 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='other_properties', full_name='p4.config.v1.Table.other_properties', index=9,
      number=100, 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=[
    _TABLE_IDLETIMEOUTBEHAVIOR,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1899,
  serialized_end=2348,
)


_ACTIONREF = _descriptor.Descriptor(
  name='ActionRef',
  full_name='p4.config.v1.ActionRef',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='p4.config.v1.ActionRef.id', 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=None),
    _descriptor.FieldDescriptor(
      name='scope', full_name='p4.config.v1.ActionRef.scope', index=1,
      number=3, 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='annotations', full_name='p4.config.v1.ActionRef.annotations', index=2,
      number=2, type=9, cpp_type=9, 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=[
    _ACTIONREF_SCOPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2351,
  serialized_end=2507,
)


_ACTION_PARAM = _descriptor.Descriptor(
  name='Param',
  full_name='p4.config.v1.Action.Param',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='p4.config.v1.Action.Param.id', 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=None),
    _descriptor.FieldDescriptor(
      name='name', full_name='p4.config.v1.Action.Param.name', index=1,
      number=2, 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='annotations', full_name='p4.config.v1.Action.Param.annotations', index=2,
      number=3, type=9, cpp_type=9, 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),
    _descriptor.FieldDescriptor(
      name='bitwidth', full_name='p4.config.v1.Action.Param.bitwidth', index=3,
      number=4, 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='doc', full_name='p4.config.v1.Action.Param.doc', 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),
    _descriptor.FieldDescriptor(
      name='type_name', full_name='p4.config.v1.Action.Param.type_name', index=5,
      number=6, 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=[
  ],
  serialized_start=2607,
  serialized_end=2767,
)

_ACTION = _descriptor.Descriptor(
  name='Action',
  full_name='p4.config.v1.Action',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.Action.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='params', full_name='p4.config.v1.Action.params', index=1,
      number=2, 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=None),
  ],
  extensions=[
  ],
  nested_types=[_ACTION_PARAM, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2510,
  serialized_end=2767,
)


_ACTIONPROFILE = _descriptor.Descriptor(
  name='ActionProfile',
  full_name='p4.config.v1.ActionProfile',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.ActionProfile.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='table_ids', full_name='p4.config.v1.ActionProfile.table_ids', index=1,
      number=2, 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),
    _descriptor.FieldDescriptor(
      name='with_selector', full_name='p4.config.v1.ActionProfile.with_selector', 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='size', full_name='p4.config.v1.ActionProfile.size', index=3,
      number=4, type=3, cpp_type=2, 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='max_group_size', full_name='p4.config.v1.ActionProfile.max_group_size', index=4,
      number=5, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2770,
  serialized_end=2907,
)


_COUNTERSPEC = _descriptor.Descriptor(
  name='CounterSpec',
  full_name='p4.config.v1.CounterSpec',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='unit', full_name='p4.config.v1.CounterSpec.unit', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _COUNTERSPEC_UNIT,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2909,
  serialized_end=3027,
)


_COUNTER = _descriptor.Descriptor(
  name='Counter',
  full_name='p4.config.v1.Counter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.Counter.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='spec', full_name='p4.config.v1.Counter.spec', 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=None),
    _descriptor.FieldDescriptor(
      name='size', full_name='p4.config.v1.Counter.size', index=2,
      number=3, type=3, cpp_type=2, 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='index_type_name', full_name='p4.config.v1.Counter.index_type_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3030,
  serialized_end=3188,
)


_DIRECTCOUNTER = _descriptor.Descriptor(
  name='DirectCounter',
  full_name='p4.config.v1.DirectCounter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.DirectCounter.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='spec', full_name='p4.config.v1.DirectCounter.spec', 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=None),
    _descriptor.FieldDescriptor(
      name='direct_table_id', full_name='p4.config.v1.DirectCounter.direct_table_id', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3190,
  serialized_end=3313,
)


_METERSPEC = _descriptor.Descriptor(
  name='MeterSpec',
  full_name='p4.config.v1.MeterSpec',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='unit', full_name='p4.config.v1.MeterSpec.unit', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _METERSPEC_UNIT,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3315,
  serialized_end=3419,
)


_METER = _descriptor.Descriptor(
  name='Meter',
  full_name='p4.config.v1.Meter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.Meter.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='spec', full_name='p4.config.v1.Meter.spec', 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=None),
    _descriptor.FieldDescriptor(
      name='size', full_name='p4.config.v1.Meter.size', index=2,
      number=3, type=3, cpp_type=2, 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='index_type_name', full_name='p4.config.v1.Meter.index_type_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3422,
  serialized_end=3576,
)


_DIRECTMETER = _descriptor.Descriptor(
  name='DirectMeter',
  full_name='p4.config.v1.DirectMeter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.DirectMeter.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='spec', full_name='p4.config.v1.DirectMeter.spec', 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=None),
    _descriptor.FieldDescriptor(
      name='direct_table_id', full_name='p4.config.v1.DirectMeter.direct_table_id', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3578,
  serialized_end=3697,
)


_CONTROLLERPACKETMETADATA_METADATA = _descriptor.Descriptor(
  name='Metadata',
  full_name='p4.config.v1.ControllerPacketMetadata.Metadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='p4.config.v1.ControllerPacketMetadata.Metadata.id', 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=None),
    _descriptor.FieldDescriptor(
      name='name', full_name='p4.config.v1.ControllerPacketMetadata.Metadata.name', index=1,
      number=2, 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='annotations', full_name='p4.config.v1.ControllerPacketMetadata.Metadata.annotations', index=2,
      number=3, type=9, cpp_type=9, 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),
    _descriptor.FieldDescriptor(
      name='bitwidth', full_name='p4.config.v1.ControllerPacketMetadata.Metadata.bitwidth', index=3,
      number=4, 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='type_name', full_name='p4.config.v1.ControllerPacketMetadata.Metadata.type_name', 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=[
  ],
  serialized_start=3837,
  serialized_end=3958,
)

_CONTROLLERPACKETMETADATA = _descriptor.Descriptor(
  name='ControllerPacketMetadata',
  full_name='p4.config.v1.ControllerPacketMetadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.ControllerPacketMetadata.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='metadata', full_name='p4.config.v1.ControllerPacketMetadata.metadata', index=1,
      number=2, 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=None),
  ],
  extensions=[
  ],
  nested_types=[_CONTROLLERPACKETMETADATA_METADATA, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3700,
  serialized_end=3958,
)


_VALUESET = _descriptor.Descriptor(
  name='ValueSet',
  full_name='p4.config.v1.ValueSet',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.ValueSet.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='match', full_name='p4.config.v1.ValueSet.match', index=1,
      number=2, 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=None),
    _descriptor.FieldDescriptor(
      name='size', full_name='p4.config.v1.ValueSet.size', index=2,
      number=3, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3960,
  serialized_end=4067,
)


_REGISTER = _descriptor.Descriptor(
  name='Register',
  full_name='p4.config.v1.Register',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.Register.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='type_spec', full_name='p4.config.v1.Register.type_spec', 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=None),
    _descriptor.FieldDescriptor(
      name='size', full_name='p4.config.v1.Register.size', index=2,
      number=3, 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='index_type_name', full_name='p4.config.v1.Register.index_type_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4070,
  serialized_end=4237,
)


_DIGEST = _descriptor.Descriptor(
  name='Digest',
  full_name='p4.config.v1.Digest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='preamble', full_name='p4.config.v1.Digest.preamble', 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=None),
    _descriptor.FieldDescriptor(
      name='type_spec', full_name='p4.config.v1.Digest.type_spec', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4239,
  serialized_end=4338,
)

_P4INFO.fields_by_name['pkg_info'].message_type = _PKGINFO
_P4INFO.fields_by_name['tables'].message_type = _TABLE
_P4INFO.fields_by_name['actions'].message_type = _ACTION
_P4INFO.fields_by_name['action_profiles'].message_type = _ACTIONPROFILE
_P4INFO.fields_by_name['counters'].message_type = _COUNTER
_P4INFO.fields_by_name['direct_counters'].message_type = _DIRECTCOUNTER
_P4INFO.fields_by_name['meters'].message_type = _METER
_P4INFO.fields_by_name['direct_meters'].message_type = _DIRECTMETER
_P4INFO.fields_by_name['controller_packet_metadata'].message_type = _CONTROLLERPACKETMETADATA
_P4INFO.fields_by_name['value_sets'].message_type = _VALUESET
_P4INFO.fields_by_name['registers'].message_type = _REGISTER
_P4INFO.fields_by_name['digests'].message_type = _DIGEST
_P4INFO.fields_by_name['externs'].message_type = _EXTERN
_P4INFO.fields_by_name['type_info'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4TYPEINFO
_PKGINFO.fields_by_name['doc'].message_type = _DOCUMENTATION
_P4IDS_PREFIX.containing_type = _P4IDS
_PREAMBLE.fields_by_name['doc'].message_type = _DOCUMENTATION
_EXTERN.fields_by_name['instances'].message_type = _EXTERNINSTANCE
_EXTERNINSTANCE.fields_by_name['preamble'].message_type = _PREAMBLE
_EXTERNINSTANCE.fields_by_name['info'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_MATCHFIELD.fields_by_name['match_type'].enum_type = _MATCHFIELD_MATCHTYPE
_MATCHFIELD.fields_by_name['doc'].message_type = _DOCUMENTATION
_MATCHFIELD.fields_by_name['type_name'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4NAMEDTYPE
_MATCHFIELD_MATCHTYPE.containing_type = _MATCHFIELD
_MATCHFIELD.oneofs_by_name['match'].fields.append(
  _MATCHFIELD.fields_by_name['match_type'])
_MATCHFIELD.fields_by_name['match_type'].containing_oneof = _MATCHFIELD.oneofs_by_name['match']
_MATCHFIELD.oneofs_by_name['match'].fields.append(
  _MATCHFIELD.fields_by_name['other_match_type'])
_MATCHFIELD.fields_by_name['other_match_type'].containing_oneof = _MATCHFIELD.oneofs_by_name['match']
_TABLE.fields_by_name['preamble'].message_type = _PREAMBLE
_TABLE.fields_by_name['match_fields'].message_type = _MATCHFIELD
_TABLE.fields_by_name['action_refs'].message_type = _ACTIONREF
_TABLE.fields_by_name['idle_timeout_behavior'].enum_type = _TABLE_IDLETIMEOUTBEHAVIOR
_TABLE.fields_by_name['other_properties'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_TABLE_IDLETIMEOUTBEHAVIOR.containing_type = _TABLE
_ACTIONREF.fields_by_name['scope'].enum_type = _ACTIONREF_SCOPE
_ACTIONREF_SCOPE.containing_type = _ACTIONREF
_ACTION_PARAM.fields_by_name['doc'].message_type = _DOCUMENTATION
_ACTION_PARAM.fields_by_name['type_name'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4NAMEDTYPE
_ACTION_PARAM.containing_type = _ACTION
_ACTION.fields_by_name['preamble'].message_type = _PREAMBLE
_ACTION.fields_by_name['params'].message_type = _ACTION_PARAM
_ACTIONPROFILE.fields_by_name['preamble'].message_type = _PREAMBLE
_COUNTERSPEC.fields_by_name['unit'].enum_type = _COUNTERSPEC_UNIT
_COUNTERSPEC_UNIT.containing_type = _COUNTERSPEC
_COUNTER.fields_by_name['preamble'].message_type = _PREAMBLE
_COUNTER.fields_by_name['spec'].message_type = _COUNTERSPEC
_COUNTER.fields_by_name['index_type_name'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4NAMEDTYPE
_DIRECTCOUNTER.fields_by_name['preamble'].message_type = _PREAMBLE
_DIRECTCOUNTER.fields_by_name['spec'].message_type = _COUNTERSPEC
_METERSPEC.fields_by_name['unit'].enum_type = _METERSPEC_UNIT
_METERSPEC_UNIT.containing_type = _METERSPEC
_METER.fields_by_name['preamble'].message_type = _PREAMBLE
_METER.fields_by_name['spec'].message_type = _METERSPEC
_METER.fields_by_name['index_type_name'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4NAMEDTYPE
_DIRECTMETER.fields_by_name['preamble'].message_type = _PREAMBLE
_DIRECTMETER.fields_by_name['spec'].message_type = _METERSPEC
_CONTROLLERPACKETMETADATA_METADATA.fields_by_name['type_name'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4NAMEDTYPE
_CONTROLLERPACKETMETADATA_METADATA.containing_type = _CONTROLLERPACKETMETADATA
_CONTROLLERPACKETMETADATA.fields_by_name['preamble'].message_type = _PREAMBLE
_CONTROLLERPACKETMETADATA.fields_by_name['metadata'].message_type = _CONTROLLERPACKETMETADATA_METADATA
_VALUESET.fields_by_name['preamble'].message_type = _PREAMBLE
_VALUESET.fields_by_name['match'].message_type = _MATCHFIELD
_REGISTER.fields_by_name['preamble'].message_type = _PREAMBLE
_REGISTER.fields_by_name['type_spec'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4DATATYPESPEC
_REGISTER.fields_by_name['index_type_name'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4NAMEDTYPE
_DIGEST.fields_by_name['preamble'].message_type = _PREAMBLE
_DIGEST.fields_by_name['type_spec'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4DATATYPESPEC
DESCRIPTOR.message_types_by_name['P4Info'] = _P4INFO
DESCRIPTOR.message_types_by_name['Documentation'] = _DOCUMENTATION
DESCRIPTOR.message_types_by_name['PkgInfo'] = _PKGINFO
DESCRIPTOR.message_types_by_name['P4Ids'] = _P4IDS
DESCRIPTOR.message_types_by_name['Preamble'] = _PREAMBLE
DESCRIPTOR.message_types_by_name['Extern'] = _EXTERN
DESCRIPTOR.message_types_by_name['ExternInstance'] = _EXTERNINSTANCE
DESCRIPTOR.message_types_by_name['MatchField'] = _MATCHFIELD
DESCRIPTOR.message_types_by_name['Table'] = _TABLE
DESCRIPTOR.message_types_by_name['ActionRef'] = _ACTIONREF
DESCRIPTOR.message_types_by_name['Action'] = _ACTION
DESCRIPTOR.message_types_by_name['ActionProfile'] = _ACTIONPROFILE
DESCRIPTOR.message_types_by_name['CounterSpec'] = _COUNTERSPEC
DESCRIPTOR.message_types_by_name['Counter'] = _COUNTER
DESCRIPTOR.message_types_by_name['DirectCounter'] = _DIRECTCOUNTER
DESCRIPTOR.message_types_by_name['MeterSpec'] = _METERSPEC
DESCRIPTOR.message_types_by_name['Meter'] = _METER
DESCRIPTOR.message_types_by_name['DirectMeter'] = _DIRECTMETER
DESCRIPTOR.message_types_by_name['ControllerPacketMetadata'] = _CONTROLLERPACKETMETADATA
DESCRIPTOR.message_types_by_name['ValueSet'] = _VALUESET
DESCRIPTOR.message_types_by_name['Register'] = _REGISTER
DESCRIPTOR.message_types_by_name['Digest'] = _DIGEST

P4Info = _reflection.GeneratedProtocolMessageType('P4Info', (_message.Message,), dict(
  DESCRIPTOR = _P4INFO,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.P4Info)
  ))
_sym_db.RegisterMessage(P4Info)

Documentation = _reflection.GeneratedProtocolMessageType('Documentation', (_message.Message,), dict(
  DESCRIPTOR = _DOCUMENTATION,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.Documentation)
  ))
_sym_db.RegisterMessage(Documentation)

PkgInfo = _reflection.GeneratedProtocolMessageType('PkgInfo', (_message.Message,), dict(
  DESCRIPTOR = _PKGINFO,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.PkgInfo)
  ))
_sym_db.RegisterMessage(PkgInfo)

P4Ids = _reflection.GeneratedProtocolMessageType('P4Ids', (_message.Message,), dict(
  DESCRIPTOR = _P4IDS,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.P4Ids)
  ))
_sym_db.RegisterMessage(P4Ids)

Preamble = _reflection.GeneratedProtocolMessageType('Preamble', (_message.Message,), dict(
  DESCRIPTOR = _PREAMBLE,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.Preamble)
  ))
_sym_db.RegisterMessage(Preamble)

Extern = _reflection.GeneratedProtocolMessageType('Extern', (_message.Message,), dict(
  DESCRIPTOR = _EXTERN,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.Extern)
  ))
_sym_db.RegisterMessage(Extern)

ExternInstance = _reflection.GeneratedProtocolMessageType('ExternInstance', (_message.Message,), dict(
  DESCRIPTOR = _EXTERNINSTANCE,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.ExternInstance)
  ))
_sym_db.RegisterMessage(ExternInstance)

MatchField = _reflection.GeneratedProtocolMessageType('MatchField', (_message.Message,), dict(
  DESCRIPTOR = _MATCHFIELD,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.MatchField)
  ))
_sym_db.RegisterMessage(MatchField)

Table = _reflection.GeneratedProtocolMessageType('Table', (_message.Message,), dict(
  DESCRIPTOR = _TABLE,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.Table)
  ))
_sym_db.RegisterMessage(Table)

ActionRef = _reflection.GeneratedProtocolMessageType('ActionRef', (_message.Message,), dict(
  DESCRIPTOR = _ACTIONREF,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.ActionRef)
  ))
_sym_db.RegisterMessage(ActionRef)

Action = _reflection.GeneratedProtocolMessageType('Action', (_message.Message,), dict(

  Param = _reflection.GeneratedProtocolMessageType('Param', (_message.Message,), dict(
    DESCRIPTOR = _ACTION_PARAM,
    __module__ = 'p4.config.v1.p4info_pb2'
    # @@protoc_insertion_point(class_scope:p4.config.v1.Action.Param)
    ))
  ,
  DESCRIPTOR = _ACTION,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.Action)
  ))
_sym_db.RegisterMessage(Action)
_sym_db.RegisterMessage(Action.Param)

ActionProfile = _reflection.GeneratedProtocolMessageType('ActionProfile', (_message.Message,), dict(
  DESCRIPTOR = _ACTIONPROFILE,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.ActionProfile)
  ))
_sym_db.RegisterMessage(ActionProfile)

CounterSpec = _reflection.GeneratedProtocolMessageType('CounterSpec', (_message.Message,), dict(
  DESCRIPTOR = _COUNTERSPEC,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.CounterSpec)
  ))
_sym_db.RegisterMessage(CounterSpec)

Counter = _reflection.GeneratedProtocolMessageType('Counter', (_message.Message,), dict(
  DESCRIPTOR = _COUNTER,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.Counter)
  ))
_sym_db.RegisterMessage(Counter)

DirectCounter = _reflection.GeneratedProtocolMessageType('DirectCounter', (_message.Message,), dict(
  DESCRIPTOR = _DIRECTCOUNTER,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.DirectCounter)
  ))
_sym_db.RegisterMessage(DirectCounter)

MeterSpec = _reflection.GeneratedProtocolMessageType('MeterSpec', (_message.Message,), dict(
  DESCRIPTOR = _METERSPEC,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.MeterSpec)
  ))
_sym_db.RegisterMessage(MeterSpec)

Meter = _reflection.GeneratedProtocolMessageType('Meter', (_message.Message,), dict(
  DESCRIPTOR = _METER,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.Meter)
  ))
_sym_db.RegisterMessage(Meter)

DirectMeter = _reflection.GeneratedProtocolMessageType('DirectMeter', (_message.Message,), dict(
  DESCRIPTOR = _DIRECTMETER,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.DirectMeter)
  ))
_sym_db.RegisterMessage(DirectMeter)

ControllerPacketMetadata = _reflection.GeneratedProtocolMessageType('ControllerPacketMetadata', (_message.Message,), dict(

  Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), dict(
    DESCRIPTOR = _CONTROLLERPACKETMETADATA_METADATA,
    __module__ = 'p4.config.v1.p4info_pb2'
    # @@protoc_insertion_point(class_scope:p4.config.v1.ControllerPacketMetadata.Metadata)
    ))
  ,
  DESCRIPTOR = _CONTROLLERPACKETMETADATA,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.ControllerPacketMetadata)
  ))
_sym_db.RegisterMessage(ControllerPacketMetadata)
_sym_db.RegisterMessage(ControllerPacketMetadata.Metadata)

ValueSet = _reflection.GeneratedProtocolMessageType('ValueSet', (_message.Message,), dict(
  DESCRIPTOR = _VALUESET,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.ValueSet)
  ))
_sym_db.RegisterMessage(ValueSet)

Register = _reflection.GeneratedProtocolMessageType('Register', (_message.Message,), dict(
  DESCRIPTOR = _REGISTER,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.Register)
  ))
_sym_db.RegisterMessage(Register)

Digest = _reflection.GeneratedProtocolMessageType('Digest', (_message.Message,), dict(
  DESCRIPTOR = _DIGEST,
  __module__ = 'p4.config.v1.p4info_pb2'
  # @@protoc_insertion_point(class_scope:p4.config.v1.Digest)
  ))
_sym_db.RegisterMessage(Digest)


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)
