# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: p4/v1/p4runtime.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 google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2
from p4.config.v1 import p4info_pb2 as p4_dot_config_dot_v1_dot_p4info__pb2
from p4.v1 import p4data_pb2 as p4_dot_v1_dot_p4data__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='p4/v1/p4runtime.proto',
  package='p4.v1',
  syntax='proto3',
  serialized_pb=_b('\n\x15p4/v1/p4runtime.proto\x12\x05p4.v1\x1a\x19google/protobuf/any.proto\x1a\x17google/rpc/status.proto\x1a\x19p4/config/v1/p4info.proto\x1a\x12p4/v1/p4data.proto\"\xfa\x01\n\x0cWriteRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\x12#\n\x0b\x65lection_id\x18\x03 \x01(\x0b\x32\x0e.p4.v1.Uint128\x12\x1e\n\x07updates\x18\x04 \x03(\x0b\x32\r.p4.v1.Update\x12\x30\n\tatomicity\x18\x05 \x01(\x0e\x32\x1d.p4.v1.WriteRequest.Atomicity\"O\n\tAtomicity\x12\x15\n\x11\x43ONTINUE_ON_ERROR\x10\x00\x12\x15\n\x11ROLLBACK_ON_ERROR\x10\x01\x12\x14\n\x10\x44\x41TAPLANE_ATOMIC\x10\x02\"\x0f\n\rWriteResponse\"A\n\x0bReadRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x1f\n\x08\x65ntities\x18\x02 \x03(\x0b\x32\r.p4.v1.Entity\"/\n\x0cReadResponse\x12\x1f\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\r.p4.v1.Entity\"\x86\x01\n\x06Update\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.p4.v1.Update.Type\x12\x1d\n\x06\x65ntity\x18\x02 \x01(\x0b\x32\r.p4.v1.Entity\";\n\x04Type\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06INSERT\x10\x01\x12\n\n\x06MODIFY\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\"\x87\x05\n\x06\x45ntity\x12*\n\x0c\x65xtern_entry\x18\x01 \x01(\x0b\x32\x12.p4.v1.ExternEntryH\x00\x12(\n\x0btable_entry\x18\x02 \x01(\x0b\x32\x11.p4.v1.TableEntryH\x00\x12;\n\x15\x61\x63tion_profile_member\x18\x03 \x01(\x0b\x32\x1a.p4.v1.ActionProfileMemberH\x00\x12\x39\n\x14\x61\x63tion_profile_group\x18\x04 \x01(\x0b\x32\x19.p4.v1.ActionProfileGroupH\x00\x12(\n\x0bmeter_entry\x18\x05 \x01(\x0b\x32\x11.p4.v1.MeterEntryH\x00\x12\x35\n\x12\x64irect_meter_entry\x18\x06 \x01(\x0b\x32\x17.p4.v1.DirectMeterEntryH\x00\x12,\n\rcounter_entry\x18\x07 \x01(\x0b\x32\x13.p4.v1.CounterEntryH\x00\x12\x39\n\x14\x64irect_counter_entry\x18\x08 \x01(\x0b\x32\x19.p4.v1.DirectCounterEntryH\x00\x12N\n\x1fpacket_replication_engine_entry\x18\t \x01(\x0b\x32#.p4.v1.PacketReplicationEngineEntryH\x00\x12/\n\x0fvalue_set_entry\x18\n \x01(\x0b\x32\x14.p4.v1.ValueSetEntryH\x00\x12.\n\x0eregister_entry\x18\x0b \x01(\x0b\x32\x14.p4.v1.RegisterEntryH\x00\x12*\n\x0c\x64igest_entry\x18\x0c \x01(\x0b\x32\x12.p4.v1.DigestEntryH\x00\x42\x08\n\x06\x65ntity\"]\n\x0b\x45xternEntry\x12\x16\n\x0e\x65xtern_type_id\x18\x01 \x01(\r\x12\x11\n\textern_id\x18\x02 \x01(\r\x12#\n\x05\x65ntry\x18\x03 \x01(\x0b\x32\x14.google.protobuf.Any\"\xfa\x02\n\nTableEntry\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12 \n\x05match\x18\x02 \x03(\x0b\x32\x11.p4.v1.FieldMatch\x12\"\n\x06\x61\x63tion\x18\x03 \x01(\x0b\x32\x12.p4.v1.TableAction\x12\x10\n\x08priority\x18\x04 \x01(\x05\x12\x1b\n\x13\x63ontroller_metadata\x18\x05 \x01(\x04\x12(\n\x0cmeter_config\x18\x06 \x01(\x0b\x32\x12.p4.v1.MeterConfig\x12(\n\x0c\x63ounter_data\x18\x07 \x01(\x0b\x32\x12.p4.v1.CounterData\x12\x19\n\x11is_default_action\x18\x08 \x01(\x08\x12\x17\n\x0fidle_timeout_ns\x18\t \x01(\x03\x12:\n\x13time_since_last_hit\x18\n \x01(\x0b\x32\x1d.p4.v1.TableEntry.IdleTimeout\x1a!\n\x0bIdleTimeout\x12\x12\n\nelapsed_ns\x18\x01 \x01(\x03\"\x8f\x03\n\nFieldMatch\x12\x10\n\x08\x66ield_id\x18\x01 \x01(\r\x12(\n\x05\x65xact\x18\x02 \x01(\x0b\x32\x17.p4.v1.FieldMatch.ExactH\x00\x12,\n\x07ternary\x18\x03 \x01(\x0b\x32\x19.p4.v1.FieldMatch.TernaryH\x00\x12$\n\x03lpm\x18\x04 \x01(\x0b\x32\x15.p4.v1.FieldMatch.LPMH\x00\x12(\n\x05range\x18\x06 \x01(\x0b\x32\x17.p4.v1.FieldMatch.RangeH\x00\x12%\n\x05other\x18\x64 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a\x16\n\x05\x45xact\x12\r\n\x05value\x18\x01 \x01(\x0c\x1a&\n\x07Ternary\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x0c\n\x04mask\x18\x02 \x01(\x0c\x1a(\n\x03LPM\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x12\n\nprefix_len\x18\x02 \x01(\x05\x1a\"\n\x05Range\x12\x0b\n\x03low\x18\x01 \x01(\x0c\x12\x0c\n\x04high\x18\x02 \x01(\x0c\x42\x12\n\x10\x66ield_match_type\"\xc1\x01\n\x0bTableAction\x12\x1f\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\r.p4.v1.ActionH\x00\x12\"\n\x18\x61\x63tion_profile_member_id\x18\x02 \x01(\rH\x00\x12!\n\x17\x61\x63tion_profile_group_id\x18\x03 \x01(\rH\x00\x12\x42\n\x19\x61\x63tion_profile_action_set\x18\x04 \x01(\x0b\x32\x1d.p4.v1.ActionProfileActionSetH\x00\x42\x06\n\x04type\"j\n\x06\x41\x63tion\x12\x11\n\taction_id\x18\x01 \x01(\r\x12#\n\x06params\x18\x04 \x03(\x0b\x32\x13.p4.v1.Action.Param\x1a(\n\x05Param\x12\x10\n\x08param_id\x18\x02 \x01(\r\x12\r\n\x05value\x18\x03 \x01(\x0c\"T\n\x16\x41\x63tionProfileActionSet\x12:\n\x16\x61\x63tion_profile_actions\x18\x01 \x03(\x0b\x32\x1a.p4.v1.ActionProfileAction\"S\n\x13\x41\x63tionProfileAction\x12\x1d\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\r.p4.v1.Action\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\r\n\x05watch\x18\x03 \x01(\x05\"b\n\x13\x41\x63tionProfileMember\x12\x19\n\x11\x61\x63tion_profile_id\x18\x01 \x01(\r\x12\x11\n\tmember_id\x18\x02 \x01(\r\x12\x1d\n\x06\x61\x63tion\x18\x03 \x01(\x0b\x32\r.p4.v1.Action\"\xc2\x01\n\x12\x41\x63tionProfileGroup\x12\x19\n\x11\x61\x63tion_profile_id\x18\x01 \x01(\r\x12\x10\n\x08group_id\x18\x02 \x01(\r\x12\x31\n\x07members\x18\x03 \x03(\x0b\x32 .p4.v1.ActionProfileGroup.Member\x12\x10\n\x08max_size\x18\x04 \x01(\x05\x1a:\n\x06Member\x12\x11\n\tmember_id\x18\x01 \x01(\r\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\r\n\x05watch\x18\x03 \x01(\r\"\x16\n\x05Index\x12\r\n\x05index\x18\x01 \x01(\x03\"_\n\nMeterEntry\x12\x10\n\x08meter_id\x18\x01 \x01(\r\x12\x1b\n\x05index\x18\x02 \x01(\x0b\x32\x0c.p4.v1.Index\x12\"\n\x06\x63onfig\x18\x03 \x01(\x0b\x32\x12.p4.v1.MeterConfig\"^\n\x10\x44irectMeterEntry\x12&\n\x0btable_entry\x18\x01 \x01(\x0b\x32\x11.p4.v1.TableEntry\x12\"\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x12.p4.v1.MeterConfig\"G\n\x0bMeterConfig\x12\x0b\n\x03\x63ir\x18\x01 \x01(\x03\x12\x0e\n\x06\x63\x62urst\x18\x02 \x01(\x03\x12\x0b\n\x03pir\x18\x03 \x01(\x03\x12\x0e\n\x06pburst\x18\x04 \x01(\x03\"a\n\x0c\x43ounterEntry\x12\x12\n\ncounter_id\x18\x01 \x01(\r\x12\x1b\n\x05index\x18\x02 \x01(\x0b\x32\x0c.p4.v1.Index\x12 \n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x12.p4.v1.CounterData\"^\n\x12\x44irectCounterEntry\x12&\n\x0btable_entry\x18\x01 \x01(\x0b\x32\x11.p4.v1.TableEntry\x12 \n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x12.p4.v1.CounterData\"7\n\x0b\x43ounterData\x12\x12\n\nbyte_count\x18\x01 \x01(\x03\x12\x14\n\x0cpacket_count\x18\x02 \x01(\x03\"\x9c\x01\n\x1cPacketReplicationEngineEntry\x12;\n\x15multicast_group_entry\x18\x01 \x01(\x0b\x32\x1a.p4.v1.MulticastGroupEntryH\x00\x12\x37\n\x13\x63lone_session_entry\x18\x02 \x01(\x0b\x32\x18.p4.v1.CloneSessionEntryH\x00\x42\x06\n\x04type\"0\n\x07Replica\x12\x13\n\x0b\x65gress_port\x18\x01 \x01(\r\x12\x10\n\x08instance\x18\x02 \x01(\r\"S\n\x13MulticastGroupEntry\x12\x1a\n\x12multicast_group_id\x18\x01 \x01(\r\x12 \n\x08replicas\x18\x02 \x03(\x0b\x32\x0e.p4.v1.Replica\"\x80\x01\n\x11\x43loneSessionEntry\x12\x12\n\nsession_id\x18\x01 \x01(\r\x12 \n\x08replicas\x18\x02 \x03(\x0b\x32\x0e.p4.v1.Replica\x12\x18\n\x10\x63lass_of_service\x18\x03 \x01(\r\x12\x1b\n\x13packet_length_bytes\x18\x04 \x01(\x05\"2\n\x0eValueSetMember\x12 \n\x05match\x18\x01 \x03(\x0b\x32\x11.p4.v1.FieldMatch\"M\n\rValueSetEntry\x12\x14\n\x0cvalue_set_id\x18\x01 \x01(\r\x12&\n\x07members\x18\x02 \x03(\x0b\x32\x15.p4.v1.ValueSetMember\"^\n\rRegisterEntry\x12\x13\n\x0bregister_id\x18\x01 \x01(\r\x12\x1b\n\x05index\x18\x02 \x01(\x0b\x32\x0c.p4.v1.Index\x12\x1b\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\r.p4.v1.P4Data\"\x9c\x01\n\x0b\x44igestEntry\x12\x11\n\tdigest_id\x18\x01 \x01(\r\x12)\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x19.p4.v1.DigestEntry.Config\x1aO\n\x06\x43onfig\x12\x16\n\x0emax_timeout_ns\x18\x01 \x01(\x03\x12\x15\n\rmax_list_size\x18\x02 \x01(\x05\x12\x16\n\x0e\x61\x63k_timeout_ns\x18\x03 \x01(\x03\"\xce\x01\n\x14StreamMessageRequest\x12\x35\n\x0b\x61rbitration\x18\x01 \x01(\x0b\x32\x1e.p4.v1.MasterArbitrationUpdateH\x00\x12\"\n\x06packet\x18\x02 \x01(\x0b\x32\x10.p4.v1.PacketOutH\x00\x12*\n\ndigest_ack\x18\x03 \x01(\x0b\x32\x14.p4.v1.DigestListAckH\x00\x12%\n\x05other\x18\x04 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x08\n\x06update\"E\n\tPacketOut\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\'\n\x08metadata\x18\x02 \x03(\x0b\x32\x15.p4.v1.PacketMetadata\"3\n\rDigestListAck\x12\x11\n\tdigest_id\x18\x01 \x01(\r\x12\x0f\n\x07list_id\x18\x02 \x01(\x04\"\x8c\x02\n\x15StreamMessageResponse\x12\x35\n\x0b\x61rbitration\x18\x01 \x01(\x0b\x32\x1e.p4.v1.MasterArbitrationUpdateH\x00\x12!\n\x06packet\x18\x02 \x01(\x0b\x32\x0f.p4.v1.PacketInH\x00\x12#\n\x06\x64igest\x18\x03 \x01(\x0b\x32\x11.p4.v1.DigestListH\x00\x12\x43\n\x19idle_timeout_notification\x18\x04 \x01(\x0b\x32\x1e.p4.v1.IdleTimeoutNotificationH\x00\x12%\n\x05other\x18\x05 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x08\n\x06update\"D\n\x08PacketIn\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\'\n\x08metadata\x18\x02 \x03(\x0b\x32\x15.p4.v1.PacketMetadata\"`\n\nDigestList\x12\x11\n\tdigest_id\x18\x01 \x01(\r\x12\x0f\n\x07list_id\x18\x02 \x01(\x04\x12\x1b\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\r.p4.v1.P4Data\x12\x11\n\ttimestamp\x18\x04 \x01(\x03\"4\n\x0ePacketMetadata\x12\x13\n\x0bmetadata_id\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x90\x01\n\x17MasterArbitrationUpdate\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x19\n\x04role\x18\x02 \x01(\x0b\x32\x0b.p4.v1.Role\x12#\n\x0b\x65lection_id\x18\x03 \x01(\x0b\x32\x0e.p4.v1.Uint128\x12\"\n\x06status\x18\x04 \x01(\x0b\x32\x12.google.rpc.Status\"8\n\x04Role\x12\n\n\x02id\x18\x01 \x01(\x04\x12$\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\"T\n\x17IdleTimeoutNotification\x12&\n\x0btable_entry\x18\x01 \x03(\x0b\x32\x11.p4.v1.TableEntry\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"$\n\x07Uint128\x12\x0c\n\x04high\x18\x01 \x01(\x04\x12\x0b\n\x03low\x18\x02 \x01(\x04\"\xd9\x02\n\"SetForwardingPipelineConfigRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\x12#\n\x0b\x65lection_id\x18\x03 \x01(\x0b\x32\x0e.p4.v1.Uint128\x12@\n\x06\x61\x63tion\x18\x04 \x01(\x0e\x32\x30.p4.v1.SetForwardingPipelineConfigRequest.Action\x12/\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\x1f.p4.v1.ForwardingPipelineConfig\"w\n\x06\x41\x63tion\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06VERIFY\x10\x01\x12\x13\n\x0fVERIFY_AND_SAVE\x10\x02\x12\x15\n\x11VERIFY_AND_COMMIT\x10\x03\x12\n\n\x06\x43OMMIT\x10\x04\x12\x18\n\x14RECONCILE_AND_COMMIT\x10\x05\"%\n#SetForwardingPipelineConfigResponse\"\xac\x01\n\x18\x46orwardingPipelineConfig\x12$\n\x06p4info\x18\x01 \x01(\x0b\x32\x14.p4.config.v1.P4Info\x12\x18\n\x10p4_device_config\x18\x02 \x01(\x0c\x12\x36\n\x06\x63ookie\x18\x03 \x01(\x0b\x32&.p4.v1.ForwardingPipelineConfig.Cookie\x1a\x18\n\x06\x43ookie\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x04\"\xe5\x01\n\"GetForwardingPipelineConfigRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12M\n\rresponse_type\x18\x02 \x01(\x0e\x32\x36.p4.v1.GetForwardingPipelineConfigRequest.ResponseType\"]\n\x0cResponseType\x12\x07\n\x03\x41LL\x10\x00\x12\x0f\n\x0b\x43OOKIE_ONLY\x10\x01\x12\x15\n\x11P4INFO_AND_COOKIE\x10\x02\x12\x1c\n\x18\x44\x45VICE_CONFIG_AND_COOKIE\x10\x03\"V\n#GetForwardingPipelineConfigResponse\x12/\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.p4.v1.ForwardingPipelineConfig\"t\n\x05\x45rror\x12\x16\n\x0e\x63\x61nonical_code\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\r\n\x05space\x18\x03 \x01(\t\x12\x0c\n\x04\x63ode\x18\x04 \x01(\x05\x12%\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32\x14.google.protobuf.Any*\x8a\x01\n\x07SdnPort\x12\x14\n\x10SDN_PORT_UNKNOWN\x10\x00\x12\x10\n\x0cSDN_PORT_MIN\x10\x01\x12\x19\n\x0cSDN_PORT_MAX\x10\xff\xfd\xff\xff\xff\xff\xff\xff\xff\x01\x12!\n\x14SDN_PORT_RECIRCULATE\x10\xfa\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x19\n\x0cSDN_PORT_CPU\x10\xfd\xff\xff\xff\xff\xff\xff\xff\xff\x01\x32\xb8\x03\n\tP4Runtime\x12\x34\n\x05Write\x12\x13.p4.v1.WriteRequest\x1a\x14.p4.v1.WriteResponse\"\x00\x12\x33\n\x04Read\x12\x12.p4.v1.ReadRequest\x1a\x13.p4.v1.ReadResponse\"\x00\x30\x01\x12v\n\x1bSetForwardingPipelineConfig\x12).p4.v1.SetForwardingPipelineConfigRequest\x1a*.p4.v1.SetForwardingPipelineConfigResponse\"\x00\x12v\n\x1bGetForwardingPipelineConfig\x12).p4.v1.GetForwardingPipelineConfigRequest\x1a*.p4.v1.GetForwardingPipelineConfigResponse\"\x00\x12P\n\rStreamChannel\x12\x1b.p4.v1.StreamMessageRequest\x1a\x1c.p4.v1.StreamMessageResponse\"\x00(\x01\x30\x01\x62\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,p4_dot_config_dot_v1_dot_p4info__pb2.DESCRIPTOR,p4_dot_v1_dot_p4data__pb2.DESCRIPTOR,])
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

_SDNPORT = _descriptor.EnumDescriptor(
  name='SdnPort',
  full_name='p4.v1.SdnPort',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='SDN_PORT_UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SDN_PORT_MIN', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SDN_PORT_MAX', index=2, number=-257,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SDN_PORT_RECIRCULATE', index=3, number=-6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SDN_PORT_CPU', index=4, number=-3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=6463,
  serialized_end=6601,
)
_sym_db.RegisterEnumDescriptor(_SDNPORT)

SdnPort = enum_type_wrapper.EnumTypeWrapper(_SDNPORT)
SDN_PORT_UNKNOWN = 0
SDN_PORT_MIN = 1
SDN_PORT_MAX = -257
SDN_PORT_RECIRCULATE = -6
SDN_PORT_CPU = -3


_WRITEREQUEST_ATOMICITY = _descriptor.EnumDescriptor(
  name='Atomicity',
  full_name='p4.v1.WriteRequest.Atomicity',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='CONTINUE_ON_ERROR', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ROLLBACK_ON_ERROR', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DATAPLANE_ATOMIC', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=303,
  serialized_end=382,
)
_sym_db.RegisterEnumDescriptor(_WRITEREQUEST_ATOMICITY)

_UPDATE_TYPE = _descriptor.EnumDescriptor(
  name='Type',
  full_name='p4.v1.Update.Type',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNSPECIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='INSERT', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MODIFY', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DELETE', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=593,
  serialized_end=652,
)
_sym_db.RegisterEnumDescriptor(_UPDATE_TYPE)

_SETFORWARDINGPIPELINECONFIGREQUEST_ACTION = _descriptor.EnumDescriptor(
  name='Action',
  full_name='p4.v1.SetForwardingPipelineConfigRequest.Action',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNSPECIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFY', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFY_AND_SAVE', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFY_AND_COMMIT', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='COMMIT', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='RECONCILE_AND_COMMIT', index=5, number=5,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=5689,
  serialized_end=5808,
)
_sym_db.RegisterEnumDescriptor(_SETFORWARDINGPIPELINECONFIGREQUEST_ACTION)

_GETFORWARDINGPIPELINECONFIGREQUEST_RESPONSETYPE = _descriptor.EnumDescriptor(
  name='ResponseType',
  full_name='p4.v1.GetForwardingPipelineConfigRequest.ResponseType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ALL', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='COOKIE_ONLY', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='P4INFO_AND_COOKIE', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DEVICE_CONFIG_AND_COOKIE', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=6161,
  serialized_end=6254,
)
_sym_db.RegisterEnumDescriptor(_GETFORWARDINGPIPELINECONFIGREQUEST_RESPONSETYPE)


_WRITEREQUEST = _descriptor.Descriptor(
  name='WriteRequest',
  full_name='p4.v1.WriteRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='device_id', full_name='p4.v1.WriteRequest.device_id', index=0,
      number=1, type=4, cpp_type=4, 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='role_id', full_name='p4.v1.WriteRequest.role_id', index=1,
      number=2, type=4, cpp_type=4, 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='election_id', full_name='p4.v1.WriteRequest.election_id', 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='updates', full_name='p4.v1.WriteRequest.updates', 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='atomicity', full_name='p4.v1.WriteRequest.atomicity', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _WRITEREQUEST_ATOMICITY,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=132,
  serialized_end=382,
)


_WRITERESPONSE = _descriptor.Descriptor(
  name='WriteResponse',
  full_name='p4.v1.WriteResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=384,
  serialized_end=399,
)


_READREQUEST = _descriptor.Descriptor(
  name='ReadRequest',
  full_name='p4.v1.ReadRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='device_id', full_name='p4.v1.ReadRequest.device_id', index=0,
      number=1, type=4, cpp_type=4, 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='entities', full_name='p4.v1.ReadRequest.entities', 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=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=401,
  serialized_end=466,
)


_READRESPONSE = _descriptor.Descriptor(
  name='ReadResponse',
  full_name='p4.v1.ReadResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='entities', full_name='p4.v1.ReadResponse.entities', index=0,
      number=1, 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=468,
  serialized_end=515,
)


_UPDATE = _descriptor.Descriptor(
  name='Update',
  full_name='p4.v1.Update',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='p4.v1.Update.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='entity', full_name='p4.v1.Update.entity', 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=[
    _UPDATE_TYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=518,
  serialized_end=652,
)


_ENTITY = _descriptor.Descriptor(
  name='Entity',
  full_name='p4.v1.Entity',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='extern_entry', full_name='p4.v1.Entity.extern_entry', 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_entry', full_name='p4.v1.Entity.table_entry', 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='action_profile_member', full_name='p4.v1.Entity.action_profile_member', 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='action_profile_group', full_name='p4.v1.Entity.action_profile_group', 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='meter_entry', full_name='p4.v1.Entity.meter_entry', 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='direct_meter_entry', full_name='p4.v1.Entity.direct_meter_entry', 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),
    _descriptor.FieldDescriptor(
      name='counter_entry', full_name='p4.v1.Entity.counter_entry', 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=None),
    _descriptor.FieldDescriptor(
      name='direct_counter_entry', full_name='p4.v1.Entity.direct_counter_entry', 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),
    _descriptor.FieldDescriptor(
      name='packet_replication_engine_entry', full_name='p4.v1.Entity.packet_replication_engine_entry', index=8,
      number=9, 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='value_set_entry', full_name='p4.v1.Entity.value_set_entry', index=9,
      number=10, 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='register_entry', full_name='p4.v1.Entity.register_entry', index=10,
      number=11, 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='digest_entry', full_name='p4.v1.Entity.digest_entry', index=11,
      number=12, 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='entity', full_name='p4.v1.Entity.entity',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=655,
  serialized_end=1302,
)


_EXTERNENTRY = _descriptor.Descriptor(
  name='ExternEntry',
  full_name='p4.v1.ExternEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='extern_type_id', full_name='p4.v1.ExternEntry.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_id', full_name='p4.v1.ExternEntry.extern_id', 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=None),
    _descriptor.FieldDescriptor(
      name='entry', full_name='p4.v1.ExternEntry.entry', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1304,
  serialized_end=1397,
)


_TABLEENTRY_IDLETIMEOUT = _descriptor.Descriptor(
  name='IdleTimeout',
  full_name='p4.v1.TableEntry.IdleTimeout',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='elapsed_ns', full_name='p4.v1.TableEntry.IdleTimeout.elapsed_ns', index=0,
      number=1, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1745,
  serialized_end=1778,
)

_TABLEENTRY = _descriptor.Descriptor(
  name='TableEntry',
  full_name='p4.v1.TableEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='table_id', full_name='p4.v1.TableEntry.table_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='match', full_name='p4.v1.TableEntry.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='action', full_name='p4.v1.TableEntry.action', 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='priority', full_name='p4.v1.TableEntry.priority', 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='controller_metadata', full_name='p4.v1.TableEntry.controller_metadata', index=4,
      number=5, type=4, cpp_type=4, 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='meter_config', full_name='p4.v1.TableEntry.meter_config', 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),
    _descriptor.FieldDescriptor(
      name='counter_data', full_name='p4.v1.TableEntry.counter_data', 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=None),
    _descriptor.FieldDescriptor(
      name='is_default_action', full_name='p4.v1.TableEntry.is_default_action', index=7,
      number=8, 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='idle_timeout_ns', full_name='p4.v1.TableEntry.idle_timeout_ns', index=8,
      number=9, 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='time_since_last_hit', full_name='p4.v1.TableEntry.time_since_last_hit', index=9,
      number=10, 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=[_TABLEENTRY_IDLETIMEOUT, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1400,
  serialized_end=1778,
)


_FIELDMATCH_EXACT = _descriptor.Descriptor(
  name='Exact',
  full_name='p4.v1.FieldMatch.Exact',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='p4.v1.FieldMatch.Exact.value', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2020,
  serialized_end=2042,
)

_FIELDMATCH_TERNARY = _descriptor.Descriptor(
  name='Ternary',
  full_name='p4.v1.FieldMatch.Ternary',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='p4.v1.FieldMatch.Ternary.value', 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='mask', full_name='p4.v1.FieldMatch.Ternary.mask', 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=2044,
  serialized_end=2082,
)

_FIELDMATCH_LPM = _descriptor.Descriptor(
  name='LPM',
  full_name='p4.v1.FieldMatch.LPM',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='p4.v1.FieldMatch.LPM.value', 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='prefix_len', full_name='p4.v1.FieldMatch.LPM.prefix_len', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2084,
  serialized_end=2124,
)

_FIELDMATCH_RANGE = _descriptor.Descriptor(
  name='Range',
  full_name='p4.v1.FieldMatch.Range',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='low', full_name='p4.v1.FieldMatch.Range.low', 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='high', full_name='p4.v1.FieldMatch.Range.high', 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=2126,
  serialized_end=2160,
)

_FIELDMATCH = _descriptor.Descriptor(
  name='FieldMatch',
  full_name='p4.v1.FieldMatch',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='field_id', full_name='p4.v1.FieldMatch.field_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='exact', full_name='p4.v1.FieldMatch.exact', 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='ternary', full_name='p4.v1.FieldMatch.ternary', 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='lpm', full_name='p4.v1.FieldMatch.lpm', 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='range', full_name='p4.v1.FieldMatch.range', index=4,
      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='other', full_name='p4.v1.FieldMatch.other', index=5,
      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=[_FIELDMATCH_EXACT, _FIELDMATCH_TERNARY, _FIELDMATCH_LPM, _FIELDMATCH_RANGE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='field_match_type', full_name='p4.v1.FieldMatch.field_match_type',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1781,
  serialized_end=2180,
)


_TABLEACTION = _descriptor.Descriptor(
  name='TableAction',
  full_name='p4.v1.TableAction',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='action', full_name='p4.v1.TableAction.action', 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='action_profile_member_id', full_name='p4.v1.TableAction.action_profile_member_id', 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=None),
    _descriptor.FieldDescriptor(
      name='action_profile_group_id', full_name='p4.v1.TableAction.action_profile_group_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),
    _descriptor.FieldDescriptor(
      name='action_profile_action_set', full_name='p4.v1.TableAction.action_profile_action_set', 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=[
    _descriptor.OneofDescriptor(
      name='type', full_name='p4.v1.TableAction.type',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=2183,
  serialized_end=2376,
)


_ACTION_PARAM = _descriptor.Descriptor(
  name='Param',
  full_name='p4.v1.Action.Param',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='param_id', full_name='p4.v1.Action.Param.param_id', index=0,
      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=None),
    _descriptor.FieldDescriptor(
      name='value', full_name='p4.v1.Action.Param.value', index=1,
      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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2444,
  serialized_end=2484,
)

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


_ACTIONPROFILEACTIONSET = _descriptor.Descriptor(
  name='ActionProfileActionSet',
  full_name='p4.v1.ActionProfileActionSet',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='action_profile_actions', full_name='p4.v1.ActionProfileActionSet.action_profile_actions', index=0,
      number=1, 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=2486,
  serialized_end=2570,
)


_ACTIONPROFILEACTION = _descriptor.Descriptor(
  name='ActionProfileAction',
  full_name='p4.v1.ActionProfileAction',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='action', full_name='p4.v1.ActionProfileAction.action', 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='weight', full_name='p4.v1.ActionProfileAction.weight', 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='watch', full_name='p4.v1.ActionProfileAction.watch', 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=2572,
  serialized_end=2655,
)


_ACTIONPROFILEMEMBER = _descriptor.Descriptor(
  name='ActionProfileMember',
  full_name='p4.v1.ActionProfileMember',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='action_profile_id', full_name='p4.v1.ActionProfileMember.action_profile_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='member_id', full_name='p4.v1.ActionProfileMember.member_id', 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=None),
    _descriptor.FieldDescriptor(
      name='action', full_name='p4.v1.ActionProfileMember.action', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2657,
  serialized_end=2755,
)


_ACTIONPROFILEGROUP_MEMBER = _descriptor.Descriptor(
  name='Member',
  full_name='p4.v1.ActionProfileGroup.Member',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='member_id', full_name='p4.v1.ActionProfileGroup.Member.member_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='weight', full_name='p4.v1.ActionProfileGroup.Member.weight', 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='watch', full_name='p4.v1.ActionProfileGroup.Member.watch', 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=2894,
  serialized_end=2952,
)

_ACTIONPROFILEGROUP = _descriptor.Descriptor(
  name='ActionProfileGroup',
  full_name='p4.v1.ActionProfileGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='action_profile_id', full_name='p4.v1.ActionProfileGroup.action_profile_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='group_id', full_name='p4.v1.ActionProfileGroup.group_id', 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=None),
    _descriptor.FieldDescriptor(
      name='members', full_name='p4.v1.ActionProfileGroup.members', 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='max_size', full_name='p4.v1.ActionProfileGroup.max_size', 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),
  ],
  extensions=[
  ],
  nested_types=[_ACTIONPROFILEGROUP_MEMBER, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2758,
  serialized_end=2952,
)


_INDEX = _descriptor.Descriptor(
  name='Index',
  full_name='p4.v1.Index',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='index', full_name='p4.v1.Index.index', index=0,
      number=1, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2954,
  serialized_end=2976,
)


_METERENTRY = _descriptor.Descriptor(
  name='MeterEntry',
  full_name='p4.v1.MeterEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='meter_id', full_name='p4.v1.MeterEntry.meter_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='index', full_name='p4.v1.MeterEntry.index', 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='config', full_name='p4.v1.MeterEntry.config', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2978,
  serialized_end=3073,
)


_DIRECTMETERENTRY = _descriptor.Descriptor(
  name='DirectMeterEntry',
  full_name='p4.v1.DirectMeterEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='table_entry', full_name='p4.v1.DirectMeterEntry.table_entry', 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='config', full_name='p4.v1.DirectMeterEntry.config', 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=3075,
  serialized_end=3169,
)


_METERCONFIG = _descriptor.Descriptor(
  name='MeterConfig',
  full_name='p4.v1.MeterConfig',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cir', full_name='p4.v1.MeterConfig.cir', index=0,
      number=1, 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='cburst', full_name='p4.v1.MeterConfig.cburst', index=1,
      number=2, 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='pir', full_name='p4.v1.MeterConfig.pir', 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='pburst', full_name='p4.v1.MeterConfig.pburst', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3171,
  serialized_end=3242,
)


_COUNTERENTRY = _descriptor.Descriptor(
  name='CounterEntry',
  full_name='p4.v1.CounterEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='counter_id', full_name='p4.v1.CounterEntry.counter_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='index', full_name='p4.v1.CounterEntry.index', 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='data', full_name='p4.v1.CounterEntry.data', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3244,
  serialized_end=3341,
)


_DIRECTCOUNTERENTRY = _descriptor.Descriptor(
  name='DirectCounterEntry',
  full_name='p4.v1.DirectCounterEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='table_entry', full_name='p4.v1.DirectCounterEntry.table_entry', 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='data', full_name='p4.v1.DirectCounterEntry.data', 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=3343,
  serialized_end=3437,
)


_COUNTERDATA = _descriptor.Descriptor(
  name='CounterData',
  full_name='p4.v1.CounterData',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='byte_count', full_name='p4.v1.CounterData.byte_count', index=0,
      number=1, 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='packet_count', full_name='p4.v1.CounterData.packet_count', index=1,
      number=2, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3439,
  serialized_end=3494,
)


_PACKETREPLICATIONENGINEENTRY = _descriptor.Descriptor(
  name='PacketReplicationEngineEntry',
  full_name='p4.v1.PacketReplicationEngineEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='multicast_group_entry', full_name='p4.v1.PacketReplicationEngineEntry.multicast_group_entry', 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='clone_session_entry', full_name='p4.v1.PacketReplicationEngineEntry.clone_session_entry', 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=[
    _descriptor.OneofDescriptor(
      name='type', full_name='p4.v1.PacketReplicationEngineEntry.type',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=3497,
  serialized_end=3653,
)


_REPLICA = _descriptor.Descriptor(
  name='Replica',
  full_name='p4.v1.Replica',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='egress_port', full_name='p4.v1.Replica.egress_port', 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='instance', full_name='p4.v1.Replica.instance', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3655,
  serialized_end=3703,
)


_MULTICASTGROUPENTRY = _descriptor.Descriptor(
  name='MulticastGroupEntry',
  full_name='p4.v1.MulticastGroupEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='multicast_group_id', full_name='p4.v1.MulticastGroupEntry.multicast_group_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='replicas', full_name='p4.v1.MulticastGroupEntry.replicas', 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=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3705,
  serialized_end=3788,
)


_CLONESESSIONENTRY = _descriptor.Descriptor(
  name='CloneSessionEntry',
  full_name='p4.v1.CloneSessionEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='session_id', full_name='p4.v1.CloneSessionEntry.session_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='replicas', full_name='p4.v1.CloneSessionEntry.replicas', 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='class_of_service', full_name='p4.v1.CloneSessionEntry.class_of_service', 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='packet_length_bytes', full_name='p4.v1.CloneSessionEntry.packet_length_bytes', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3791,
  serialized_end=3919,
)


_VALUESETMEMBER = _descriptor.Descriptor(
  name='ValueSetMember',
  full_name='p4.v1.ValueSetMember',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='match', full_name='p4.v1.ValueSetMember.match', index=0,
      number=1, 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=3921,
  serialized_end=3971,
)


_VALUESETENTRY = _descriptor.Descriptor(
  name='ValueSetEntry',
  full_name='p4.v1.ValueSetEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value_set_id', full_name='p4.v1.ValueSetEntry.value_set_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='members', full_name='p4.v1.ValueSetEntry.members', 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=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3973,
  serialized_end=4050,
)


_REGISTERENTRY = _descriptor.Descriptor(
  name='RegisterEntry',
  full_name='p4.v1.RegisterEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='register_id', full_name='p4.v1.RegisterEntry.register_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='index', full_name='p4.v1.RegisterEntry.index', 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='data', full_name='p4.v1.RegisterEntry.data', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4052,
  serialized_end=4146,
)


_DIGESTENTRY_CONFIG = _descriptor.Descriptor(
  name='Config',
  full_name='p4.v1.DigestEntry.Config',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='max_timeout_ns', full_name='p4.v1.DigestEntry.Config.max_timeout_ns', index=0,
      number=1, 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_list_size', full_name='p4.v1.DigestEntry.Config.max_list_size', 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='ack_timeout_ns', full_name='p4.v1.DigestEntry.Config.ack_timeout_ns', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4226,
  serialized_end=4305,
)

_DIGESTENTRY = _descriptor.Descriptor(
  name='DigestEntry',
  full_name='p4.v1.DigestEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='digest_id', full_name='p4.v1.DigestEntry.digest_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='config', full_name='p4.v1.DigestEntry.config', 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=[_DIGESTENTRY_CONFIG, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4149,
  serialized_end=4305,
)


_STREAMMESSAGEREQUEST = _descriptor.Descriptor(
  name='StreamMessageRequest',
  full_name='p4.v1.StreamMessageRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='arbitration', full_name='p4.v1.StreamMessageRequest.arbitration', 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='packet', full_name='p4.v1.StreamMessageRequest.packet', 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='digest_ack', full_name='p4.v1.StreamMessageRequest.digest_ack', 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='other', full_name='p4.v1.StreamMessageRequest.other', 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=[
    _descriptor.OneofDescriptor(
      name='update', full_name='p4.v1.StreamMessageRequest.update',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=4308,
  serialized_end=4514,
)


_PACKETOUT = _descriptor.Descriptor(
  name='PacketOut',
  full_name='p4.v1.PacketOut',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='payload', full_name='p4.v1.PacketOut.payload', 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='metadata', full_name='p4.v1.PacketOut.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=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4516,
  serialized_end=4585,
)


_DIGESTLISTACK = _descriptor.Descriptor(
  name='DigestListAck',
  full_name='p4.v1.DigestListAck',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='digest_id', full_name='p4.v1.DigestListAck.digest_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='list_id', full_name='p4.v1.DigestListAck.list_id', index=1,
      number=2, type=4, cpp_type=4, 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=4587,
  serialized_end=4638,
)


_STREAMMESSAGERESPONSE = _descriptor.Descriptor(
  name='StreamMessageResponse',
  full_name='p4.v1.StreamMessageResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='arbitration', full_name='p4.v1.StreamMessageResponse.arbitration', 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='packet', full_name='p4.v1.StreamMessageResponse.packet', 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='digest', full_name='p4.v1.StreamMessageResponse.digest', 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='idle_timeout_notification', full_name='p4.v1.StreamMessageResponse.idle_timeout_notification', 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='other', full_name='p4.v1.StreamMessageResponse.other', 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='update', full_name='p4.v1.StreamMessageResponse.update',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=4641,
  serialized_end=4909,
)


_PACKETIN = _descriptor.Descriptor(
  name='PacketIn',
  full_name='p4.v1.PacketIn',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='payload', full_name='p4.v1.PacketIn.payload', 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='metadata', full_name='p4.v1.PacketIn.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=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4911,
  serialized_end=4979,
)


_DIGESTLIST = _descriptor.Descriptor(
  name='DigestList',
  full_name='p4.v1.DigestList',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='digest_id', full_name='p4.v1.DigestList.digest_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='list_id', full_name='p4.v1.DigestList.list_id', index=1,
      number=2, type=4, cpp_type=4, 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', full_name='p4.v1.DigestList.data', 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='timestamp', full_name='p4.v1.DigestList.timestamp', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4981,
  serialized_end=5077,
)


_PACKETMETADATA = _descriptor.Descriptor(
  name='PacketMetadata',
  full_name='p4.v1.PacketMetadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='metadata_id', full_name='p4.v1.PacketMetadata.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='value', full_name='p4.v1.PacketMetadata.value', 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=5079,
  serialized_end=5131,
)


_MASTERARBITRATIONUPDATE = _descriptor.Descriptor(
  name='MasterArbitrationUpdate',
  full_name='p4.v1.MasterArbitrationUpdate',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='device_id', full_name='p4.v1.MasterArbitrationUpdate.device_id', index=0,
      number=1, type=4, cpp_type=4, 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='role', full_name='p4.v1.MasterArbitrationUpdate.role', 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='election_id', full_name='p4.v1.MasterArbitrationUpdate.election_id', 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='status', full_name='p4.v1.MasterArbitrationUpdate.status', 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=5134,
  serialized_end=5278,
)


_ROLE = _descriptor.Descriptor(
  name='Role',
  full_name='p4.v1.Role',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='p4.v1.Role.id', index=0,
      number=1, type=4, cpp_type=4, 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='config', full_name='p4.v1.Role.config', 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=5280,
  serialized_end=5336,
)


_IDLETIMEOUTNOTIFICATION = _descriptor.Descriptor(
  name='IdleTimeoutNotification',
  full_name='p4.v1.IdleTimeoutNotification',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='table_entry', full_name='p4.v1.IdleTimeoutNotification.table_entry', index=0,
      number=1, 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='timestamp', full_name='p4.v1.IdleTimeoutNotification.timestamp', index=1,
      number=2, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5338,
  serialized_end=5422,
)


_UINT128 = _descriptor.Descriptor(
  name='Uint128',
  full_name='p4.v1.Uint128',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='high', full_name='p4.v1.Uint128.high', index=0,
      number=1, type=4, cpp_type=4, 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='low', full_name='p4.v1.Uint128.low', index=1,
      number=2, type=4, cpp_type=4, 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=5424,
  serialized_end=5460,
)


_SETFORWARDINGPIPELINECONFIGREQUEST = _descriptor.Descriptor(
  name='SetForwardingPipelineConfigRequest',
  full_name='p4.v1.SetForwardingPipelineConfigRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='device_id', full_name='p4.v1.SetForwardingPipelineConfigRequest.device_id', index=0,
      number=1, type=4, cpp_type=4, 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='role_id', full_name='p4.v1.SetForwardingPipelineConfigRequest.role_id', index=1,
      number=2, type=4, cpp_type=4, 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='election_id', full_name='p4.v1.SetForwardingPipelineConfigRequest.election_id', 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='action', full_name='p4.v1.SetForwardingPipelineConfigRequest.action', index=3,
      number=4, 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='config', full_name='p4.v1.SetForwardingPipelineConfigRequest.config', 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=[
    _SETFORWARDINGPIPELINECONFIGREQUEST_ACTION,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5463,
  serialized_end=5808,
)


_SETFORWARDINGPIPELINECONFIGRESPONSE = _descriptor.Descriptor(
  name='SetForwardingPipelineConfigResponse',
  full_name='p4.v1.SetForwardingPipelineConfigResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5810,
  serialized_end=5847,
)


_FORWARDINGPIPELINECONFIG_COOKIE = _descriptor.Descriptor(
  name='Cookie',
  full_name='p4.v1.ForwardingPipelineConfig.Cookie',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cookie', full_name='p4.v1.ForwardingPipelineConfig.Cookie.cookie', index=0,
      number=1, type=4, cpp_type=4, 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=5998,
  serialized_end=6022,
)

_FORWARDINGPIPELINECONFIG = _descriptor.Descriptor(
  name='ForwardingPipelineConfig',
  full_name='p4.v1.ForwardingPipelineConfig',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='p4info', full_name='p4.v1.ForwardingPipelineConfig.p4info', 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='p4_device_config', full_name='p4.v1.ForwardingPipelineConfig.p4_device_config', 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),
    _descriptor.FieldDescriptor(
      name='cookie', full_name='p4.v1.ForwardingPipelineConfig.cookie', 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),
  ],
  extensions=[
  ],
  nested_types=[_FORWARDINGPIPELINECONFIG_COOKIE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5850,
  serialized_end=6022,
)


_GETFORWARDINGPIPELINECONFIGREQUEST = _descriptor.Descriptor(
  name='GetForwardingPipelineConfigRequest',
  full_name='p4.v1.GetForwardingPipelineConfigRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='device_id', full_name='p4.v1.GetForwardingPipelineConfigRequest.device_id', index=0,
      number=1, type=4, cpp_type=4, 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='response_type', full_name='p4.v1.GetForwardingPipelineConfigRequest.response_type', 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=[
    _GETFORWARDINGPIPELINECONFIGREQUEST_RESPONSETYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6025,
  serialized_end=6254,
)


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


_ERROR = _descriptor.Descriptor(
  name='Error',
  full_name='p4.v1.Error',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='canonical_code', full_name='p4.v1.Error.canonical_code', index=0,
      number=1, 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='message', full_name='p4.v1.Error.message', 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='space', full_name='p4.v1.Error.space', 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='code', full_name='p4.v1.Error.code', 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='details', full_name='p4.v1.Error.details', 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=6344,
  serialized_end=6460,
)

_WRITEREQUEST.fields_by_name['election_id'].message_type = _UINT128
_WRITEREQUEST.fields_by_name['updates'].message_type = _UPDATE
_WRITEREQUEST.fields_by_name['atomicity'].enum_type = _WRITEREQUEST_ATOMICITY
_WRITEREQUEST_ATOMICITY.containing_type = _WRITEREQUEST
_READREQUEST.fields_by_name['entities'].message_type = _ENTITY
_READRESPONSE.fields_by_name['entities'].message_type = _ENTITY
_UPDATE.fields_by_name['type'].enum_type = _UPDATE_TYPE
_UPDATE.fields_by_name['entity'].message_type = _ENTITY
_UPDATE_TYPE.containing_type = _UPDATE
_ENTITY.fields_by_name['extern_entry'].message_type = _EXTERNENTRY
_ENTITY.fields_by_name['table_entry'].message_type = _TABLEENTRY
_ENTITY.fields_by_name['action_profile_member'].message_type = _ACTIONPROFILEMEMBER
_ENTITY.fields_by_name['action_profile_group'].message_type = _ACTIONPROFILEGROUP
_ENTITY.fields_by_name['meter_entry'].message_type = _METERENTRY
_ENTITY.fields_by_name['direct_meter_entry'].message_type = _DIRECTMETERENTRY
_ENTITY.fields_by_name['counter_entry'].message_type = _COUNTERENTRY
_ENTITY.fields_by_name['direct_counter_entry'].message_type = _DIRECTCOUNTERENTRY
_ENTITY.fields_by_name['packet_replication_engine_entry'].message_type = _PACKETREPLICATIONENGINEENTRY
_ENTITY.fields_by_name['value_set_entry'].message_type = _VALUESETENTRY
_ENTITY.fields_by_name['register_entry'].message_type = _REGISTERENTRY
_ENTITY.fields_by_name['digest_entry'].message_type = _DIGESTENTRY
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['extern_entry'])
_ENTITY.fields_by_name['extern_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['table_entry'])
_ENTITY.fields_by_name['table_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['action_profile_member'])
_ENTITY.fields_by_name['action_profile_member'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['action_profile_group'])
_ENTITY.fields_by_name['action_profile_group'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['meter_entry'])
_ENTITY.fields_by_name['meter_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['direct_meter_entry'])
_ENTITY.fields_by_name['direct_meter_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['counter_entry'])
_ENTITY.fields_by_name['counter_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['direct_counter_entry'])
_ENTITY.fields_by_name['direct_counter_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['packet_replication_engine_entry'])
_ENTITY.fields_by_name['packet_replication_engine_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['value_set_entry'])
_ENTITY.fields_by_name['value_set_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['register_entry'])
_ENTITY.fields_by_name['register_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_ENTITY.oneofs_by_name['entity'].fields.append(
  _ENTITY.fields_by_name['digest_entry'])
_ENTITY.fields_by_name['digest_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity']
_EXTERNENTRY.fields_by_name['entry'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_TABLEENTRY_IDLETIMEOUT.containing_type = _TABLEENTRY
_TABLEENTRY.fields_by_name['match'].message_type = _FIELDMATCH
_TABLEENTRY.fields_by_name['action'].message_type = _TABLEACTION
_TABLEENTRY.fields_by_name['meter_config'].message_type = _METERCONFIG
_TABLEENTRY.fields_by_name['counter_data'].message_type = _COUNTERDATA
_TABLEENTRY.fields_by_name['time_since_last_hit'].message_type = _TABLEENTRY_IDLETIMEOUT
_FIELDMATCH_EXACT.containing_type = _FIELDMATCH
_FIELDMATCH_TERNARY.containing_type = _FIELDMATCH
_FIELDMATCH_LPM.containing_type = _FIELDMATCH
_FIELDMATCH_RANGE.containing_type = _FIELDMATCH
_FIELDMATCH.fields_by_name['exact'].message_type = _FIELDMATCH_EXACT
_FIELDMATCH.fields_by_name['ternary'].message_type = _FIELDMATCH_TERNARY
_FIELDMATCH.fields_by_name['lpm'].message_type = _FIELDMATCH_LPM
_FIELDMATCH.fields_by_name['range'].message_type = _FIELDMATCH_RANGE
_FIELDMATCH.fields_by_name['other'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_FIELDMATCH.oneofs_by_name['field_match_type'].fields.append(
  _FIELDMATCH.fields_by_name['exact'])
_FIELDMATCH.fields_by_name['exact'].containing_oneof = _FIELDMATCH.oneofs_by_name['field_match_type']
_FIELDMATCH.oneofs_by_name['field_match_type'].fields.append(
  _FIELDMATCH.fields_by_name['ternary'])
_FIELDMATCH.fields_by_name['ternary'].containing_oneof = _FIELDMATCH.oneofs_by_name['field_match_type']
_FIELDMATCH.oneofs_by_name['field_match_type'].fields.append(
  _FIELDMATCH.fields_by_name['lpm'])
_FIELDMATCH.fields_by_name['lpm'].containing_oneof = _FIELDMATCH.oneofs_by_name['field_match_type']
_FIELDMATCH.oneofs_by_name['field_match_type'].fields.append(
  _FIELDMATCH.fields_by_name['range'])
_FIELDMATCH.fields_by_name['range'].containing_oneof = _FIELDMATCH.oneofs_by_name['field_match_type']
_FIELDMATCH.oneofs_by_name['field_match_type'].fields.append(
  _FIELDMATCH.fields_by_name['other'])
_FIELDMATCH.fields_by_name['other'].containing_oneof = _FIELDMATCH.oneofs_by_name['field_match_type']
_TABLEACTION.fields_by_name['action'].message_type = _ACTION
_TABLEACTION.fields_by_name['action_profile_action_set'].message_type = _ACTIONPROFILEACTIONSET
_TABLEACTION.oneofs_by_name['type'].fields.append(
  _TABLEACTION.fields_by_name['action'])
_TABLEACTION.fields_by_name['action'].containing_oneof = _TABLEACTION.oneofs_by_name['type']
_TABLEACTION.oneofs_by_name['type'].fields.append(
  _TABLEACTION.fields_by_name['action_profile_member_id'])
_TABLEACTION.fields_by_name['action_profile_member_id'].containing_oneof = _TABLEACTION.oneofs_by_name['type']
_TABLEACTION.oneofs_by_name['type'].fields.append(
  _TABLEACTION.fields_by_name['action_profile_group_id'])
_TABLEACTION.fields_by_name['action_profile_group_id'].containing_oneof = _TABLEACTION.oneofs_by_name['type']
_TABLEACTION.oneofs_by_name['type'].fields.append(
  _TABLEACTION.fields_by_name['action_profile_action_set'])
_TABLEACTION.fields_by_name['action_profile_action_set'].containing_oneof = _TABLEACTION.oneofs_by_name['type']
_ACTION_PARAM.containing_type = _ACTION
_ACTION.fields_by_name['params'].message_type = _ACTION_PARAM
_ACTIONPROFILEACTIONSET.fields_by_name['action_profile_actions'].message_type = _ACTIONPROFILEACTION
_ACTIONPROFILEACTION.fields_by_name['action'].message_type = _ACTION
_ACTIONPROFILEMEMBER.fields_by_name['action'].message_type = _ACTION
_ACTIONPROFILEGROUP_MEMBER.containing_type = _ACTIONPROFILEGROUP
_ACTIONPROFILEGROUP.fields_by_name['members'].message_type = _ACTIONPROFILEGROUP_MEMBER
_METERENTRY.fields_by_name['index'].message_type = _INDEX
_METERENTRY.fields_by_name['config'].message_type = _METERCONFIG
_DIRECTMETERENTRY.fields_by_name['table_entry'].message_type = _TABLEENTRY
_DIRECTMETERENTRY.fields_by_name['config'].message_type = _METERCONFIG
_COUNTERENTRY.fields_by_name['index'].message_type = _INDEX
_COUNTERENTRY.fields_by_name['data'].message_type = _COUNTERDATA
_DIRECTCOUNTERENTRY.fields_by_name['table_entry'].message_type = _TABLEENTRY
_DIRECTCOUNTERENTRY.fields_by_name['data'].message_type = _COUNTERDATA
_PACKETREPLICATIONENGINEENTRY.fields_by_name['multicast_group_entry'].message_type = _MULTICASTGROUPENTRY
_PACKETREPLICATIONENGINEENTRY.fields_by_name['clone_session_entry'].message_type = _CLONESESSIONENTRY
_PACKETREPLICATIONENGINEENTRY.oneofs_by_name['type'].fields.append(
  _PACKETREPLICATIONENGINEENTRY.fields_by_name['multicast_group_entry'])
_PACKETREPLICATIONENGINEENTRY.fields_by_name['multicast_group_entry'].containing_oneof = _PACKETREPLICATIONENGINEENTRY.oneofs_by_name['type']
_PACKETREPLICATIONENGINEENTRY.oneofs_by_name['type'].fields.append(
  _PACKETREPLICATIONENGINEENTRY.fields_by_name['clone_session_entry'])
_PACKETREPLICATIONENGINEENTRY.fields_by_name['clone_session_entry'].containing_oneof = _PACKETREPLICATIONENGINEENTRY.oneofs_by_name['type']
_MULTICASTGROUPENTRY.fields_by_name['replicas'].message_type = _REPLICA
_CLONESESSIONENTRY.fields_by_name['replicas'].message_type = _REPLICA
_VALUESETMEMBER.fields_by_name['match'].message_type = _FIELDMATCH
_VALUESETENTRY.fields_by_name['members'].message_type = _VALUESETMEMBER
_REGISTERENTRY.fields_by_name['index'].message_type = _INDEX
_REGISTERENTRY.fields_by_name['data'].message_type = p4_dot_v1_dot_p4data__pb2._P4DATA
_DIGESTENTRY_CONFIG.containing_type = _DIGESTENTRY
_DIGESTENTRY.fields_by_name['config'].message_type = _DIGESTENTRY_CONFIG
_STREAMMESSAGEREQUEST.fields_by_name['arbitration'].message_type = _MASTERARBITRATIONUPDATE
_STREAMMESSAGEREQUEST.fields_by_name['packet'].message_type = _PACKETOUT
_STREAMMESSAGEREQUEST.fields_by_name['digest_ack'].message_type = _DIGESTLISTACK
_STREAMMESSAGEREQUEST.fields_by_name['other'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_STREAMMESSAGEREQUEST.oneofs_by_name['update'].fields.append(
  _STREAMMESSAGEREQUEST.fields_by_name['arbitration'])
_STREAMMESSAGEREQUEST.fields_by_name['arbitration'].containing_oneof = _STREAMMESSAGEREQUEST.oneofs_by_name['update']
_STREAMMESSAGEREQUEST.oneofs_by_name['update'].fields.append(
  _STREAMMESSAGEREQUEST.fields_by_name['packet'])
_STREAMMESSAGEREQUEST.fields_by_name['packet'].containing_oneof = _STREAMMESSAGEREQUEST.oneofs_by_name['update']
_STREAMMESSAGEREQUEST.oneofs_by_name['update'].fields.append(
  _STREAMMESSAGEREQUEST.fields_by_name['digest_ack'])
_STREAMMESSAGEREQUEST.fields_by_name['digest_ack'].containing_oneof = _STREAMMESSAGEREQUEST.oneofs_by_name['update']
_STREAMMESSAGEREQUEST.oneofs_by_name['update'].fields.append(
  _STREAMMESSAGEREQUEST.fields_by_name['other'])
_STREAMMESSAGEREQUEST.fields_by_name['other'].containing_oneof = _STREAMMESSAGEREQUEST.oneofs_by_name['update']
_PACKETOUT.fields_by_name['metadata'].message_type = _PACKETMETADATA
_STREAMMESSAGERESPONSE.fields_by_name['arbitration'].message_type = _MASTERARBITRATIONUPDATE
_STREAMMESSAGERESPONSE.fields_by_name['packet'].message_type = _PACKETIN
_STREAMMESSAGERESPONSE.fields_by_name['digest'].message_type = _DIGESTLIST
_STREAMMESSAGERESPONSE.fields_by_name['idle_timeout_notification'].message_type = _IDLETIMEOUTNOTIFICATION
_STREAMMESSAGERESPONSE.fields_by_name['other'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_STREAMMESSAGERESPONSE.oneofs_by_name['update'].fields.append(
  _STREAMMESSAGERESPONSE.fields_by_name['arbitration'])
_STREAMMESSAGERESPONSE.fields_by_name['arbitration'].containing_oneof = _STREAMMESSAGERESPONSE.oneofs_by_name['update']
_STREAMMESSAGERESPONSE.oneofs_by_name['update'].fields.append(
  _STREAMMESSAGERESPONSE.fields_by_name['packet'])
_STREAMMESSAGERESPONSE.fields_by_name['packet'].containing_oneof = _STREAMMESSAGERESPONSE.oneofs_by_name['update']
_STREAMMESSAGERESPONSE.oneofs_by_name['update'].fields.append(
  _STREAMMESSAGERESPONSE.fields_by_name['digest'])
_STREAMMESSAGERESPONSE.fields_by_name['digest'].containing_oneof = _STREAMMESSAGERESPONSE.oneofs_by_name['update']
_STREAMMESSAGERESPONSE.oneofs_by_name['update'].fields.append(
  _STREAMMESSAGERESPONSE.fields_by_name['idle_timeout_notification'])
_STREAMMESSAGERESPONSE.fields_by_name['idle_timeout_notification'].containing_oneof = _STREAMMESSAGERESPONSE.oneofs_by_name['update']
_STREAMMESSAGERESPONSE.oneofs_by_name['update'].fields.append(
  _STREAMMESSAGERESPONSE.fields_by_name['other'])
_STREAMMESSAGERESPONSE.fields_by_name['other'].containing_oneof = _STREAMMESSAGERESPONSE.oneofs_by_name['update']
_PACKETIN.fields_by_name['metadata'].message_type = _PACKETMETADATA
_DIGESTLIST.fields_by_name['data'].message_type = p4_dot_v1_dot_p4data__pb2._P4DATA
_MASTERARBITRATIONUPDATE.fields_by_name['role'].message_type = _ROLE
_MASTERARBITRATIONUPDATE.fields_by_name['election_id'].message_type = _UINT128
_MASTERARBITRATIONUPDATE.fields_by_name['status'].message_type = google_dot_rpc_dot_status__pb2._STATUS
_ROLE.fields_by_name['config'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_IDLETIMEOUTNOTIFICATION.fields_by_name['table_entry'].message_type = _TABLEENTRY
_SETFORWARDINGPIPELINECONFIGREQUEST.fields_by_name['election_id'].message_type = _UINT128
_SETFORWARDINGPIPELINECONFIGREQUEST.fields_by_name['action'].enum_type = _SETFORWARDINGPIPELINECONFIGREQUEST_ACTION
_SETFORWARDINGPIPELINECONFIGREQUEST.fields_by_name['config'].message_type = _FORWARDINGPIPELINECONFIG
_SETFORWARDINGPIPELINECONFIGREQUEST_ACTION.containing_type = _SETFORWARDINGPIPELINECONFIGREQUEST
_FORWARDINGPIPELINECONFIG_COOKIE.containing_type = _FORWARDINGPIPELINECONFIG
_FORWARDINGPIPELINECONFIG.fields_by_name['p4info'].message_type = p4_dot_config_dot_v1_dot_p4info__pb2._P4INFO
_FORWARDINGPIPELINECONFIG.fields_by_name['cookie'].message_type = _FORWARDINGPIPELINECONFIG_COOKIE
_GETFORWARDINGPIPELINECONFIGREQUEST.fields_by_name['response_type'].enum_type = _GETFORWARDINGPIPELINECONFIGREQUEST_RESPONSETYPE
_GETFORWARDINGPIPELINECONFIGREQUEST_RESPONSETYPE.containing_type = _GETFORWARDINGPIPELINECONFIGREQUEST
_GETFORWARDINGPIPELINECONFIGRESPONSE.fields_by_name['config'].message_type = _FORWARDINGPIPELINECONFIG
_ERROR.fields_by_name['details'].message_type = google_dot_protobuf_dot_any__pb2._ANY
DESCRIPTOR.message_types_by_name['WriteRequest'] = _WRITEREQUEST
DESCRIPTOR.message_types_by_name['WriteResponse'] = _WRITERESPONSE
DESCRIPTOR.message_types_by_name['ReadRequest'] = _READREQUEST
DESCRIPTOR.message_types_by_name['ReadResponse'] = _READRESPONSE
DESCRIPTOR.message_types_by_name['Update'] = _UPDATE
DESCRIPTOR.message_types_by_name['Entity'] = _ENTITY
DESCRIPTOR.message_types_by_name['ExternEntry'] = _EXTERNENTRY
DESCRIPTOR.message_types_by_name['TableEntry'] = _TABLEENTRY
DESCRIPTOR.message_types_by_name['FieldMatch'] = _FIELDMATCH
DESCRIPTOR.message_types_by_name['TableAction'] = _TABLEACTION
DESCRIPTOR.message_types_by_name['Action'] = _ACTION
DESCRIPTOR.message_types_by_name['ActionProfileActionSet'] = _ACTIONPROFILEACTIONSET
DESCRIPTOR.message_types_by_name['ActionProfileAction'] = _ACTIONPROFILEACTION
DESCRIPTOR.message_types_by_name['ActionProfileMember'] = _ACTIONPROFILEMEMBER
DESCRIPTOR.message_types_by_name['ActionProfileGroup'] = _ACTIONPROFILEGROUP
DESCRIPTOR.message_types_by_name['Index'] = _INDEX
DESCRIPTOR.message_types_by_name['MeterEntry'] = _METERENTRY
DESCRIPTOR.message_types_by_name['DirectMeterEntry'] = _DIRECTMETERENTRY
DESCRIPTOR.message_types_by_name['MeterConfig'] = _METERCONFIG
DESCRIPTOR.message_types_by_name['CounterEntry'] = _COUNTERENTRY
DESCRIPTOR.message_types_by_name['DirectCounterEntry'] = _DIRECTCOUNTERENTRY
DESCRIPTOR.message_types_by_name['CounterData'] = _COUNTERDATA
DESCRIPTOR.message_types_by_name['PacketReplicationEngineEntry'] = _PACKETREPLICATIONENGINEENTRY
DESCRIPTOR.message_types_by_name['Replica'] = _REPLICA
DESCRIPTOR.message_types_by_name['MulticastGroupEntry'] = _MULTICASTGROUPENTRY
DESCRIPTOR.message_types_by_name['CloneSessionEntry'] = _CLONESESSIONENTRY
DESCRIPTOR.message_types_by_name['ValueSetMember'] = _VALUESETMEMBER
DESCRIPTOR.message_types_by_name['ValueSetEntry'] = _VALUESETENTRY
DESCRIPTOR.message_types_by_name['RegisterEntry'] = _REGISTERENTRY
DESCRIPTOR.message_types_by_name['DigestEntry'] = _DIGESTENTRY
DESCRIPTOR.message_types_by_name['StreamMessageRequest'] = _STREAMMESSAGEREQUEST
DESCRIPTOR.message_types_by_name['PacketOut'] = _PACKETOUT
DESCRIPTOR.message_types_by_name['DigestListAck'] = _DIGESTLISTACK
DESCRIPTOR.message_types_by_name['StreamMessageResponse'] = _STREAMMESSAGERESPONSE
DESCRIPTOR.message_types_by_name['PacketIn'] = _PACKETIN
DESCRIPTOR.message_types_by_name['DigestList'] = _DIGESTLIST
DESCRIPTOR.message_types_by_name['PacketMetadata'] = _PACKETMETADATA
DESCRIPTOR.message_types_by_name['MasterArbitrationUpdate'] = _MASTERARBITRATIONUPDATE
DESCRIPTOR.message_types_by_name['Role'] = _ROLE
DESCRIPTOR.message_types_by_name['IdleTimeoutNotification'] = _IDLETIMEOUTNOTIFICATION
DESCRIPTOR.message_types_by_name['Uint128'] = _UINT128
DESCRIPTOR.message_types_by_name['SetForwardingPipelineConfigRequest'] = _SETFORWARDINGPIPELINECONFIGREQUEST
DESCRIPTOR.message_types_by_name['SetForwardingPipelineConfigResponse'] = _SETFORWARDINGPIPELINECONFIGRESPONSE
DESCRIPTOR.message_types_by_name['ForwardingPipelineConfig'] = _FORWARDINGPIPELINECONFIG
DESCRIPTOR.message_types_by_name['GetForwardingPipelineConfigRequest'] = _GETFORWARDINGPIPELINECONFIGREQUEST
DESCRIPTOR.message_types_by_name['GetForwardingPipelineConfigResponse'] = _GETFORWARDINGPIPELINECONFIGRESPONSE
DESCRIPTOR.message_types_by_name['Error'] = _ERROR
DESCRIPTOR.enum_types_by_name['SdnPort'] = _SDNPORT

WriteRequest = _reflection.GeneratedProtocolMessageType('WriteRequest', (_message.Message,), dict(
  DESCRIPTOR = _WRITEREQUEST,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.WriteRequest)
  ))
_sym_db.RegisterMessage(WriteRequest)

WriteResponse = _reflection.GeneratedProtocolMessageType('WriteResponse', (_message.Message,), dict(
  DESCRIPTOR = _WRITERESPONSE,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.WriteResponse)
  ))
_sym_db.RegisterMessage(WriteResponse)

ReadRequest = _reflection.GeneratedProtocolMessageType('ReadRequest', (_message.Message,), dict(
  DESCRIPTOR = _READREQUEST,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.ReadRequest)
  ))
_sym_db.RegisterMessage(ReadRequest)

ReadResponse = _reflection.GeneratedProtocolMessageType('ReadResponse', (_message.Message,), dict(
  DESCRIPTOR = _READRESPONSE,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.ReadResponse)
  ))
_sym_db.RegisterMessage(ReadResponse)

Update = _reflection.GeneratedProtocolMessageType('Update', (_message.Message,), dict(
  DESCRIPTOR = _UPDATE,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.Update)
  ))
_sym_db.RegisterMessage(Update)

Entity = _reflection.GeneratedProtocolMessageType('Entity', (_message.Message,), dict(
  DESCRIPTOR = _ENTITY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.Entity)
  ))
_sym_db.RegisterMessage(Entity)

ExternEntry = _reflection.GeneratedProtocolMessageType('ExternEntry', (_message.Message,), dict(
  DESCRIPTOR = _EXTERNENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.ExternEntry)
  ))
_sym_db.RegisterMessage(ExternEntry)

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

  IdleTimeout = _reflection.GeneratedProtocolMessageType('IdleTimeout', (_message.Message,), dict(
    DESCRIPTOR = _TABLEENTRY_IDLETIMEOUT,
    __module__ = 'p4.v1.p4runtime_pb2'
    # @@protoc_insertion_point(class_scope:p4.v1.TableEntry.IdleTimeout)
    ))
  ,
  DESCRIPTOR = _TABLEENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.TableEntry)
  ))
_sym_db.RegisterMessage(TableEntry)
_sym_db.RegisterMessage(TableEntry.IdleTimeout)

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

  Exact = _reflection.GeneratedProtocolMessageType('Exact', (_message.Message,), dict(
    DESCRIPTOR = _FIELDMATCH_EXACT,
    __module__ = 'p4.v1.p4runtime_pb2'
    # @@protoc_insertion_point(class_scope:p4.v1.FieldMatch.Exact)
    ))
  ,

  Ternary = _reflection.GeneratedProtocolMessageType('Ternary', (_message.Message,), dict(
    DESCRIPTOR = _FIELDMATCH_TERNARY,
    __module__ = 'p4.v1.p4runtime_pb2'
    # @@protoc_insertion_point(class_scope:p4.v1.FieldMatch.Ternary)
    ))
  ,

  LPM = _reflection.GeneratedProtocolMessageType('LPM', (_message.Message,), dict(
    DESCRIPTOR = _FIELDMATCH_LPM,
    __module__ = 'p4.v1.p4runtime_pb2'
    # @@protoc_insertion_point(class_scope:p4.v1.FieldMatch.LPM)
    ))
  ,

  Range = _reflection.GeneratedProtocolMessageType('Range', (_message.Message,), dict(
    DESCRIPTOR = _FIELDMATCH_RANGE,
    __module__ = 'p4.v1.p4runtime_pb2'
    # @@protoc_insertion_point(class_scope:p4.v1.FieldMatch.Range)
    ))
  ,
  DESCRIPTOR = _FIELDMATCH,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.FieldMatch)
  ))
_sym_db.RegisterMessage(FieldMatch)
_sym_db.RegisterMessage(FieldMatch.Exact)
_sym_db.RegisterMessage(FieldMatch.Ternary)
_sym_db.RegisterMessage(FieldMatch.LPM)
_sym_db.RegisterMessage(FieldMatch.Range)

TableAction = _reflection.GeneratedProtocolMessageType('TableAction', (_message.Message,), dict(
  DESCRIPTOR = _TABLEACTION,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.TableAction)
  ))
_sym_db.RegisterMessage(TableAction)

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

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

ActionProfileActionSet = _reflection.GeneratedProtocolMessageType('ActionProfileActionSet', (_message.Message,), dict(
  DESCRIPTOR = _ACTIONPROFILEACTIONSET,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.ActionProfileActionSet)
  ))
_sym_db.RegisterMessage(ActionProfileActionSet)

ActionProfileAction = _reflection.GeneratedProtocolMessageType('ActionProfileAction', (_message.Message,), dict(
  DESCRIPTOR = _ACTIONPROFILEACTION,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.ActionProfileAction)
  ))
_sym_db.RegisterMessage(ActionProfileAction)

ActionProfileMember = _reflection.GeneratedProtocolMessageType('ActionProfileMember', (_message.Message,), dict(
  DESCRIPTOR = _ACTIONPROFILEMEMBER,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.ActionProfileMember)
  ))
_sym_db.RegisterMessage(ActionProfileMember)

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

  Member = _reflection.GeneratedProtocolMessageType('Member', (_message.Message,), dict(
    DESCRIPTOR = _ACTIONPROFILEGROUP_MEMBER,
    __module__ = 'p4.v1.p4runtime_pb2'
    # @@protoc_insertion_point(class_scope:p4.v1.ActionProfileGroup.Member)
    ))
  ,
  DESCRIPTOR = _ACTIONPROFILEGROUP,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.ActionProfileGroup)
  ))
_sym_db.RegisterMessage(ActionProfileGroup)
_sym_db.RegisterMessage(ActionProfileGroup.Member)

Index = _reflection.GeneratedProtocolMessageType('Index', (_message.Message,), dict(
  DESCRIPTOR = _INDEX,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.Index)
  ))
_sym_db.RegisterMessage(Index)

MeterEntry = _reflection.GeneratedProtocolMessageType('MeterEntry', (_message.Message,), dict(
  DESCRIPTOR = _METERENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.MeterEntry)
  ))
_sym_db.RegisterMessage(MeterEntry)

DirectMeterEntry = _reflection.GeneratedProtocolMessageType('DirectMeterEntry', (_message.Message,), dict(
  DESCRIPTOR = _DIRECTMETERENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.DirectMeterEntry)
  ))
_sym_db.RegisterMessage(DirectMeterEntry)

MeterConfig = _reflection.GeneratedProtocolMessageType('MeterConfig', (_message.Message,), dict(
  DESCRIPTOR = _METERCONFIG,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.MeterConfig)
  ))
_sym_db.RegisterMessage(MeterConfig)

CounterEntry = _reflection.GeneratedProtocolMessageType('CounterEntry', (_message.Message,), dict(
  DESCRIPTOR = _COUNTERENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.CounterEntry)
  ))
_sym_db.RegisterMessage(CounterEntry)

DirectCounterEntry = _reflection.GeneratedProtocolMessageType('DirectCounterEntry', (_message.Message,), dict(
  DESCRIPTOR = _DIRECTCOUNTERENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.DirectCounterEntry)
  ))
_sym_db.RegisterMessage(DirectCounterEntry)

CounterData = _reflection.GeneratedProtocolMessageType('CounterData', (_message.Message,), dict(
  DESCRIPTOR = _COUNTERDATA,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.CounterData)
  ))
_sym_db.RegisterMessage(CounterData)

PacketReplicationEngineEntry = _reflection.GeneratedProtocolMessageType('PacketReplicationEngineEntry', (_message.Message,), dict(
  DESCRIPTOR = _PACKETREPLICATIONENGINEENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.PacketReplicationEngineEntry)
  ))
_sym_db.RegisterMessage(PacketReplicationEngineEntry)

Replica = _reflection.GeneratedProtocolMessageType('Replica', (_message.Message,), dict(
  DESCRIPTOR = _REPLICA,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.Replica)
  ))
_sym_db.RegisterMessage(Replica)

MulticastGroupEntry = _reflection.GeneratedProtocolMessageType('MulticastGroupEntry', (_message.Message,), dict(
  DESCRIPTOR = _MULTICASTGROUPENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.MulticastGroupEntry)
  ))
_sym_db.RegisterMessage(MulticastGroupEntry)

CloneSessionEntry = _reflection.GeneratedProtocolMessageType('CloneSessionEntry', (_message.Message,), dict(
  DESCRIPTOR = _CLONESESSIONENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.CloneSessionEntry)
  ))
_sym_db.RegisterMessage(CloneSessionEntry)

ValueSetMember = _reflection.GeneratedProtocolMessageType('ValueSetMember', (_message.Message,), dict(
  DESCRIPTOR = _VALUESETMEMBER,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.ValueSetMember)
  ))
_sym_db.RegisterMessage(ValueSetMember)

ValueSetEntry = _reflection.GeneratedProtocolMessageType('ValueSetEntry', (_message.Message,), dict(
  DESCRIPTOR = _VALUESETENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.ValueSetEntry)
  ))
_sym_db.RegisterMessage(ValueSetEntry)

RegisterEntry = _reflection.GeneratedProtocolMessageType('RegisterEntry', (_message.Message,), dict(
  DESCRIPTOR = _REGISTERENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.RegisterEntry)
  ))
_sym_db.RegisterMessage(RegisterEntry)

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

  Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), dict(
    DESCRIPTOR = _DIGESTENTRY_CONFIG,
    __module__ = 'p4.v1.p4runtime_pb2'
    # @@protoc_insertion_point(class_scope:p4.v1.DigestEntry.Config)
    ))
  ,
  DESCRIPTOR = _DIGESTENTRY,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.DigestEntry)
  ))
_sym_db.RegisterMessage(DigestEntry)
_sym_db.RegisterMessage(DigestEntry.Config)

StreamMessageRequest = _reflection.GeneratedProtocolMessageType('StreamMessageRequest', (_message.Message,), dict(
  DESCRIPTOR = _STREAMMESSAGEREQUEST,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.StreamMessageRequest)
  ))
_sym_db.RegisterMessage(StreamMessageRequest)

PacketOut = _reflection.GeneratedProtocolMessageType('PacketOut', (_message.Message,), dict(
  DESCRIPTOR = _PACKETOUT,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.PacketOut)
  ))
_sym_db.RegisterMessage(PacketOut)

DigestListAck = _reflection.GeneratedProtocolMessageType('DigestListAck', (_message.Message,), dict(
  DESCRIPTOR = _DIGESTLISTACK,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.DigestListAck)
  ))
_sym_db.RegisterMessage(DigestListAck)

StreamMessageResponse = _reflection.GeneratedProtocolMessageType('StreamMessageResponse', (_message.Message,), dict(
  DESCRIPTOR = _STREAMMESSAGERESPONSE,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.StreamMessageResponse)
  ))
_sym_db.RegisterMessage(StreamMessageResponse)

PacketIn = _reflection.GeneratedProtocolMessageType('PacketIn', (_message.Message,), dict(
  DESCRIPTOR = _PACKETIN,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.PacketIn)
  ))
_sym_db.RegisterMessage(PacketIn)

DigestList = _reflection.GeneratedProtocolMessageType('DigestList', (_message.Message,), dict(
  DESCRIPTOR = _DIGESTLIST,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.DigestList)
  ))
_sym_db.RegisterMessage(DigestList)

PacketMetadata = _reflection.GeneratedProtocolMessageType('PacketMetadata', (_message.Message,), dict(
  DESCRIPTOR = _PACKETMETADATA,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.PacketMetadata)
  ))
_sym_db.RegisterMessage(PacketMetadata)

MasterArbitrationUpdate = _reflection.GeneratedProtocolMessageType('MasterArbitrationUpdate', (_message.Message,), dict(
  DESCRIPTOR = _MASTERARBITRATIONUPDATE,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.MasterArbitrationUpdate)
  ))
_sym_db.RegisterMessage(MasterArbitrationUpdate)

Role = _reflection.GeneratedProtocolMessageType('Role', (_message.Message,), dict(
  DESCRIPTOR = _ROLE,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.Role)
  ))
_sym_db.RegisterMessage(Role)

IdleTimeoutNotification = _reflection.GeneratedProtocolMessageType('IdleTimeoutNotification', (_message.Message,), dict(
  DESCRIPTOR = _IDLETIMEOUTNOTIFICATION,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.IdleTimeoutNotification)
  ))
_sym_db.RegisterMessage(IdleTimeoutNotification)

Uint128 = _reflection.GeneratedProtocolMessageType('Uint128', (_message.Message,), dict(
  DESCRIPTOR = _UINT128,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.Uint128)
  ))
_sym_db.RegisterMessage(Uint128)

SetForwardingPipelineConfigRequest = _reflection.GeneratedProtocolMessageType('SetForwardingPipelineConfigRequest', (_message.Message,), dict(
  DESCRIPTOR = _SETFORWARDINGPIPELINECONFIGREQUEST,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.SetForwardingPipelineConfigRequest)
  ))
_sym_db.RegisterMessage(SetForwardingPipelineConfigRequest)

SetForwardingPipelineConfigResponse = _reflection.GeneratedProtocolMessageType('SetForwardingPipelineConfigResponse', (_message.Message,), dict(
  DESCRIPTOR = _SETFORWARDINGPIPELINECONFIGRESPONSE,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.SetForwardingPipelineConfigResponse)
  ))
_sym_db.RegisterMessage(SetForwardingPipelineConfigResponse)

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

  Cookie = _reflection.GeneratedProtocolMessageType('Cookie', (_message.Message,), dict(
    DESCRIPTOR = _FORWARDINGPIPELINECONFIG_COOKIE,
    __module__ = 'p4.v1.p4runtime_pb2'
    # @@protoc_insertion_point(class_scope:p4.v1.ForwardingPipelineConfig.Cookie)
    ))
  ,
  DESCRIPTOR = _FORWARDINGPIPELINECONFIG,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.ForwardingPipelineConfig)
  ))
_sym_db.RegisterMessage(ForwardingPipelineConfig)
_sym_db.RegisterMessage(ForwardingPipelineConfig.Cookie)

GetForwardingPipelineConfigRequest = _reflection.GeneratedProtocolMessageType('GetForwardingPipelineConfigRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETFORWARDINGPIPELINECONFIGREQUEST,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.GetForwardingPipelineConfigRequest)
  ))
_sym_db.RegisterMessage(GetForwardingPipelineConfigRequest)

GetForwardingPipelineConfigResponse = _reflection.GeneratedProtocolMessageType('GetForwardingPipelineConfigResponse', (_message.Message,), dict(
  DESCRIPTOR = _GETFORWARDINGPIPELINECONFIGRESPONSE,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.GetForwardingPipelineConfigResponse)
  ))
_sym_db.RegisterMessage(GetForwardingPipelineConfigResponse)

Error = _reflection.GeneratedProtocolMessageType('Error', (_message.Message,), dict(
  DESCRIPTOR = _ERROR,
  __module__ = 'p4.v1.p4runtime_pb2'
  # @@protoc_insertion_point(class_scope:p4.v1.Error)
  ))
_sym_db.RegisterMessage(Error)


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


  class P4RuntimeStub(object):

    def __init__(self, channel):
      """Constructor.

      Args:
        channel: A grpc.Channel.
      """
      self.Write = channel.unary_unary(
          '/p4.v1.P4Runtime/Write',
          request_serializer=WriteRequest.SerializeToString,
          response_deserializer=WriteResponse.FromString,
          )
      self.Read = channel.unary_stream(
          '/p4.v1.P4Runtime/Read',
          request_serializer=ReadRequest.SerializeToString,
          response_deserializer=ReadResponse.FromString,
          )
      self.SetForwardingPipelineConfig = channel.unary_unary(
          '/p4.v1.P4Runtime/SetForwardingPipelineConfig',
          request_serializer=SetForwardingPipelineConfigRequest.SerializeToString,
          response_deserializer=SetForwardingPipelineConfigResponse.FromString,
          )
      self.GetForwardingPipelineConfig = channel.unary_unary(
          '/p4.v1.P4Runtime/GetForwardingPipelineConfig',
          request_serializer=GetForwardingPipelineConfigRequest.SerializeToString,
          response_deserializer=GetForwardingPipelineConfigResponse.FromString,
          )
      self.StreamChannel = channel.stream_stream(
          '/p4.v1.P4Runtime/StreamChannel',
          request_serializer=StreamMessageRequest.SerializeToString,
          response_deserializer=StreamMessageResponse.FromString,
          )


  class P4RuntimeServicer(object):

    def Write(self, request, context):
      """Update one or more P4 entities on the target.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Read(self, request, context):
      """Read one or more P4 entities from the target.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def SetForwardingPipelineConfig(self, request, context):
      """Sets the P4 forwarding-pipeline config.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetForwardingPipelineConfig(self, request, context):
      """Gets the current P4 forwarding-pipeline config.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def StreamChannel(self, request_iterator, context):
      """Represents the bidirectional stream between the controller and the
      switch (initiated by the controller), and is managed for the following
      purposes:
      - connection initiation through master arbitration
      - indicating switch session liveness: the session is live when switch
      sends a positive master arbitration update to the controller, and is
      considered dead when either the stream breaks or the switch sends a
      negative update for master arbitration
      - the controller sending/receiving packets to/from the switch
      - streaming of notifications from the switch
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')


  def add_P4RuntimeServicer_to_server(servicer, server):
    rpc_method_handlers = {
        'Write': grpc.unary_unary_rpc_method_handler(
            servicer.Write,
            request_deserializer=WriteRequest.FromString,
            response_serializer=WriteResponse.SerializeToString,
        ),
        'Read': grpc.unary_stream_rpc_method_handler(
            servicer.Read,
            request_deserializer=ReadRequest.FromString,
            response_serializer=ReadResponse.SerializeToString,
        ),
        'SetForwardingPipelineConfig': grpc.unary_unary_rpc_method_handler(
            servicer.SetForwardingPipelineConfig,
            request_deserializer=SetForwardingPipelineConfigRequest.FromString,
            response_serializer=SetForwardingPipelineConfigResponse.SerializeToString,
        ),
        'GetForwardingPipelineConfig': grpc.unary_unary_rpc_method_handler(
            servicer.GetForwardingPipelineConfig,
            request_deserializer=GetForwardingPipelineConfigRequest.FromString,
            response_serializer=GetForwardingPipelineConfigResponse.SerializeToString,
        ),
        'StreamChannel': grpc.stream_stream_rpc_method_handler(
            servicer.StreamChannel,
            request_deserializer=StreamMessageRequest.FromString,
            response_serializer=StreamMessageResponse.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'p4.v1.P4Runtime', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


  class BetaP4RuntimeServicer(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    def Write(self, request, context):
      """Update one or more P4 entities on the target.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Read(self, request, context):
      """Read one or more P4 entities from the target.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def SetForwardingPipelineConfig(self, request, context):
      """Sets the P4 forwarding-pipeline config.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetForwardingPipelineConfig(self, request, context):
      """Gets the current P4 forwarding-pipeline config.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def StreamChannel(self, request_iterator, context):
      """Represents the bidirectional stream between the controller and the
      switch (initiated by the controller), and is managed for the following
      purposes:
      - connection initiation through master arbitration
      - indicating switch session liveness: the session is live when switch
      sends a positive master arbitration update to the controller, and is
      considered dead when either the stream breaks or the switch sends a
      negative update for master arbitration
      - the controller sending/receiving packets to/from the switch
      - streaming of notifications from the switch
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)


  class BetaP4RuntimeStub(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    def Write(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Update one or more P4 entities on the target.
      """
      raise NotImplementedError()
    Write.future = None
    def Read(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Read one or more P4 entities from the target.
      """
      raise NotImplementedError()
    def SetForwardingPipelineConfig(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Sets the P4 forwarding-pipeline config.
      """
      raise NotImplementedError()
    SetForwardingPipelineConfig.future = None
    def GetForwardingPipelineConfig(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Gets the current P4 forwarding-pipeline config.
      """
      raise NotImplementedError()
    GetForwardingPipelineConfig.future = None
    def StreamChannel(self, request_iterator, timeout, metadata=None, with_call=False, protocol_options=None):
      """Represents the bidirectional stream between the controller and the
      switch (initiated by the controller), and is managed for the following
      purposes:
      - connection initiation through master arbitration
      - indicating switch session liveness: the session is live when switch
      sends a positive master arbitration update to the controller, and is
      considered dead when either the stream breaks or the switch sends a
      negative update for master arbitration
      - the controller sending/receiving packets to/from the switch
      - streaming of notifications from the switch
      """
      raise NotImplementedError()


  def beta_create_P4Runtime_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_deserializers = {
      ('p4.v1.P4Runtime', 'GetForwardingPipelineConfig'): GetForwardingPipelineConfigRequest.FromString,
      ('p4.v1.P4Runtime', 'Read'): ReadRequest.FromString,
      ('p4.v1.P4Runtime', 'SetForwardingPipelineConfig'): SetForwardingPipelineConfigRequest.FromString,
      ('p4.v1.P4Runtime', 'StreamChannel'): StreamMessageRequest.FromString,
      ('p4.v1.P4Runtime', 'Write'): WriteRequest.FromString,
    }
    response_serializers = {
      ('p4.v1.P4Runtime', 'GetForwardingPipelineConfig'): GetForwardingPipelineConfigResponse.SerializeToString,
      ('p4.v1.P4Runtime', 'Read'): ReadResponse.SerializeToString,
      ('p4.v1.P4Runtime', 'SetForwardingPipelineConfig'): SetForwardingPipelineConfigResponse.SerializeToString,
      ('p4.v1.P4Runtime', 'StreamChannel'): StreamMessageResponse.SerializeToString,
      ('p4.v1.P4Runtime', 'Write'): WriteResponse.SerializeToString,
    }
    method_implementations = {
      ('p4.v1.P4Runtime', 'GetForwardingPipelineConfig'): face_utilities.unary_unary_inline(servicer.GetForwardingPipelineConfig),
      ('p4.v1.P4Runtime', 'Read'): face_utilities.unary_stream_inline(servicer.Read),
      ('p4.v1.P4Runtime', 'SetForwardingPipelineConfig'): face_utilities.unary_unary_inline(servicer.SetForwardingPipelineConfig),
      ('p4.v1.P4Runtime', 'StreamChannel'): face_utilities.stream_stream_inline(servicer.StreamChannel),
      ('p4.v1.P4Runtime', 'Write'): face_utilities.unary_unary_inline(servicer.Write),
    }
    server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
    return beta_implementations.server(method_implementations, options=server_options)


  def beta_create_P4Runtime_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_serializers = {
      ('p4.v1.P4Runtime', 'GetForwardingPipelineConfig'): GetForwardingPipelineConfigRequest.SerializeToString,
      ('p4.v1.P4Runtime', 'Read'): ReadRequest.SerializeToString,
      ('p4.v1.P4Runtime', 'SetForwardingPipelineConfig'): SetForwardingPipelineConfigRequest.SerializeToString,
      ('p4.v1.P4Runtime', 'StreamChannel'): StreamMessageRequest.SerializeToString,
      ('p4.v1.P4Runtime', 'Write'): WriteRequest.SerializeToString,
    }
    response_deserializers = {
      ('p4.v1.P4Runtime', 'GetForwardingPipelineConfig'): GetForwardingPipelineConfigResponse.FromString,
      ('p4.v1.P4Runtime', 'Read'): ReadResponse.FromString,
      ('p4.v1.P4Runtime', 'SetForwardingPipelineConfig'): SetForwardingPipelineConfigResponse.FromString,
      ('p4.v1.P4Runtime', 'StreamChannel'): StreamMessageResponse.FromString,
      ('p4.v1.P4Runtime', 'Write'): WriteResponse.FromString,
    }
    cardinalities = {
      'GetForwardingPipelineConfig': cardinality.Cardinality.UNARY_UNARY,
      'Read': cardinality.Cardinality.UNARY_STREAM,
      'SetForwardingPipelineConfig': cardinality.Cardinality.UNARY_UNARY,
      'StreamChannel': cardinality.Cardinality.STREAM_STREAM,
      'Write': cardinality.Cardinality.UNARY_UNARY,
    }
    stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
    return beta_implementations.dynamic_stub(channel, 'p4.v1.P4Runtime', cardinalities, options=stub_options)
except ImportError:
  pass
# @@protoc_insertion_point(module_scope)
