[ISSUE-ID] : RICAPP-202 upgrading protofile and modified NodebHandler to build CELL... 58/9958/1
authorsandeepindia <kumar.sandeep3@hcl.com>
Mon, 5 Dec 2022 20:07:03 +0000 (01:37 +0530)
committersandeepindia <kumar.sandeep3@hcl.com>
Mon, 5 Dec 2022 20:07:03 +0000 (01:37 +0530)
Signed-off-by: sandeepindia <kumar.sandeep3@hcl.com>
Change-Id: I6bef83d0f80d2ebd7155825098767f6dc3e75f89

ext/protobuf/rc.pb.cc
ext/protobuf/rc.pb.h
ext/protobuf/rc.proto
src/ts_xapp/ts_xapp.cpp

index 25a883d..33a23d4 100644 (file)
 // @@protoc_insertion_point(includes)
 
 namespace protobuf_rc_2eproto {
-extern PROTOBUF_INTERNAL_EXPORT_protobuf_rc_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_RICControlHeader;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_rc_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Guami;
 extern PROTOBUF_INTERNAL_EXPORT_protobuf_rc_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_RICControlMessage;
 extern PROTOBUF_INTERNAL_EXPORT_protobuf_rc_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_RICE2APHeader;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_rc_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_RICControlHeader;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_rc_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_UeId;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_rc_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_gNBUEID;
 }  // namespace protobuf_rc_2eproto
 namespace rc {
 class RICE2APHeaderDefaultTypeInternal {
@@ -35,6 +38,21 @@ class RICControlHeaderDefaultTypeInternal {
   ::google::protobuf::internal::ExplicitlyConstructed<RICControlHeader>
       _instance;
 } _RICControlHeader_default_instance_;
+class UeIdDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<UeId>
+      _instance;
+} _UeId_default_instance_;
+class gNBUEIDDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<gNBUEID>
+      _instance;
+} _gNBUEID_default_instance_;
+class GuamiDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<Guami>
+      _instance;
+} _Guami_default_instance_;
 class RICControlMessageDefaultTypeInternal {
  public:
   ::google::protobuf::internal::ExplicitlyConstructed<RICControlMessage>
@@ -77,8 +95,53 @@ static void InitDefaultsRICControlHeader() {
   ::rc::RICControlHeader::InitAsDefaultInstance();
 }
 
-::google::protobuf::internal::SCCInfo<0> scc_info_RICControlHeader =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsRICControlHeader}, {}};
+::google::protobuf::internal::SCCInfo<1> scc_info_RICControlHeader =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsRICControlHeader}, {
+      &protobuf_rc_2eproto::scc_info_UeId.base,}};
+
+static void InitDefaultsUeId() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::rc::_UeId_default_instance_;
+    new (ptr) ::rc::UeId();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::rc::UeId::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<1> scc_info_UeId =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsUeId}, {
+      &protobuf_rc_2eproto::scc_info_gNBUEID.base,}};
+
+static void InitDefaultsgNBUEID() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::rc::_gNBUEID_default_instance_;
+    new (ptr) ::rc::gNBUEID();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::rc::gNBUEID::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<1> scc_info_gNBUEID =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsgNBUEID}, {
+      &protobuf_rc_2eproto::scc_info_Guami.base,}};
+
+static void InitDefaultsGuami() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::rc::_Guami_default_instance_;
+    new (ptr) ::rc::Guami();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::rc::Guami::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<0> scc_info_Guami =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsGuami}, {}};
 
 static void InitDefaultsRICControlMessage() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
@@ -128,12 +191,15 @@ static void InitDefaultsRicControlGrpcRsp() {
 void InitDefaults() {
   ::google::protobuf::internal::InitSCC(&scc_info_RICE2APHeader.base);
   ::google::protobuf::internal::InitSCC(&scc_info_RICControlHeader.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_UeId.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_gNBUEID.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Guami.base);
   ::google::protobuf::internal::InitSCC(&scc_info_RICControlMessage.base);
   ::google::protobuf::internal::InitSCC(&scc_info_RicControlGrpcReq.base);
   ::google::protobuf::internal::InitSCC(&scc_info_RicControlGrpcRsp.base);
 }
 
-::google::protobuf::Metadata file_level_metadata[5];
+::google::protobuf::Metadata file_level_metadata[8];
 const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[2];
 
 const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
@@ -153,6 +219,30 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::RICControlHeader, controlactionid_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::RICControlHeader, ueid_),
   ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::UeId, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::UeId, gnbueid_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::gNBUEID, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::gNBUEID, amfuengapid_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::gNBUEID, guami_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::gNBUEID, gnbcuuef1apid_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::gNBUEID, gnbcucpuee1apid_),
+  ~0u,  // no _has_bits_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::Guami, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::Guami, plmnidentity_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::Guami, amfregionid_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::Guami, amfsetid_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::Guami, amfpointer_),
+  ~0u,  // no _has_bits_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::rc::RICControlMessage, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
@@ -182,14 +272,20 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
 static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
   { 0, -1, sizeof(::rc::RICE2APHeader)},
   { 7, -1, sizeof(::rc::RICControlHeader)},
-  { 15, -1, sizeof(::rc::RICControlMessage)},
-  { 22, -1, sizeof(::rc::RicControlGrpcReq)},
-  { 34, -1, sizeof(::rc::RicControlGrpcRsp)},
+  { 15, -1, sizeof(::rc::UeId)},
+  { 21, -1, sizeof(::rc::gNBUEID)},
+  { 30, -1, sizeof(::rc::Guami)},
+  { 39, -1, sizeof(::rc::RICControlMessage)},
+  { 46, -1, sizeof(::rc::RicControlGrpcReq)},
+  { 58, -1, sizeof(::rc::RicControlGrpcRsp)},
 };
 
 static ::google::protobuf::Message const * const file_default_instances[] = {
   reinterpret_cast<const ::google::protobuf::Message*>(&::rc::_RICE2APHeader_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::rc::_RICControlHeader_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::rc::_UeId_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::rc::_gNBUEID_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::rc::_Guami_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::rc::_RICControlMessage_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::rc::_RicControlGrpcReq_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::rc::_RicControlGrpcRsp_default_instance_),
@@ -210,38 +306,44 @@ void protobuf_AssignDescriptorsOnce() {
 void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
 void protobuf_RegisterTypes(const ::std::string&) {
   protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 5);
+  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 8);
 }
 
 void AddDescriptorsImpl() {
   InitDefaults();
   static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
       "\n\010rc.proto\022\002rc\":\n\rRICE2APHeader\022\021\n\tRanFu"
-      "ncId\030\001 \001(\003\022\026\n\016RICRequestorID\030\002 \001(\003\"O\n\020RI"
+      "ncId\030\001 \001(\003\022\026\n\016RICRequestorID\030\002 \001(\003\"Y\n\020RI"
       "CControlHeader\022\024\n\014ControlStyle\030\001 \001(\003\022\027\n\017"
-      "ControlActionId\030\002 \001(\003\022\014\n\004UEID\030\003 \001(\t\"d\n\021R"
-      "ICControlMessage\0229\n\025RICControlCellTypeVa"
-      "l\030\001 \001(\0162\032.rc.RICControlCellTypeEnum\022\024\n\014T"
-      "argetCellID\030\002 \001(\t\"\222\002\n\021RicControlGrpcReq\022"
-      "\020\n\010e2NodeID\030\001 \001(\t\022\016\n\006plmnID\030\002 \001(\t\022\017\n\007ran"
-      "Name\030\003 \001(\t\022,\n\021RICE2APHeaderData\030\004 \001(\0132\021."
-      "rc.RICE2APHeader\0222\n\024RICControlHeaderData"
-      "\030\005 \001(\0132\024.rc.RICControlHeader\0224\n\025RICContr"
-      "olMessageData\030\006 \001(\0132\025.rc.RICControlMessa"
-      "ge\0222\n\023RICControlAckReqVal\030\007 \001(\0162\025.rc.RIC"
-      "ControlAckEnum\"9\n\021RicControlGrpcRsp\022\017\n\007r"
-      "spCode\030\001 \001(\005\022\023\n\013description\030\002 \001(\t*k\n\026RIC"
-      "ControlCellTypeEnum\022\033\n\027RIC_CONTROL_CELL_"
-      "UNKWON\020\000\022\027\n\023RIC_CONTROL_NR_CELL\020\001\022\033\n\027RIC"
-      "_CONTROL_EUTRAN_CELL\020\002*r\n\021RICControlAckE"
-      "num\022\032\n\026RIC_CONTROL_ACK_UNKWON\020\000\022\026\n\022RIC_C"
-      "ONTROL_NO_ACK\020\001\022\023\n\017RIC_CONTROL_ACK\020\002\022\024\n\020"
-      "RIC_CONTROL_NACK\020\0032W\n\007MsgComm\022L\n\034SendRIC"
-      "ControlReqServiceGrpc\022\025.rc.RicControlGrp"
-      "cReq\032\025.rc.RicControlGrpcRspb\006proto3"
+      "ControlActionId\030\002 \001(\003\022\026\n\004UEID\030\003 \001(\0132\010.rc"
+      ".UeId\"$\n\004UeId\022\034\n\007GnbUEID\030\001 \001(\0132\013.rc.gNBU"
+      "EID\"h\n\007gNBUEID\022\023\n\013amfUENGAPID\030\001 \001(\003\022\030\n\005g"
+      "uami\030\002 \001(\0132\t.rc.Guami\022\025\n\rgNBCUUEF1APID\030\003"
+      " \003(\003\022\027\n\017gNBCUCPUEE1APID\030\004 \003(\003\"X\n\005Guami\022\024"
+      "\n\014pLMNIdentity\030\001 \001(\t\022\023\n\013aMFRegionID\030\002 \001("
+      "\t\022\020\n\010aMFSetID\030\003 \001(\t\022\022\n\naMFPointer\030\004 \001(\t\""
+      "d\n\021RICControlMessage\0229\n\025RICControlCellTy"
+      "peVal\030\001 \001(\0162\032.rc.RICControlCellTypeEnum\022"
+      "\024\n\014TargetCellID\030\002 \001(\t\"\222\002\n\021RicControlGrpc"
+      "Req\022\020\n\010e2NodeID\030\001 \001(\t\022\016\n\006plmnID\030\002 \001(\t\022\017\n"
+      "\007ranName\030\003 \001(\t\022,\n\021RICE2APHeaderData\030\004 \001("
+      "\0132\021.rc.RICE2APHeader\0222\n\024RICControlHeader"
+      "Data\030\005 \001(\0132\024.rc.RICControlHeader\0224\n\025RICC"
+      "ontrolMessageData\030\006 \001(\0132\025.rc.RICControlM"
+      "essage\0222\n\023RICControlAckReqVal\030\007 \001(\0162\025.rc"
+      ".RICControlAckEnum\"9\n\021RicControlGrpcRsp\022"
+      "\017\n\007rspCode\030\001 \001(\005\022\023\n\013description\030\002 \001(\t*k\n"
+      "\026RICControlCellTypeEnum\022\033\n\027RIC_CONTROL_C"
+      "ELL_UNKWON\020\000\022\027\n\023RIC_CONTROL_NR_CELL\020\001\022\033\n"
+      "\027RIC_CONTROL_EUTRAN_CELL\020\002*r\n\021RICControl"
+      "AckEnum\022\032\n\026RIC_CONTROL_ACK_UNKWON\020\000\022\026\n\022R"
+      "IC_CONTROL_NO_ACK\020\001\022\023\n\017RIC_CONTROL_ACK\020\002"
+      "\022\024\n\020RIC_CONTROL_NACK\020\0032W\n\007MsgComm\022L\n\034Sen"
+      "dRICControlReqServiceGrpc\022\025.rc.RicContro"
+      "lGrpcReq\032\025.rc.RicControlGrpcRspb\006proto3"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 915);
+      descriptor, 1159);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "rc.proto", &protobuf_RegisterTypes);
 }
@@ -373,21 +475,884 @@ bool RICE2APHeader::MergePartialFromCodedStream(
 
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &ranfuncid_)));
+                 input, &ranfuncid_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // int64 RICRequestorID = 2;
+      case 2: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+                 input, &ricrequestorid_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:rc.RICE2APHeader)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:rc.RICE2APHeader)
+  return false;
+#undef DO_
+}
+
+void RICE2APHeader::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:rc.RICE2APHeader)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // int64 RanFuncId = 1;
+  if (this->ranfuncid() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->ranfuncid(), output);
+  }
+
+  // int64 RICRequestorID = 2;
+  if (this->ricrequestorid() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->ricrequestorid(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:rc.RICE2APHeader)
+}
+
+::google::protobuf::uint8* RICE2APHeader::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:rc.RICE2APHeader)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // int64 RanFuncId = 1;
+  if (this->ranfuncid() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->ranfuncid(), target);
+  }
+
+  // int64 RICRequestorID = 2;
+  if (this->ricrequestorid() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->ricrequestorid(), target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:rc.RICE2APHeader)
+  return target;
+}
+
+size_t RICE2APHeader::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:rc.RICE2APHeader)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // int64 RanFuncId = 1;
+  if (this->ranfuncid() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int64Size(
+        this->ranfuncid());
+  }
+
+  // int64 RICRequestorID = 2;
+  if (this->ricrequestorid() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int64Size(
+        this->ricrequestorid());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
+  return total_size;
+}
+
+void RICE2APHeader::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:rc.RICE2APHeader)
+  GOOGLE_DCHECK_NE(&from, this);
+  const RICE2APHeader* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const RICE2APHeader>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:rc.RICE2APHeader)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:rc.RICE2APHeader)
+    MergeFrom(*source);
+  }
+}
+
+void RICE2APHeader::MergeFrom(const RICE2APHeader& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:rc.RICE2APHeader)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.ranfuncid() != 0) {
+    set_ranfuncid(from.ranfuncid());
+  }
+  if (from.ricrequestorid() != 0) {
+    set_ricrequestorid(from.ricrequestorid());
+  }
+}
+
+void RICE2APHeader::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:rc.RICE2APHeader)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void RICE2APHeader::CopyFrom(const RICE2APHeader& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:rc.RICE2APHeader)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RICE2APHeader::IsInitialized() const {
+  return true;
+}
+
+void RICE2APHeader::Swap(RICE2APHeader* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void RICE2APHeader::InternalSwap(RICE2APHeader* other) {
+  using std::swap;
+  swap(ranfuncid_, other->ranfuncid_);
+  swap(ricrequestorid_, other->ricrequestorid_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+}
+
+::google::protobuf::Metadata RICE2APHeader::GetMetadata() const {
+  protobuf_rc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_rc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void RICControlHeader::InitAsDefaultInstance() {
+  ::rc::_RICControlHeader_default_instance_._instance.get_mutable()->ueid_ = const_cast< ::rc::UeId*>(
+      ::rc::UeId::internal_default_instance());
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int RICControlHeader::kControlStyleFieldNumber;
+const int RICControlHeader::kControlActionIdFieldNumber;
+const int RICControlHeader::kUEIDFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+RICControlHeader::RICControlHeader()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_rc_2eproto::scc_info_RICControlHeader.base);
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:rc.RICControlHeader)
+}
+RICControlHeader::RICControlHeader(const RICControlHeader& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_ueid()) {
+    ueid_ = new ::rc::UeId(*from.ueid_);
+  } else {
+    ueid_ = NULL;
+  }
+  ::memcpy(&controlstyle_, &from.controlstyle_,
+    static_cast<size_t>(reinterpret_cast<char*>(&controlactionid_) -
+    reinterpret_cast<char*>(&controlstyle_)) + sizeof(controlactionid_));
+  // @@protoc_insertion_point(copy_constructor:rc.RICControlHeader)
+}
+
+void RICControlHeader::SharedCtor() {
+  ::memset(&ueid_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&controlactionid_) -
+      reinterpret_cast<char*>(&ueid_)) + sizeof(controlactionid_));
+}
+
+RICControlHeader::~RICControlHeader() {
+  // @@protoc_insertion_point(destructor:rc.RICControlHeader)
+  SharedDtor();
+}
+
+void RICControlHeader::SharedDtor() {
+  if (this != internal_default_instance()) delete ueid_;
+}
+
+void RICControlHeader::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+const ::google::protobuf::Descriptor* RICControlHeader::descriptor() {
+  ::protobuf_rc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_rc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const RICControlHeader& RICControlHeader::default_instance() {
+  ::google::protobuf::internal::InitSCC(&protobuf_rc_2eproto::scc_info_RICControlHeader.base);
+  return *internal_default_instance();
+}
+
+
+void RICControlHeader::Clear() {
+// @@protoc_insertion_point(message_clear_start:rc.RICControlHeader)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  if (GetArenaNoVirtual() == NULL && ueid_ != NULL) {
+    delete ueid_;
+  }
+  ueid_ = NULL;
+  ::memset(&controlstyle_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&controlactionid_) -
+      reinterpret_cast<char*>(&controlstyle_)) + sizeof(controlactionid_));
+  _internal_metadata_.Clear();
+}
+
+bool RICControlHeader::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:rc.RICControlHeader)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // int64 ControlStyle = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+                 input, &controlstyle_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // int64 ControlActionId = 2;
+      case 2: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+                 input, &controlactionid_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // .rc.UeId UEID = 3;
+      case 3: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_ueid()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:rc.RICControlHeader)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:rc.RICControlHeader)
+  return false;
+#undef DO_
+}
+
+void RICControlHeader::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:rc.RICControlHeader)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // int64 ControlStyle = 1;
+  if (this->controlstyle() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->controlstyle(), output);
+  }
+
+  // int64 ControlActionId = 2;
+  if (this->controlactionid() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->controlactionid(), output);
+  }
+
+  // .rc.UeId UEID = 3;
+  if (this->has_ueid()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      3, this->_internal_ueid(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:rc.RICControlHeader)
+}
+
+::google::protobuf::uint8* RICControlHeader::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:rc.RICControlHeader)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // int64 ControlStyle = 1;
+  if (this->controlstyle() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->controlstyle(), target);
+  }
+
+  // int64 ControlActionId = 2;
+  if (this->controlactionid() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->controlactionid(), target);
+  }
+
+  // .rc.UeId UEID = 3;
+  if (this->has_ueid()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        3, this->_internal_ueid(), deterministic, target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:rc.RICControlHeader)
+  return target;
+}
+
+size_t RICControlHeader::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:rc.RICControlHeader)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // .rc.UeId UEID = 3;
+  if (this->has_ueid()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *ueid_);
+  }
+
+  // int64 ControlStyle = 1;
+  if (this->controlstyle() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int64Size(
+        this->controlstyle());
+  }
+
+  // int64 ControlActionId = 2;
+  if (this->controlactionid() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int64Size(
+        this->controlactionid());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
+  return total_size;
+}
+
+void RICControlHeader::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:rc.RICControlHeader)
+  GOOGLE_DCHECK_NE(&from, this);
+  const RICControlHeader* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const RICControlHeader>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:rc.RICControlHeader)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:rc.RICControlHeader)
+    MergeFrom(*source);
+  }
+}
+
+void RICControlHeader::MergeFrom(const RICControlHeader& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:rc.RICControlHeader)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.has_ueid()) {
+    mutable_ueid()->::rc::UeId::MergeFrom(from.ueid());
+  }
+  if (from.controlstyle() != 0) {
+    set_controlstyle(from.controlstyle());
+  }
+  if (from.controlactionid() != 0) {
+    set_controlactionid(from.controlactionid());
+  }
+}
+
+void RICControlHeader::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:rc.RICControlHeader)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void RICControlHeader::CopyFrom(const RICControlHeader& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:rc.RICControlHeader)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RICControlHeader::IsInitialized() const {
+  return true;
+}
+
+void RICControlHeader::Swap(RICControlHeader* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void RICControlHeader::InternalSwap(RICControlHeader* other) {
+  using std::swap;
+  swap(ueid_, other->ueid_);
+  swap(controlstyle_, other->controlstyle_);
+  swap(controlactionid_, other->controlactionid_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+}
+
+::google::protobuf::Metadata RICControlHeader::GetMetadata() const {
+  protobuf_rc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_rc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void UeId::InitAsDefaultInstance() {
+  ::rc::_UeId_default_instance_._instance.get_mutable()->gnbueid_ = const_cast< ::rc::gNBUEID*>(
+      ::rc::gNBUEID::internal_default_instance());
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int UeId::kGnbUEIDFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+UeId::UeId()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_rc_2eproto::scc_info_UeId.base);
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:rc.UeId)
+}
+UeId::UeId(const UeId& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_gnbueid()) {
+    gnbueid_ = new ::rc::gNBUEID(*from.gnbueid_);
+  } else {
+    gnbueid_ = NULL;
+  }
+  // @@protoc_insertion_point(copy_constructor:rc.UeId)
+}
+
+void UeId::SharedCtor() {
+  gnbueid_ = NULL;
+}
+
+UeId::~UeId() {
+  // @@protoc_insertion_point(destructor:rc.UeId)
+  SharedDtor();
+}
+
+void UeId::SharedDtor() {
+  if (this != internal_default_instance()) delete gnbueid_;
+}
+
+void UeId::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+const ::google::protobuf::Descriptor* UeId::descriptor() {
+  ::protobuf_rc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_rc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const UeId& UeId::default_instance() {
+  ::google::protobuf::internal::InitSCC(&protobuf_rc_2eproto::scc_info_UeId.base);
+  return *internal_default_instance();
+}
+
+
+void UeId::Clear() {
+// @@protoc_insertion_point(message_clear_start:rc.UeId)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  if (GetArenaNoVirtual() == NULL && gnbueid_ != NULL) {
+    delete gnbueid_;
+  }
+  gnbueid_ = NULL;
+  _internal_metadata_.Clear();
+}
+
+bool UeId::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:rc.UeId)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // .rc.gNBUEID GnbUEID = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_gnbueid()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:rc.UeId)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:rc.UeId)
+  return false;
+#undef DO_
+}
+
+void UeId::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:rc.UeId)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .rc.gNBUEID GnbUEID = 1;
+  if (this->has_gnbueid()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      1, this->_internal_gnbueid(), output);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
+  }
+  // @@protoc_insertion_point(serialize_end:rc.UeId)
+}
+
+::google::protobuf::uint8* UeId::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:rc.UeId)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .rc.gNBUEID GnbUEID = 1;
+  if (this->has_gnbueid()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        1, this->_internal_gnbueid(), deterministic, target);
+  }
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:rc.UeId)
+  return target;
+}
+
+size_t UeId::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:rc.UeId)
+  size_t total_size = 0;
+
+  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
+  }
+  // .rc.gNBUEID GnbUEID = 1;
+  if (this->has_gnbueid()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *gnbueid_);
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
+  return total_size;
+}
+
+void UeId::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:rc.UeId)
+  GOOGLE_DCHECK_NE(&from, this);
+  const UeId* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const UeId>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:rc.UeId)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:rc.UeId)
+    MergeFrom(*source);
+  }
+}
+
+void UeId::MergeFrom(const UeId& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:rc.UeId)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.has_gnbueid()) {
+    mutable_gnbueid()->::rc::gNBUEID::MergeFrom(from.gnbueid());
+  }
+}
+
+void UeId::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:rc.UeId)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void UeId::CopyFrom(const UeId& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:rc.UeId)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool UeId::IsInitialized() const {
+  return true;
+}
+
+void UeId::Swap(UeId* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void UeId::InternalSwap(UeId* other) {
+  using std::swap;
+  swap(gnbueid_, other->gnbueid_);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+}
+
+::google::protobuf::Metadata UeId::GetMetadata() const {
+  protobuf_rc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_rc_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
+void gNBUEID::InitAsDefaultInstance() {
+  ::rc::_gNBUEID_default_instance_._instance.get_mutable()->guami_ = const_cast< ::rc::Guami*>(
+      ::rc::Guami::internal_default_instance());
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int gNBUEID::kAmfUENGAPIDFieldNumber;
+const int gNBUEID::kGuamiFieldNumber;
+const int gNBUEID::kGNBCUUEF1APIDFieldNumber;
+const int gNBUEID::kGNBCUCPUEE1APIDFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+gNBUEID::gNBUEID()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_rc_2eproto::scc_info_gNBUEID.base);
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:rc.gNBUEID)
+}
+gNBUEID::gNBUEID(const gNBUEID& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      gnbcuuef1apid_(from.gnbcuuef1apid_),
+      gnbcucpuee1apid_(from.gnbcucpuee1apid_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_guami()) {
+    guami_ = new ::rc::Guami(*from.guami_);
+  } else {
+    guami_ = NULL;
+  }
+  amfuengapid_ = from.amfuengapid_;
+  // @@protoc_insertion_point(copy_constructor:rc.gNBUEID)
+}
+
+void gNBUEID::SharedCtor() {
+  ::memset(&guami_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&amfuengapid_) -
+      reinterpret_cast<char*>(&guami_)) + sizeof(amfuengapid_));
+}
+
+gNBUEID::~gNBUEID() {
+  // @@protoc_insertion_point(destructor:rc.gNBUEID)
+  SharedDtor();
+}
+
+void gNBUEID::SharedDtor() {
+  if (this != internal_default_instance()) delete guami_;
+}
+
+void gNBUEID::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+const ::google::protobuf::Descriptor* gNBUEID::descriptor() {
+  ::protobuf_rc_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_rc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const gNBUEID& gNBUEID::default_instance() {
+  ::google::protobuf::internal::InitSCC(&protobuf_rc_2eproto::scc_info_gNBUEID.base);
+  return *internal_default_instance();
+}
+
+
+void gNBUEID::Clear() {
+// @@protoc_insertion_point(message_clear_start:rc.gNBUEID)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  gnbcuuef1apid_.Clear();
+  gnbcucpuee1apid_.Clear();
+  if (GetArenaNoVirtual() == NULL && guami_ != NULL) {
+    delete guami_;
+  }
+  guami_ = NULL;
+  amfuengapid_ = GOOGLE_LONGLONG(0);
+  _internal_metadata_.Clear();
+}
+
+bool gNBUEID::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:rc.gNBUEID)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // int64 amfUENGAPID = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+                 input, &amfuengapid_)));
         } else {
           goto handle_unusual;
         }
         break;
       }
 
-      // int64 RICRequestorID = 2;
+      // .rc.Guami guami = 2;
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_guami()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
 
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+      // repeated int64 gNBCUUEF1APID = 3;
+      case 3: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                    ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &ricrequestorid_)));
+                 input, this->mutable_gnbcuuef1apid())));
+        } else if (
+            static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
+                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+                 1, 26u, input, this->mutable_gnbcuuef1apid())));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated int64 gNBCUCPUEE1APID = 4;
+      case 4: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
+                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+                 input, this->mutable_gnbcucpuee1apid())));
+        } else if (
+            static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
+                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+                 1, 34u, input, this->mutable_gnbcucpuee1apid())));
         } else {
           goto handle_unusual;
         }
@@ -406,64 +1371,115 @@ bool RICE2APHeader::MergePartialFromCodedStream(
     }
   }
 success:
-  // @@protoc_insertion_point(parse_success:rc.RICE2APHeader)
+  // @@protoc_insertion_point(parse_success:rc.gNBUEID)
   return true;
 failure:
-  // @@protoc_insertion_point(parse_failure:rc.RICE2APHeader)
+  // @@protoc_insertion_point(parse_failure:rc.gNBUEID)
   return false;
 #undef DO_
 }
 
-void RICE2APHeader::SerializeWithCachedSizes(
+void gNBUEID::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:rc.RICE2APHeader)
+  // @@protoc_insertion_point(serialize_start:rc.gNBUEID)
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // int64 RanFuncId = 1;
-  if (this->ranfuncid() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->ranfuncid(), output);
+  // int64 amfUENGAPID = 1;
+  if (this->amfuengapid() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->amfuengapid(), output);
   }
 
-  // int64 RICRequestorID = 2;
-  if (this->ricrequestorid() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->ricrequestorid(), output);
+  // .rc.Guami guami = 2;
+  if (this->has_guami()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      2, this->_internal_guami(), output);
+  }
+
+  // repeated int64 gNBCUUEF1APID = 3;
+  if (this->gnbcuuef1apid_size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteTag(3, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
+    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
+        _gnbcuuef1apid_cached_byte_size_));
+  }
+  for (int i = 0, n = this->gnbcuuef1apid_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt64NoTag(
+      this->gnbcuuef1apid(i), output);
+  }
+
+  // repeated int64 gNBCUCPUEE1APID = 4;
+  if (this->gnbcucpuee1apid_size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteTag(4, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
+    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
+        _gnbcucpuee1apid_cached_byte_size_));
+  }
+  for (int i = 0, n = this->gnbcucpuee1apid_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt64NoTag(
+      this->gnbcucpuee1apid(i), output);
   }
 
   if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
   }
-  // @@protoc_insertion_point(serialize_end:rc.RICE2APHeader)
+  // @@protoc_insertion_point(serialize_end:rc.gNBUEID)
 }
 
-::google::protobuf::uint8* RICE2APHeader::InternalSerializeWithCachedSizesToArray(
+::google::protobuf::uint8* gNBUEID::InternalSerializeWithCachedSizesToArray(
     bool deterministic, ::google::protobuf::uint8* target) const {
   (void)deterministic; // Unused
-  // @@protoc_insertion_point(serialize_to_array_start:rc.RICE2APHeader)
+  // @@protoc_insertion_point(serialize_to_array_start:rc.gNBUEID)
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // int64 RanFuncId = 1;
-  if (this->ranfuncid() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->ranfuncid(), target);
+  // int64 amfUENGAPID = 1;
+  if (this->amfuengapid() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->amfuengapid(), target);
   }
 
-  // int64 RICRequestorID = 2;
-  if (this->ricrequestorid() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->ricrequestorid(), target);
+  // .rc.Guami guami = 2;
+  if (this->has_guami()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        2, this->_internal_guami(), deterministic, target);
+  }
+
+  // repeated int64 gNBCUUEF1APID = 3;
+  if (this->gnbcuuef1apid_size() > 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
+      3,
+      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
+      target);
+    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
+        static_cast< ::google::protobuf::int32>(
+            _gnbcuuef1apid_cached_byte_size_), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteInt64NoTagToArray(this->gnbcuuef1apid_, target);
+  }
+
+  // repeated int64 gNBCUCPUEE1APID = 4;
+  if (this->gnbcucpuee1apid_size() > 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
+      4,
+      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
+      target);
+    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
+        static_cast< ::google::protobuf::int32>(
+            _gnbcucpuee1apid_cached_byte_size_), target);
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteInt64NoTagToArray(this->gnbcucpuee1apid_, target);
   }
 
   if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
   }
-  // @@protoc_insertion_point(serialize_to_array_end:rc.RICE2APHeader)
+  // @@protoc_insertion_point(serialize_to_array_end:rc.gNBUEID)
   return target;
 }
 
-size_t RICE2APHeader::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:rc.RICE2APHeader)
+size_t gNBUEID::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:rc.gNBUEID)
   size_t total_size = 0;
 
   if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
@@ -471,18 +1487,50 @@ size_t RICE2APHeader::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
   }
-  // int64 RanFuncId = 1;
-  if (this->ranfuncid() != 0) {
+  // repeated int64 gNBCUUEF1APID = 3;
+  {
+    size_t data_size = ::google::protobuf::internal::WireFormatLite::
+      Int64Size(this->gnbcuuef1apid_);
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast< ::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+    _gnbcuuef1apid_cached_byte_size_ = cached_size;
+    GOOGLE_SAFE_CONCURRENT_WRITES_END();
+    total_size += data_size;
+  }
+
+  // repeated int64 gNBCUCPUEE1APID = 4;
+  {
+    size_t data_size = ::google::protobuf::internal::WireFormatLite::
+      Int64Size(this->gnbcucpuee1apid_);
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast< ::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+    _gnbcucpuee1apid_cached_byte_size_ = cached_size;
+    GOOGLE_SAFE_CONCURRENT_WRITES_END();
+    total_size += data_size;
+  }
+
+  // .rc.Guami guami = 2;
+  if (this->has_guami()) {
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->ranfuncid());
+      ::google::protobuf::internal::WireFormatLite::MessageSize(
+        *guami_);
   }
 
-  // int64 RICRequestorID = 2;
-  if (this->ricrequestorid() != 0) {
+  // int64 amfUENGAPID = 1;
+  if (this->amfuengapid() != 0) {
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->ricrequestorid());
+        this->amfuengapid());
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
@@ -490,66 +1538,70 @@ size_t RICE2APHeader::ByteSizeLong() const {
   return total_size;
 }
 
-void RICE2APHeader::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:rc.RICE2APHeader)
+void gNBUEID::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:rc.gNBUEID)
   GOOGLE_DCHECK_NE(&from, this);
-  const RICE2APHeader* source =
-      ::google::protobuf::internal::DynamicCastToGenerated<const RICE2APHeader>(
+  const gNBUEID* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const gNBUEID>(
           &from);
   if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:rc.RICE2APHeader)
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:rc.gNBUEID)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:rc.RICE2APHeader)
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:rc.gNBUEID)
     MergeFrom(*source);
   }
 }
 
-void RICE2APHeader::MergeFrom(const RICE2APHeader& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:rc.RICE2APHeader)
+void gNBUEID::MergeFrom(const gNBUEID& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:rc.gNBUEID)
   GOOGLE_DCHECK_NE(&from, this);
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  if (from.ranfuncid() != 0) {
-    set_ranfuncid(from.ranfuncid());
+  gnbcuuef1apid_.MergeFrom(from.gnbcuuef1apid_);
+  gnbcucpuee1apid_.MergeFrom(from.gnbcucpuee1apid_);
+  if (from.has_guami()) {
+    mutable_guami()->::rc::Guami::MergeFrom(from.guami());
   }
-  if (from.ricrequestorid() != 0) {
-    set_ricrequestorid(from.ricrequestorid());
+  if (from.amfuengapid() != 0) {
+    set_amfuengapid(from.amfuengapid());
   }
 }
 
-void RICE2APHeader::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:rc.RICE2APHeader)
+void gNBUEID::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:rc.gNBUEID)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-void RICE2APHeader::CopyFrom(const RICE2APHeader& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:rc.RICE2APHeader)
+void gNBUEID::CopyFrom(const gNBUEID& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:rc.gNBUEID)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool RICE2APHeader::IsInitialized() const {
+bool gNBUEID::IsInitialized() const {
   return true;
 }
 
-void RICE2APHeader::Swap(RICE2APHeader* other) {
+void gNBUEID::Swap(gNBUEID* other) {
   if (other == this) return;
   InternalSwap(other);
 }
-void RICE2APHeader::InternalSwap(RICE2APHeader* other) {
+void gNBUEID::InternalSwap(gNBUEID* other) {
   using std::swap;
-  swap(ranfuncid_, other->ranfuncid_);
-  swap(ricrequestorid_, other->ricrequestorid_);
+  gnbcuuef1apid_.InternalSwap(&other->gnbcuuef1apid_);
+  gnbcucpuee1apid_.InternalSwap(&other->gnbcucpuee1apid_);
+  swap(guami_, other->guami_);
+  swap(amfuengapid_, other->amfuengapid_);
   _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
-::google::protobuf::Metadata RICE2APHeader::GetMetadata() const {
+::google::protobuf::Metadata gNBUEID::GetMetadata() const {
   protobuf_rc_2eproto::protobuf_AssignDescriptorsOnce();
   return ::protobuf_rc_2eproto::file_level_metadata[kIndexInFileMessages];
 }
@@ -557,126 +1609,159 @@ void RICE2APHeader::InternalSwap(RICE2APHeader* other) {
 
 // ===================================================================
 
-void RICControlHeader::InitAsDefaultInstance() {
+void Guami::InitAsDefaultInstance() {
 }
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int RICControlHeader::kControlStyleFieldNumber;
-const int RICControlHeader::kControlActionIdFieldNumber;
-const int RICControlHeader::kUEIDFieldNumber;
+const int Guami::kPLMNIdentityFieldNumber;
+const int Guami::kAMFRegionIDFieldNumber;
+const int Guami::kAMFSetIDFieldNumber;
+const int Guami::kAMFPointerFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
-RICControlHeader::RICControlHeader()
+Guami::Guami()
   : ::google::protobuf::Message(), _internal_metadata_(NULL) {
   ::google::protobuf::internal::InitSCC(
-      &protobuf_rc_2eproto::scc_info_RICControlHeader.base);
+      &protobuf_rc_2eproto::scc_info_Guami.base);
   SharedCtor();
-  // @@protoc_insertion_point(constructor:rc.RICControlHeader)
+  // @@protoc_insertion_point(constructor:rc.Guami)
 }
-RICControlHeader::RICControlHeader(const RICControlHeader& from)
+Guami::Guami(const Guami& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ueid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (from.ueid().size() > 0) {
-    ueid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.ueid_);
+  plmnidentity_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.plmnidentity().size() > 0) {
+    plmnidentity_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.plmnidentity_);
   }
-  ::memcpy(&controlstyle_, &from.controlstyle_,
-    static_cast<size_t>(reinterpret_cast<char*>(&controlactionid_) -
-    reinterpret_cast<char*>(&controlstyle_)) + sizeof(controlactionid_));
-  // @@protoc_insertion_point(copy_constructor:rc.RICControlHeader)
+  amfregionid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.amfregionid().size() > 0) {
+    amfregionid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.amfregionid_);
+  }
+  amfsetid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.amfsetid().size() > 0) {
+    amfsetid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.amfsetid_);
+  }
+  amfpointer_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.amfpointer().size() > 0) {
+    amfpointer_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.amfpointer_);
+  }
+  // @@protoc_insertion_point(copy_constructor:rc.Guami)
 }
 
-void RICControlHeader::SharedCtor() {
-  ueid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  ::memset(&controlstyle_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&controlactionid_) -
-      reinterpret_cast<char*>(&controlstyle_)) + sizeof(controlactionid_));
+void Guami::SharedCtor() {
+  plmnidentity_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  amfregionid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  amfsetid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  amfpointer_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 
-RICControlHeader::~RICControlHeader() {
-  // @@protoc_insertion_point(destructor:rc.RICControlHeader)
+Guami::~Guami() {
+  // @@protoc_insertion_point(destructor:rc.Guami)
   SharedDtor();
 }
 
-void RICControlHeader::SharedDtor() {
-  ueid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+void Guami::SharedDtor() {
+  plmnidentity_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  amfregionid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  amfsetid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  amfpointer_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 
-void RICControlHeader::SetCachedSize(int size) const {
+void Guami::SetCachedSize(int size) const {
   _cached_size_.Set(size);
 }
-const ::google::protobuf::Descriptor* RICControlHeader::descriptor() {
+const ::google::protobuf::Descriptor* Guami::descriptor() {
   ::protobuf_rc_2eproto::protobuf_AssignDescriptorsOnce();
   return ::protobuf_rc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
-const RICControlHeader& RICControlHeader::default_instance() {
-  ::google::protobuf::internal::InitSCC(&protobuf_rc_2eproto::scc_info_RICControlHeader.base);
+const Guami& Guami::default_instance() {
+  ::google::protobuf::internal::InitSCC(&protobuf_rc_2eproto::scc_info_Guami.base);
   return *internal_default_instance();
 }
 
 
-void RICControlHeader::Clear() {
-// @@protoc_insertion_point(message_clear_start:rc.RICControlHeader)
+void Guami::Clear() {
+// @@protoc_insertion_point(message_clear_start:rc.Guami)
   ::google::protobuf::uint32 cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  ueid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  ::memset(&controlstyle_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&controlactionid_) -
-      reinterpret_cast<char*>(&controlstyle_)) + sizeof(controlactionid_));
+  plmnidentity_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  amfregionid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  amfsetid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  amfpointer_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   _internal_metadata_.Clear();
 }
 
-bool RICControlHeader::MergePartialFromCodedStream(
+bool Guami::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
 #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:rc.RICControlHeader)
+  // @@protoc_insertion_point(parse_start:rc.Guami)
   for (;;) {
     ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // int64 ControlStyle = 1;
+      // string pLMNIdentity = 1;
       case 1: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &controlstyle_)));
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_plmnidentity()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->plmnidentity().data(), static_cast<int>(this->plmnidentity().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "rc.Guami.pLMNIdentity"));
         } else {
           goto handle_unusual;
         }
         break;
       }
 
-      // int64 ControlActionId = 2;
+      // string aMFRegionID = 2;
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &controlactionid_)));
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_amfregionid()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->amfregionid().data(), static_cast<int>(this->amfregionid().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "rc.Guami.aMFRegionID"));
         } else {
           goto handle_unusual;
         }
         break;
       }
 
-      // string UEID = 3;
+      // string aMFSetID = 3;
       case 3: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_ueid()));
+                input, this->mutable_amfsetid()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->amfsetid().data(), static_cast<int>(this->amfsetid().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "rc.Guami.aMFSetID"));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // string aMFPointer = 4;
+      case 4: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_amfpointer()));
           DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->ueid().data(), static_cast<int>(this->ueid().length()),
+            this->amfpointer().data(), static_cast<int>(this->amfpointer().length()),
             ::google::protobuf::internal::WireFormatLite::PARSE,
-            "rc.RICControlHeader.UEID"));
+            "rc.Guami.aMFPointer"));
         } else {
           goto handle_unusual;
         }
@@ -695,85 +1780,128 @@ bool RICControlHeader::MergePartialFromCodedStream(
     }
   }
 success:
-  // @@protoc_insertion_point(parse_success:rc.RICControlHeader)
+  // @@protoc_insertion_point(parse_success:rc.Guami)
   return true;
 failure:
-  // @@protoc_insertion_point(parse_failure:rc.RICControlHeader)
+  // @@protoc_insertion_point(parse_failure:rc.Guami)
   return false;
 #undef DO_
 }
 
-void RICControlHeader::SerializeWithCachedSizes(
+void Guami::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:rc.RICControlHeader)
+  // @@protoc_insertion_point(serialize_start:rc.Guami)
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // int64 ControlStyle = 1;
-  if (this->controlstyle() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->controlstyle(), output);
+  // string pLMNIdentity = 1;
+  if (this->plmnidentity().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->plmnidentity().data(), static_cast<int>(this->plmnidentity().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "rc.Guami.pLMNIdentity");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->plmnidentity(), output);
   }
 
-  // int64 ControlActionId = 2;
-  if (this->controlactionid() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->controlactionid(), output);
+  // string aMFRegionID = 2;
+  if (this->amfregionid().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->amfregionid().data(), static_cast<int>(this->amfregionid().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "rc.Guami.aMFRegionID");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->amfregionid(), output);
+  }
+
+  // string aMFSetID = 3;
+  if (this->amfsetid().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->amfsetid().data(), static_cast<int>(this->amfsetid().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "rc.Guami.aMFSetID");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      3, this->amfsetid(), output);
   }
 
-  // string UEID = 3;
-  if (this->ueid().size() > 0) {
+  // string aMFPointer = 4;
+  if (this->amfpointer().size() > 0) {
     ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->ueid().data(), static_cast<int>(this->ueid().length()),
+      this->amfpointer().data(), static_cast<int>(this->amfpointer().length()),
       ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "rc.RICControlHeader.UEID");
+      "rc.Guami.aMFPointer");
     ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      3, this->ueid(), output);
+      4, this->amfpointer(), output);
   }
 
   if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
   }
-  // @@protoc_insertion_point(serialize_end:rc.RICControlHeader)
+  // @@protoc_insertion_point(serialize_end:rc.Guami)
 }
 
-::google::protobuf::uint8* RICControlHeader::InternalSerializeWithCachedSizesToArray(
+::google::protobuf::uint8* Guami::InternalSerializeWithCachedSizesToArray(
     bool deterministic, ::google::protobuf::uint8* target) const {
   (void)deterministic; // Unused
-  // @@protoc_insertion_point(serialize_to_array_start:rc.RICControlHeader)
+  // @@protoc_insertion_point(serialize_to_array_start:rc.Guami)
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // int64 ControlStyle = 1;
-  if (this->controlstyle() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->controlstyle(), target);
+  // string pLMNIdentity = 1;
+  if (this->plmnidentity().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->plmnidentity().data(), static_cast<int>(this->plmnidentity().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "rc.Guami.pLMNIdentity");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->plmnidentity(), target);
   }
 
-  // int64 ControlActionId = 2;
-  if (this->controlactionid() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->controlactionid(), target);
+  // string aMFRegionID = 2;
+  if (this->amfregionid().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->amfregionid().data(), static_cast<int>(this->amfregionid().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "rc.Guami.aMFRegionID");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->amfregionid(), target);
+  }
+
+  // string aMFSetID = 3;
+  if (this->amfsetid().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->amfsetid().data(), static_cast<int>(this->amfsetid().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "rc.Guami.aMFSetID");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        3, this->amfsetid(), target);
   }
 
-  // string UEID = 3;
-  if (this->ueid().size() > 0) {
+  // string aMFPointer = 4;
+  if (this->amfpointer().size() > 0) {
     ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->ueid().data(), static_cast<int>(this->ueid().length()),
+      this->amfpointer().data(), static_cast<int>(this->amfpointer().length()),
       ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "rc.RICControlHeader.UEID");
+      "rc.Guami.aMFPointer");
     target =
       ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        3, this->ueid(), target);
+        4, this->amfpointer(), target);
   }
 
   if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
   }
-  // @@protoc_insertion_point(serialize_to_array_end:rc.RICControlHeader)
+  // @@protoc_insertion_point(serialize_to_array_end:rc.Guami)
   return target;
 }
 
-size_t RICControlHeader::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:rc.RICControlHeader)
+size_t Guami::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:rc.Guami)
   size_t total_size = 0;
 
   if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
@@ -781,25 +1909,32 @@ size_t RICControlHeader::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
   }
-  // string UEID = 3;
-  if (this->ueid().size() > 0) {
+  // string pLMNIdentity = 1;
+  if (this->plmnidentity().size() > 0) {
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->ueid());
+        this->plmnidentity());
   }
 
-  // int64 ControlStyle = 1;
-  if (this->controlstyle() != 0) {
+  // string aMFRegionID = 2;
+  if (this->amfregionid().size() > 0) {
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->controlstyle());
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->amfregionid());
   }
 
-  // int64 ControlActionId = 2;
-  if (this->controlactionid() != 0) {
+  // string aMFSetID = 3;
+  if (this->amfsetid().size() > 0) {
     total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->controlactionid());
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->amfsetid());
+  }
+
+  // string aMFPointer = 4;
+  if (this->amfpointer().size() > 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->amfpointer());
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
@@ -807,72 +1942,82 @@ size_t RICControlHeader::ByteSizeLong() const {
   return total_size;
 }
 
-void RICControlHeader::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:rc.RICControlHeader)
+void Guami::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:rc.Guami)
   GOOGLE_DCHECK_NE(&from, this);
-  const RICControlHeader* source =
-      ::google::protobuf::internal::DynamicCastToGenerated<const RICControlHeader>(
+  const Guami* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const Guami>(
           &from);
   if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:rc.RICControlHeader)
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:rc.Guami)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:rc.RICControlHeader)
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:rc.Guami)
     MergeFrom(*source);
   }
 }
 
-void RICControlHeader::MergeFrom(const RICControlHeader& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:rc.RICControlHeader)
+void Guami::MergeFrom(const Guami& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:rc.Guami)
   GOOGLE_DCHECK_NE(&from, this);
   _internal_metadata_.MergeFrom(from._internal_metadata_);
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  if (from.ueid().size() > 0) {
+  if (from.plmnidentity().size() > 0) {
 
-    ueid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.ueid_);
+    plmnidentity_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.plmnidentity_);
   }
-  if (from.controlstyle() != 0) {
-    set_controlstyle(from.controlstyle());
+  if (from.amfregionid().size() > 0) {
+
+    amfregionid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.amfregionid_);
   }
-  if (from.controlactionid() != 0) {
-    set_controlactionid(from.controlactionid());
+  if (from.amfsetid().size() > 0) {
+
+    amfsetid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.amfsetid_);
+  }
+  if (from.amfpointer().size() > 0) {
+
+    amfpointer_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.amfpointer_);
   }
 }
 
-void RICControlHeader::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:rc.RICControlHeader)
+void Guami::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:rc.Guami)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-void RICControlHeader::CopyFrom(const RICControlHeader& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:rc.RICControlHeader)
+void Guami::CopyFrom(const Guami& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:rc.Guami)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool RICControlHeader::IsInitialized() const {
+bool Guami::IsInitialized() const {
   return true;
 }
 
-void RICControlHeader::Swap(RICControlHeader* other) {
+void Guami::Swap(Guami* other) {
   if (other == this) return;
   InternalSwap(other);
 }
-void RICControlHeader::InternalSwap(RICControlHeader* other) {
+void Guami::InternalSwap(Guami* other) {
   using std::swap;
-  ueid_.Swap(&other->ueid_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+  plmnidentity_.Swap(&other->plmnidentity_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  amfregionid_.Swap(&other->amfregionid_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  amfsetid_.Swap(&other->amfsetid_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  amfpointer_.Swap(&other->amfpointer_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
     GetArenaNoVirtual());
-  swap(controlstyle_, other->controlstyle_);
-  swap(controlactionid_, other->controlactionid_);
   _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
-::google::protobuf::Metadata RICControlHeader::GetMetadata() const {
+::google::protobuf::Metadata Guami::GetMetadata() const {
   protobuf_rc_2eproto::protobuf_AssignDescriptorsOnce();
   return ::protobuf_rc_2eproto::file_level_metadata[kIndexInFileMessages];
 }
@@ -2000,6 +3145,15 @@ template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::rc::RICE2APHeader* Arena::Create
 template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::rc::RICControlHeader* Arena::CreateMaybeMessage< ::rc::RICControlHeader >(Arena* arena) {
   return Arena::CreateInternal< ::rc::RICControlHeader >(arena);
 }
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::rc::UeId* Arena::CreateMaybeMessage< ::rc::UeId >(Arena* arena) {
+  return Arena::CreateInternal< ::rc::UeId >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::rc::gNBUEID* Arena::CreateMaybeMessage< ::rc::gNBUEID >(Arena* arena) {
+  return Arena::CreateInternal< ::rc::gNBUEID >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::rc::Guami* Arena::CreateMaybeMessage< ::rc::Guami >(Arena* arena) {
+  return Arena::CreateInternal< ::rc::Guami >(arena);
+}
 template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::rc::RICControlMessage* Arena::CreateMaybeMessage< ::rc::RICControlMessage >(Arena* arena) {
   return Arena::CreateInternal< ::rc::RICControlMessage >(arena);
 }
index c67f858..1aa7814 100644 (file)
@@ -39,7 +39,7 @@ namespace protobuf_rc_2eproto {
 struct TableStruct {
   static const ::google::protobuf::internal::ParseTableField entries[];
   static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
-  static const ::google::protobuf::internal::ParseTable schema[5];
+  static const ::google::protobuf::internal::ParseTable schema[8];
   static const ::google::protobuf::internal::FieldMetadata field_metadata[];
   static const ::google::protobuf::internal::SerializationTable serialization_table[];
   static const ::google::protobuf::uint32 offsets[];
@@ -47,6 +47,9 @@ struct TableStruct {
 void AddDescriptors();
 }  // namespace protobuf_rc_2eproto
 namespace rc {
+class Guami;
+class GuamiDefaultTypeInternal;
+extern GuamiDefaultTypeInternal _Guami_default_instance_;
 class RICControlHeader;
 class RICControlHeaderDefaultTypeInternal;
 extern RICControlHeaderDefaultTypeInternal _RICControlHeader_default_instance_;
@@ -62,14 +65,23 @@ extern RicControlGrpcReqDefaultTypeInternal _RicControlGrpcReq_default_instance_
 class RicControlGrpcRsp;
 class RicControlGrpcRspDefaultTypeInternal;
 extern RicControlGrpcRspDefaultTypeInternal _RicControlGrpcRsp_default_instance_;
+class UeId;
+class UeIdDefaultTypeInternal;
+extern UeIdDefaultTypeInternal _UeId_default_instance_;
+class gNBUEID;
+class gNBUEIDDefaultTypeInternal;
+extern gNBUEIDDefaultTypeInternal _gNBUEID_default_instance_;
 }  // namespace rc
 namespace google {
 namespace protobuf {
+template<> ::rc::Guami* Arena::CreateMaybeMessage<::rc::Guami>(Arena*);
 template<> ::rc::RICControlHeader* Arena::CreateMaybeMessage<::rc::RICControlHeader>(Arena*);
 template<> ::rc::RICControlMessage* Arena::CreateMaybeMessage<::rc::RICControlMessage>(Arena*);
 template<> ::rc::RICE2APHeader* Arena::CreateMaybeMessage<::rc::RICE2APHeader>(Arena*);
 template<> ::rc::RicControlGrpcReq* Arena::CreateMaybeMessage<::rc::RicControlGrpcReq>(Arena*);
 template<> ::rc::RicControlGrpcRsp* Arena::CreateMaybeMessage<::rc::RicControlGrpcRsp>(Arena*);
+template<> ::rc::UeId* Arena::CreateMaybeMessage<::rc::UeId>(Arena*);
+template<> ::rc::gNBUEID* Arena::CreateMaybeMessage<::rc::gNBUEID>(Arena*);
 }  // namespace protobuf
 }  // namespace google
 namespace rc {
@@ -318,19 +330,17 @@ class RICControlHeader : public ::google::protobuf::Message /* @@protoc_insertio
 
   // accessors -------------------------------------------------------
 
-  // string UEID = 3;
+  // .rc.UeId UEID = 3;
+  bool has_ueid() const;
   void clear_ueid();
   static const int kUEIDFieldNumber = 3;
-  const ::std::string& ueid() const;
-  void set_ueid(const ::std::string& value);
-  #if LANG_CXX11
-  void set_ueid(::std::string&& value);
-  #endif
-  void set_ueid(const char* value);
-  void set_ueid(const char* value, size_t size);
-  ::std::string* mutable_ueid();
-  ::std::string* release_ueid();
-  void set_allocated_ueid(::std::string* ueid);
+  private:
+  const ::rc::UeId& _internal_ueid() const;
+  public:
+  const ::rc::UeId& ueid() const;
+  ::rc::UeId* release_ueid();
+  ::rc::UeId* mutable_ueid();
+  void set_allocated_ueid(::rc::UeId* ueid);
 
   // int64 ControlStyle = 1;
   void clear_controlstyle();
@@ -348,7 +358,7 @@ class RICControlHeader : public ::google::protobuf::Message /* @@protoc_insertio
  private:
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::internal::ArenaStringPtr ueid_;
+  ::rc::UeId* ueid_;
   ::google::protobuf::int64 controlstyle_;
   ::google::protobuf::int64 controlactionid_;
   mutable ::google::protobuf::internal::CachedSize _cached_size_;
@@ -356,6 +366,415 @@ class RICControlHeader : public ::google::protobuf::Message /* @@protoc_insertio
 };
 // -------------------------------------------------------------------
 
+class UeId : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:rc.UeId) */ {
+ public:
+  UeId();
+  virtual ~UeId();
+
+  UeId(const UeId& from);
+
+  inline UeId& operator=(const UeId& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  UeId(UeId&& from) noexcept
+    : UeId() {
+    *this = ::std::move(from);
+  }
+
+  inline UeId& operator=(UeId&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const UeId& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const UeId* internal_default_instance() {
+    return reinterpret_cast<const UeId*>(
+               &_UeId_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    2;
+
+  void Swap(UeId* other);
+  friend void swap(UeId& a, UeId& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline UeId* New() const final {
+    return CreateMaybeMessage<UeId>(NULL);
+  }
+
+  UeId* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<UeId>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
+  void CopyFrom(const UeId& from);
+  void MergeFrom(const UeId& from);
+  void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) final;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(UeId* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // .rc.gNBUEID GnbUEID = 1;
+  bool has_gnbueid() const;
+  void clear_gnbueid();
+  static const int kGnbUEIDFieldNumber = 1;
+  private:
+  const ::rc::gNBUEID& _internal_gnbueid() const;
+  public:
+  const ::rc::gNBUEID& gnbueid() const;
+  ::rc::gNBUEID* release_gnbueid();
+  ::rc::gNBUEID* mutable_gnbueid();
+  void set_allocated_gnbueid(::rc::gNBUEID* gnbueid);
+
+  // @@protoc_insertion_point(class_scope:rc.UeId)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::rc::gNBUEID* gnbueid_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
+  friend struct ::protobuf_rc_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class gNBUEID : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:rc.gNBUEID) */ {
+ public:
+  gNBUEID();
+  virtual ~gNBUEID();
+
+  gNBUEID(const gNBUEID& from);
+
+  inline gNBUEID& operator=(const gNBUEID& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  gNBUEID(gNBUEID&& from) noexcept
+    : gNBUEID() {
+    *this = ::std::move(from);
+  }
+
+  inline gNBUEID& operator=(gNBUEID&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const gNBUEID& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const gNBUEID* internal_default_instance() {
+    return reinterpret_cast<const gNBUEID*>(
+               &_gNBUEID_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    3;
+
+  void Swap(gNBUEID* other);
+  friend void swap(gNBUEID& a, gNBUEID& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline gNBUEID* New() const final {
+    return CreateMaybeMessage<gNBUEID>(NULL);
+  }
+
+  gNBUEID* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<gNBUEID>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
+  void CopyFrom(const gNBUEID& from);
+  void MergeFrom(const gNBUEID& from);
+  void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) final;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(gNBUEID* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // repeated int64 gNBCUUEF1APID = 3;
+  int gnbcuuef1apid_size() const;
+  void clear_gnbcuuef1apid();
+  static const int kGNBCUUEF1APIDFieldNumber = 3;
+  ::google::protobuf::int64 gnbcuuef1apid(int index) const;
+  void set_gnbcuuef1apid(int index, ::google::protobuf::int64 value);
+  void add_gnbcuuef1apid(::google::protobuf::int64 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+      gnbcuuef1apid() const;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+      mutable_gnbcuuef1apid();
+
+  // repeated int64 gNBCUCPUEE1APID = 4;
+  int gnbcucpuee1apid_size() const;
+  void clear_gnbcucpuee1apid();
+  static const int kGNBCUCPUEE1APIDFieldNumber = 4;
+  ::google::protobuf::int64 gnbcucpuee1apid(int index) const;
+  void set_gnbcucpuee1apid(int index, ::google::protobuf::int64 value);
+  void add_gnbcucpuee1apid(::google::protobuf::int64 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+      gnbcucpuee1apid() const;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+      mutable_gnbcucpuee1apid();
+
+  // .rc.Guami guami = 2;
+  bool has_guami() const;
+  void clear_guami();
+  static const int kGuamiFieldNumber = 2;
+  private:
+  const ::rc::Guami& _internal_guami() const;
+  public:
+  const ::rc::Guami& guami() const;
+  ::rc::Guami* release_guami();
+  ::rc::Guami* mutable_guami();
+  void set_allocated_guami(::rc::Guami* guami);
+
+  // int64 amfUENGAPID = 1;
+  void clear_amfuengapid();
+  static const int kAmfUENGAPIDFieldNumber = 1;
+  ::google::protobuf::int64 amfuengapid() const;
+  void set_amfuengapid(::google::protobuf::int64 value);
+
+  // @@protoc_insertion_point(class_scope:rc.gNBUEID)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > gnbcuuef1apid_;
+  mutable int _gnbcuuef1apid_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > gnbcucpuee1apid_;
+  mutable int _gnbcucpuee1apid_cached_byte_size_;
+  ::rc::Guami* guami_;
+  ::google::protobuf::int64 amfuengapid_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
+  friend struct ::protobuf_rc_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class Guami : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:rc.Guami) */ {
+ public:
+  Guami();
+  virtual ~Guami();
+
+  Guami(const Guami& from);
+
+  inline Guami& operator=(const Guami& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  Guami(Guami&& from) noexcept
+    : Guami() {
+    *this = ::std::move(from);
+  }
+
+  inline Guami& operator=(Guami&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const Guami& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const Guami* internal_default_instance() {
+    return reinterpret_cast<const Guami*>(
+               &_Guami_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    4;
+
+  void Swap(Guami* other);
+  friend void swap(Guami& a, Guami& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline Guami* New() const final {
+    return CreateMaybeMessage<Guami>(NULL);
+  }
+
+  Guami* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Guami>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
+  void CopyFrom(const Guami& from);
+  void MergeFrom(const Guami& from);
+  void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) final;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(Guami* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // string pLMNIdentity = 1;
+  void clear_plmnidentity();
+  static const int kPLMNIdentityFieldNumber = 1;
+  const ::std::string& plmnidentity() const;
+  void set_plmnidentity(const ::std::string& value);
+  #if LANG_CXX11
+  void set_plmnidentity(::std::string&& value);
+  #endif
+  void set_plmnidentity(const char* value);
+  void set_plmnidentity(const char* value, size_t size);
+  ::std::string* mutable_plmnidentity();
+  ::std::string* release_plmnidentity();
+  void set_allocated_plmnidentity(::std::string* plmnidentity);
+
+  // string aMFRegionID = 2;
+  void clear_amfregionid();
+  static const int kAMFRegionIDFieldNumber = 2;
+  const ::std::string& amfregionid() const;
+  void set_amfregionid(const ::std::string& value);
+  #if LANG_CXX11
+  void set_amfregionid(::std::string&& value);
+  #endif
+  void set_amfregionid(const char* value);
+  void set_amfregionid(const char* value, size_t size);
+  ::std::string* mutable_amfregionid();
+  ::std::string* release_amfregionid();
+  void set_allocated_amfregionid(::std::string* amfregionid);
+
+  // string aMFSetID = 3;
+  void clear_amfsetid();
+  static const int kAMFSetIDFieldNumber = 3;
+  const ::std::string& amfsetid() const;
+  void set_amfsetid(const ::std::string& value);
+  #if LANG_CXX11
+  void set_amfsetid(::std::string&& value);
+  #endif
+  void set_amfsetid(const char* value);
+  void set_amfsetid(const char* value, size_t size);
+  ::std::string* mutable_amfsetid();
+  ::std::string* release_amfsetid();
+  void set_allocated_amfsetid(::std::string* amfsetid);
+
+  // string aMFPointer = 4;
+  void clear_amfpointer();
+  static const int kAMFPointerFieldNumber = 4;
+  const ::std::string& amfpointer() const;
+  void set_amfpointer(const ::std::string& value);
+  #if LANG_CXX11
+  void set_amfpointer(::std::string&& value);
+  #endif
+  void set_amfpointer(const char* value);
+  void set_amfpointer(const char* value, size_t size);
+  ::std::string* mutable_amfpointer();
+  ::std::string* release_amfpointer();
+  void set_allocated_amfpointer(::std::string* amfpointer);
+
+  // @@protoc_insertion_point(class_scope:rc.Guami)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::ArenaStringPtr plmnidentity_;
+  ::google::protobuf::internal::ArenaStringPtr amfregionid_;
+  ::google::protobuf::internal::ArenaStringPtr amfsetid_;
+  ::google::protobuf::internal::ArenaStringPtr amfpointer_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
+  friend struct ::protobuf_rc_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
 class RICControlMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:rc.RICControlMessage) */ {
  public:
   RICControlMessage();
@@ -391,7 +810,7 @@ class RICControlMessage : public ::google::protobuf::Message /* @@protoc_inserti
                &_RICControlMessage_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    2;
+    5;
 
   void Swap(RICControlMessage* other);
   friend void swap(RICControlMessage& a, RICControlMessage& b) {
@@ -509,7 +928,7 @@ class RicControlGrpcReq : public ::google::protobuf::Message /* @@protoc_inserti
                &_RicControlGrpcReq_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    3;
+    6;
 
   void Swap(RicControlGrpcReq* other);
   friend void swap(RicControlGrpcReq& a, RicControlGrpcReq& b) {
@@ -696,7 +1115,7 @@ class RicControlGrpcRsp : public ::google::protobuf::Message /* @@protoc_inserti
                &_RicControlGrpcRsp_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    4;
+    7;
 
   void Swap(RicControlGrpcRsp* other);
   friend void swap(RicControlGrpcRsp& a, RicControlGrpcRsp& b) {
@@ -848,57 +1267,464 @@ inline void RICControlHeader::set_controlactionid(::google::protobuf::int64 valu
   // @@protoc_insertion_point(field_set:rc.RICControlHeader.ControlActionId)
 }
 
-// string UEID = 3;
+// .rc.UeId UEID = 3;
+inline bool RICControlHeader::has_ueid() const {
+  return this != internal_default_instance() && ueid_ != NULL;
+}
 inline void RICControlHeader::clear_ueid() {
-  ueid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (GetArenaNoVirtual() == NULL && ueid_ != NULL) {
+    delete ueid_;
+  }
+  ueid_ = NULL;
+}
+inline const ::rc::UeId& RICControlHeader::_internal_ueid() const {
+  return *ueid_;
 }
-inline const ::std::string& RICControlHeader::ueid() const {
+inline const ::rc::UeId& RICControlHeader::ueid() const {
+  const ::rc::UeId* p = ueid_;
   // @@protoc_insertion_point(field_get:rc.RICControlHeader.UEID)
-  return ueid_.GetNoArena();
+  return p != NULL ? *p : *reinterpret_cast<const ::rc::UeId*>(
+      &::rc::_UeId_default_instance_);
+}
+inline ::rc::UeId* RICControlHeader::release_ueid() {
+  // @@protoc_insertion_point(field_release:rc.RICControlHeader.UEID)
+  
+  ::rc::UeId* temp = ueid_;
+  ueid_ = NULL;
+  return temp;
+}
+inline ::rc::UeId* RICControlHeader::mutable_ueid() {
+  
+  if (ueid_ == NULL) {
+    auto* p = CreateMaybeMessage<::rc::UeId>(GetArenaNoVirtual());
+    ueid_ = p;
+  }
+  // @@protoc_insertion_point(field_mutable:rc.RICControlHeader.UEID)
+  return ueid_;
+}
+inline void RICControlHeader::set_allocated_ueid(::rc::UeId* ueid) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete ueid_;
+  }
+  if (ueid) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      ueid = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, ueid, submessage_arena);
+    }
+    
+  } else {
+    
+  }
+  ueid_ = ueid;
+  // @@protoc_insertion_point(field_set_allocated:rc.RICControlHeader.UEID)
+}
+
+// -------------------------------------------------------------------
+
+// UeId
+
+// .rc.gNBUEID GnbUEID = 1;
+inline bool UeId::has_gnbueid() const {
+  return this != internal_default_instance() && gnbueid_ != NULL;
+}
+inline void UeId::clear_gnbueid() {
+  if (GetArenaNoVirtual() == NULL && gnbueid_ != NULL) {
+    delete gnbueid_;
+  }
+  gnbueid_ = NULL;
+}
+inline const ::rc::gNBUEID& UeId::_internal_gnbueid() const {
+  return *gnbueid_;
+}
+inline const ::rc::gNBUEID& UeId::gnbueid() const {
+  const ::rc::gNBUEID* p = gnbueid_;
+  // @@protoc_insertion_point(field_get:rc.UeId.GnbUEID)
+  return p != NULL ? *p : *reinterpret_cast<const ::rc::gNBUEID*>(
+      &::rc::_gNBUEID_default_instance_);
+}
+inline ::rc::gNBUEID* UeId::release_gnbueid() {
+  // @@protoc_insertion_point(field_release:rc.UeId.GnbUEID)
+  
+  ::rc::gNBUEID* temp = gnbueid_;
+  gnbueid_ = NULL;
+  return temp;
+}
+inline ::rc::gNBUEID* UeId::mutable_gnbueid() {
+  
+  if (gnbueid_ == NULL) {
+    auto* p = CreateMaybeMessage<::rc::gNBUEID>(GetArenaNoVirtual());
+    gnbueid_ = p;
+  }
+  // @@protoc_insertion_point(field_mutable:rc.UeId.GnbUEID)
+  return gnbueid_;
+}
+inline void UeId::set_allocated_gnbueid(::rc::gNBUEID* gnbueid) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete gnbueid_;
+  }
+  if (gnbueid) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      gnbueid = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, gnbueid, submessage_arena);
+    }
+    
+  } else {
+    
+  }
+  gnbueid_ = gnbueid;
+  // @@protoc_insertion_point(field_set_allocated:rc.UeId.GnbUEID)
+}
+
+// -------------------------------------------------------------------
+
+// gNBUEID
+
+// int64 amfUENGAPID = 1;
+inline void gNBUEID::clear_amfuengapid() {
+  amfuengapid_ = GOOGLE_LONGLONG(0);
+}
+inline ::google::protobuf::int64 gNBUEID::amfuengapid() const {
+  // @@protoc_insertion_point(field_get:rc.gNBUEID.amfUENGAPID)
+  return amfuengapid_;
+}
+inline void gNBUEID::set_amfuengapid(::google::protobuf::int64 value) {
+  
+  amfuengapid_ = value;
+  // @@protoc_insertion_point(field_set:rc.gNBUEID.amfUENGAPID)
+}
+
+// .rc.Guami guami = 2;
+inline bool gNBUEID::has_guami() const {
+  return this != internal_default_instance() && guami_ != NULL;
+}
+inline void gNBUEID::clear_guami() {
+  if (GetArenaNoVirtual() == NULL && guami_ != NULL) {
+    delete guami_;
+  }
+  guami_ = NULL;
+}
+inline const ::rc::Guami& gNBUEID::_internal_guami() const {
+  return *guami_;
+}
+inline const ::rc::Guami& gNBUEID::guami() const {
+  const ::rc::Guami* p = guami_;
+  // @@protoc_insertion_point(field_get:rc.gNBUEID.guami)
+  return p != NULL ? *p : *reinterpret_cast<const ::rc::Guami*>(
+      &::rc::_Guami_default_instance_);
+}
+inline ::rc::Guami* gNBUEID::release_guami() {
+  // @@protoc_insertion_point(field_release:rc.gNBUEID.guami)
+  
+  ::rc::Guami* temp = guami_;
+  guami_ = NULL;
+  return temp;
+}
+inline ::rc::Guami* gNBUEID::mutable_guami() {
+  
+  if (guami_ == NULL) {
+    auto* p = CreateMaybeMessage<::rc::Guami>(GetArenaNoVirtual());
+    guami_ = p;
+  }
+  // @@protoc_insertion_point(field_mutable:rc.gNBUEID.guami)
+  return guami_;
+}
+inline void gNBUEID::set_allocated_guami(::rc::Guami* guami) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete guami_;
+  }
+  if (guami) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      guami = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, guami, submessage_arena);
+    }
+    
+  } else {
+    
+  }
+  guami_ = guami;
+  // @@protoc_insertion_point(field_set_allocated:rc.gNBUEID.guami)
+}
+
+// repeated int64 gNBCUUEF1APID = 3;
+inline int gNBUEID::gnbcuuef1apid_size() const {
+  return gnbcuuef1apid_.size();
+}
+inline void gNBUEID::clear_gnbcuuef1apid() {
+  gnbcuuef1apid_.Clear();
+}
+inline ::google::protobuf::int64 gNBUEID::gnbcuuef1apid(int index) const {
+  // @@protoc_insertion_point(field_get:rc.gNBUEID.gNBCUUEF1APID)
+  return gnbcuuef1apid_.Get(index);
+}
+inline void gNBUEID::set_gnbcuuef1apid(int index, ::google::protobuf::int64 value) {
+  gnbcuuef1apid_.Set(index, value);
+  // @@protoc_insertion_point(field_set:rc.gNBUEID.gNBCUUEF1APID)
+}
+inline void gNBUEID::add_gnbcuuef1apid(::google::protobuf::int64 value) {
+  gnbcuuef1apid_.Add(value);
+  // @@protoc_insertion_point(field_add:rc.gNBUEID.gNBCUUEF1APID)
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+gNBUEID::gnbcuuef1apid() const {
+  // @@protoc_insertion_point(field_list:rc.gNBUEID.gNBCUUEF1APID)
+  return gnbcuuef1apid_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+gNBUEID::mutable_gnbcuuef1apid() {
+  // @@protoc_insertion_point(field_mutable_list:rc.gNBUEID.gNBCUUEF1APID)
+  return &gnbcuuef1apid_;
+}
+
+// repeated int64 gNBCUCPUEE1APID = 4;
+inline int gNBUEID::gnbcucpuee1apid_size() const {
+  return gnbcucpuee1apid_.size();
+}
+inline void gNBUEID::clear_gnbcucpuee1apid() {
+  gnbcucpuee1apid_.Clear();
+}
+inline ::google::protobuf::int64 gNBUEID::gnbcucpuee1apid(int index) const {
+  // @@protoc_insertion_point(field_get:rc.gNBUEID.gNBCUCPUEE1APID)
+  return gnbcucpuee1apid_.Get(index);
+}
+inline void gNBUEID::set_gnbcucpuee1apid(int index, ::google::protobuf::int64 value) {
+  gnbcucpuee1apid_.Set(index, value);
+  // @@protoc_insertion_point(field_set:rc.gNBUEID.gNBCUCPUEE1APID)
 }
-inline void RICControlHeader::set_ueid(const ::std::string& value) {
+inline void gNBUEID::add_gnbcucpuee1apid(::google::protobuf::int64 value) {
+  gnbcucpuee1apid_.Add(value);
+  // @@protoc_insertion_point(field_add:rc.gNBUEID.gNBCUCPUEE1APID)
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+gNBUEID::gnbcucpuee1apid() const {
+  // @@protoc_insertion_point(field_list:rc.gNBUEID.gNBCUCPUEE1APID)
+  return gnbcucpuee1apid_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+gNBUEID::mutable_gnbcucpuee1apid() {
+  // @@protoc_insertion_point(field_mutable_list:rc.gNBUEID.gNBCUCPUEE1APID)
+  return &gnbcucpuee1apid_;
+}
+
+// -------------------------------------------------------------------
+
+// Guami
+
+// string pLMNIdentity = 1;
+inline void Guami::clear_plmnidentity() {
+  plmnidentity_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Guami::plmnidentity() const {
+  // @@protoc_insertion_point(field_get:rc.Guami.pLMNIdentity)
+  return plmnidentity_.GetNoArena();
+}
+inline void Guami::set_plmnidentity(const ::std::string& value) {
   
-  ueid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:rc.RICControlHeader.UEID)
+  plmnidentity_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:rc.Guami.pLMNIdentity)
 }
 #if LANG_CXX11
-inline void RICControlHeader::set_ueid(::std::string&& value) {
+inline void Guami::set_plmnidentity(::std::string&& value) {
   
-  ueid_.SetNoArena(
+  plmnidentity_.SetNoArena(
     &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:rc.RICControlHeader.UEID)
+  // @@protoc_insertion_point(field_set_rvalue:rc.Guami.pLMNIdentity)
 }
 #endif
-inline void RICControlHeader::set_ueid(const char* value) {
+inline void Guami::set_plmnidentity(const char* value) {
   GOOGLE_DCHECK(value != NULL);
   
-  ueid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:rc.RICControlHeader.UEID)
+  plmnidentity_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:rc.Guami.pLMNIdentity)
 }
-inline void RICControlHeader::set_ueid(const char* value, size_t size) {
+inline void Guami::set_plmnidentity(const char* value, size_t size) {
   
-  ueid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+  plmnidentity_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
       ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:rc.RICControlHeader.UEID)
+  // @@protoc_insertion_point(field_set_pointer:rc.Guami.pLMNIdentity)
 }
-inline ::std::string* RICControlHeader::mutable_ueid() {
+inline ::std::string* Guami::mutable_plmnidentity() {
   
-  // @@protoc_insertion_point(field_mutable:rc.RICControlHeader.UEID)
-  return ueid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  // @@protoc_insertion_point(field_mutable:rc.Guami.pLMNIdentity)
+  return plmnidentity_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
-inline ::std::string* RICControlHeader::release_ueid() {
-  // @@protoc_insertion_point(field_release:rc.RICControlHeader.UEID)
+inline ::std::string* Guami::release_plmnidentity() {
+  // @@protoc_insertion_point(field_release:rc.Guami.pLMNIdentity)
   
-  return ueid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return plmnidentity_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
-inline void RICControlHeader::set_allocated_ueid(::std::string* ueid) {
-  if (ueid != NULL) {
+inline void Guami::set_allocated_plmnidentity(::std::string* plmnidentity) {
+  if (plmnidentity != NULL) {
     
   } else {
     
   }
-  ueid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ueid);
-  // @@protoc_insertion_point(field_set_allocated:rc.RICControlHeader.UEID)
+  plmnidentity_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), plmnidentity);
+  // @@protoc_insertion_point(field_set_allocated:rc.Guami.pLMNIdentity)
+}
+
+// string aMFRegionID = 2;
+inline void Guami::clear_amfregionid() {
+  amfregionid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Guami::amfregionid() const {
+  // @@protoc_insertion_point(field_get:rc.Guami.aMFRegionID)
+  return amfregionid_.GetNoArena();
+}
+inline void Guami::set_amfregionid(const ::std::string& value) {
+  
+  amfregionid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:rc.Guami.aMFRegionID)
+}
+#if LANG_CXX11
+inline void Guami::set_amfregionid(::std::string&& value) {
+  
+  amfregionid_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:rc.Guami.aMFRegionID)
+}
+#endif
+inline void Guami::set_amfregionid(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  amfregionid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:rc.Guami.aMFRegionID)
+}
+inline void Guami::set_amfregionid(const char* value, size_t size) {
+  
+  amfregionid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:rc.Guami.aMFRegionID)
+}
+inline ::std::string* Guami::mutable_amfregionid() {
+  
+  // @@protoc_insertion_point(field_mutable:rc.Guami.aMFRegionID)
+  return amfregionid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Guami::release_amfregionid() {
+  // @@protoc_insertion_point(field_release:rc.Guami.aMFRegionID)
+  
+  return amfregionid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Guami::set_allocated_amfregionid(::std::string* amfregionid) {
+  if (amfregionid != NULL) {
+    
+  } else {
+    
+  }
+  amfregionid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), amfregionid);
+  // @@protoc_insertion_point(field_set_allocated:rc.Guami.aMFRegionID)
+}
+
+// string aMFSetID = 3;
+inline void Guami::clear_amfsetid() {
+  amfsetid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Guami::amfsetid() const {
+  // @@protoc_insertion_point(field_get:rc.Guami.aMFSetID)
+  return amfsetid_.GetNoArena();
+}
+inline void Guami::set_amfsetid(const ::std::string& value) {
+  
+  amfsetid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:rc.Guami.aMFSetID)
+}
+#if LANG_CXX11
+inline void Guami::set_amfsetid(::std::string&& value) {
+  
+  amfsetid_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:rc.Guami.aMFSetID)
+}
+#endif
+inline void Guami::set_amfsetid(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  amfsetid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:rc.Guami.aMFSetID)
+}
+inline void Guami::set_amfsetid(const char* value, size_t size) {
+  
+  amfsetid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:rc.Guami.aMFSetID)
+}
+inline ::std::string* Guami::mutable_amfsetid() {
+  
+  // @@protoc_insertion_point(field_mutable:rc.Guami.aMFSetID)
+  return amfsetid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Guami::release_amfsetid() {
+  // @@protoc_insertion_point(field_release:rc.Guami.aMFSetID)
+  
+  return amfsetid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Guami::set_allocated_amfsetid(::std::string* amfsetid) {
+  if (amfsetid != NULL) {
+    
+  } else {
+    
+  }
+  amfsetid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), amfsetid);
+  // @@protoc_insertion_point(field_set_allocated:rc.Guami.aMFSetID)
+}
+
+// string aMFPointer = 4;
+inline void Guami::clear_amfpointer() {
+  amfpointer_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Guami::amfpointer() const {
+  // @@protoc_insertion_point(field_get:rc.Guami.aMFPointer)
+  return amfpointer_.GetNoArena();
+}
+inline void Guami::set_amfpointer(const ::std::string& value) {
+  
+  amfpointer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:rc.Guami.aMFPointer)
+}
+#if LANG_CXX11
+inline void Guami::set_amfpointer(::std::string&& value) {
+  
+  amfpointer_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:rc.Guami.aMFPointer)
+}
+#endif
+inline void Guami::set_amfpointer(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  amfpointer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:rc.Guami.aMFPointer)
+}
+inline void Guami::set_amfpointer(const char* value, size_t size) {
+  
+  amfpointer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:rc.Guami.aMFPointer)
+}
+inline ::std::string* Guami::mutable_amfpointer() {
+  
+  // @@protoc_insertion_point(field_mutable:rc.Guami.aMFPointer)
+  return amfpointer_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Guami::release_amfpointer() {
+  // @@protoc_insertion_point(field_release:rc.Guami.aMFPointer)
+  
+  return amfpointer_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Guami::set_allocated_amfpointer(::std::string* amfpointer) {
+  if (amfpointer != NULL) {
+    
+  } else {
+    
+  }
+  amfpointer_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), amfpointer);
+  // @@protoc_insertion_point(field_set_allocated:rc.Guami.aMFPointer)
 }
 
 // -------------------------------------------------------------------
@@ -1393,6 +2219,12 @@ inline void RicControlGrpcRsp::set_allocated_description(::std::string* descript
 
 // -------------------------------------------------------------------
 
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
 
 // @@protoc_insertion_point(namespace_scope)
 
index 030d63f..9c7ca7a 100644 (file)
@@ -2,15 +2,15 @@ syntax = "proto3";
 package rc;
 
 enum RICControlCellTypeEnum {
-
-    RIC_CONTROL_CELL_UNKWON = 0;
+    RIC_CONTROL_CELL_UNKWON = 0; 
     RIC_CONTROL_NR_CELL = 1;           // Indicates RIC Controls should be set for NR CELL
     RIC_CONTROL_EUTRAN_CELL = 2;    // Indicates RIC Controls should be set for E_UTRAN CELL
 }
 
 enum RICControlAckEnum {
-
-    RIC_CONTROL_ACK_UNKWON = 0;
+    RIC_CONTROL_ACK_UNKWON = 0; 
     RIC_CONTROL_NO_ACK = 1; // Optional RIC Control Acknowledgement is not required
     RIC_CONTROL_ACK = 2;    // Optional RIC Control Acknowledgement is required
     RIC_CONTROL_NACK = 3;   // Optional RIC Control Acknowledgement is only required to report failure
@@ -24,17 +24,34 @@ message RICE2APHeader  {
 message RICControlHeader {
         int64           ControlStyle = 1;
         int64           ControlActionId = 2;
-        string          UEID = 3;
+        UeId            UEID = 3;
 }
 
+message UeId {
+       gNBUEID         GnbUEID = 1;
+}
+
+message gNBUEID {
+       int64           amfUENGAPID = 1;
+       Guami           guami = 2;
+        repeated int64  gNBCUUEF1APID = 3;
+        repeated int64  gNBCUCPUEE1APID = 4;
+}
+
+message Guami {
+       string          pLMNIdentity = 1;
+       string          aMFRegionID  = 2;
+       string          aMFSetID     = 3;
+       string          aMFPointer   = 4;
+}
 
 message RICControlMessage {
        RICControlCellTypeEnum    RICControlCellTypeVal = 1;
         string                           TargetCellID = 2;
-
+               
 }
 
-//RicControl GRPC Req
+//RicControl GRPC Req  
 message RicControlGrpcReq {
        string              e2NodeID = 1;
        string              plmnID = 2;
@@ -58,3 +75,4 @@ service MsgComm {
 }
 
 
+
index 02a88fe..d95bdbf 100644 (file)
 #include <thread>
 #include <iostream>
 #include <memory>
-
+#include <algorithm>
 #include <set>
 #include <map>
 #include <vector>
 #include <string>
 #include <unordered_map>
-
+#include<deque>
 #include <rapidjson/document.h>
 #include <rapidjson/writer.h>
 #include <rapidjson/stringbuffer.h>
@@ -59,6 +59,7 @@
 #include <rmr/RIC_message_types.h>
 #include <ricxfcpp/xapp.hpp>
 #include <ricxfcpp/config.hpp>
+#include<sstream>
 
 /*
   FIXME unfortunately this RMR flag has to be disabled
@@ -114,6 +115,29 @@ unordered_map<string, shared_ptr<nodeb_t>> cell_map; // maps each cell to its no
   int serving_cell_rsrp;
 }; */
 
+
+//https://stackoverflow.com/a/34571089/15098882
+
+static std::string base64_decode(const std::string &in) {
+
+       std::string out;
+
+       std::vector<int> T(256, -1);
+       for (int i = 0; i < 64; i++) T["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[i]] = i;
+
+       int val = 0, valb = -8;
+       for (unsigned char c : in) {
+               if (T[c] == -1) break;
+               val = (val << 6) + T[c];
+               valb += 6;
+               if (valb >= 0) {
+                       out.push_back(char((val >> valb) & 0xFF));
+                       valb -= 8;
+               }
+       }
+       return out;
+}
+
 struct PolicyHandler : public BaseReaderHandler<UTF8<>, PolicyHandler> {
   /*
     Assuming we receive the following payload from A1 Mediator
@@ -277,30 +301,83 @@ struct NodebListHandler : public BaseReaderHandler<UTF8<>, NodebListHandler> {
 };
 
 struct NodebHandler : public BaseReaderHandler<UTF8<>, NodebHandler> {
-  string curr_key = "";
-  shared_ptr<nodeb_t> nodeb = make_shared<nodeb_t>();
-
-  bool Key(const Ch* str, SizeType length, bool copy) {
-    curr_key = str;
-    return true;
-  }
-
-  bool String(const Ch* str, SizeType length, bool copy) {
-    if( curr_key.compare( "ranName" ) == 0 ) {
-      nodeb->ran_name = str;
-    } else if( curr_key.compare( "plmnId" ) == 0 ) {
-      nodeb->global_nb_id.plmn_id = str;
-    } else if( curr_key.compare( "nbId" ) == 0 ) {
-      nodeb->global_nb_id.nb_id = str;
-    } else if( curr_key.compare( "cellId" ) == 0 ) {
-      cell_map[str] = nodeb;
-    }
-    return true;
-  }
+       string curr_key = "";
+       shared_ptr<nodeb_t> nodeb = make_shared<nodeb_t>();
+       std::string meid;
+       std::vector<string> cells;
+
+       bool Key(const Ch* str, SizeType length, bool copy) {
+               curr_key = str;
+               return true;
+       }
+
+       bool String(const Ch* str, SizeType length, bool copy) {
+
+               if (curr_key.compare("ranName") == 0) {
+                       //std::cout << str << "\n";
+                       nodeb->ran_name = str;
+                       meid= str;
+                       //std::cout << "\n meid = " << meid;
+
+               }
+               else if (curr_key.compare("plmnId") == 0) {
+                       //std::cout << str << "\n";
+                       nodeb->global_nb_id.plmn_id = str;
+               }
+               else if (curr_key.compare("nbId") == 0) {
+                       //std::cout <<str<< "\n";
+                       nodeb->global_nb_id.nb_id = str;
+               }
+               else if (curr_key.compare("e2nodeComponentRequestPart") == 0) {
+                       //std::cout << str<<"\n";
+                       auto message = base64_decode(str);
+                       //std::cout << message<<"\n";
+                       int len = meid.length();
+                       //std::cout << "\n meid = " << meid;
+                       int counter = 0;
+                               for (int i = 0; i <len; i++ ){
+                                       if (meid[i] == '_') {
+                                               counter++;
+                                       }
+                                       if( counter == 3) {
+                                               counter = i + 1;
+                                               break;
+                                       }
+                               }
+                               std::string last_matching_bits = meid.substr(counter, meid.length());
+                               len = last_matching_bits.size();
+                               char b;
+
+                               for (int i = 0; i < len; i++) {
+                                       b = last_matching_bits[i];
+                                       b = toupper(b);
+                                       // b = to lower(b); //alternately
+                                       last_matching_bits[i] = b;
+                               }
+                               len = message.length();
+                               //std::cout << "\nlast_matching_bits = " << last_matching_bits;
+                               int matching_len = last_matching_bits.length();;
+
+                                       for (int i = 0; i <= len - matching_len; i++ ){
+                                               //std::cout << "\n" << message.substr(i, matching_len);
+
+                                               if (message.substr(i,matching_len)== last_matching_bits){
+                                                       //std::cout << "\nmatched!\n";
+                                                       cells.push_back(message.substr(i,10));//cell id is 36 bit long , last  4 bit unused
+
+                                               }
+                                       }
+                                       len = cells.size();
+                                       for (int i = 0; i < len; i++) {
+                                               cell_map[cells[i]] = nodeb;
+                                       }
+
+               }
+               return true;
+       }
 
 };
 
-
 /* struct UEDataHandler : public BaseReaderHandler<UTF8<>, UEDataHandler> {
   unordered_map<string, string> cell_pred;
   std::string serving_cell_id;
@@ -534,32 +611,48 @@ void send_grpc_control_request( string ue_id, string target_cell_id ) {
   shared_ptr<rc::RicControlGrpcReq> request = make_shared<rc::RicControlGrpcReq>();
 
   rc::RICE2APHeader *apHeader = request->mutable_rice2apheaderdata();
-  apHeader->set_ranfuncid( 300 );
-  apHeader->set_ricrequestorid( 1001 );
+  apHeader->set_ranfuncid(3);
+  apHeader->set_ricrequestorid( 1 );
 
   rc::RICControlHeader *ctrlHeader = request->mutable_riccontrolheaderdata();
   ctrlHeader->set_controlstyle( 3 );
   ctrlHeader->set_controlactionid( 1 );
-  ctrlHeader->set_ueid( ue_id );
+  rc::UeId *ueid =  ctrlHeader->mutable_ueid();
+  rc::gNBUEID* gnbue= ueid->mutable_gnbueid();
+  gnbue->set_amfuengapid(stoi(ue_id));
+  gnbue->add_gnbcuuef1apid(stoi(ue_id));
+  gnbue->add_gnbcucpuee1apid(stoi(ue_id));
+  rc::Guami* gumi=gnbue->mutable_guami();
+  //As of now hardcoded according to the value setted in VIAVI RSG TOOL
+  gumi->set_amfregionid("10100000");
+  gumi->set_amfsetid("0000000000");
+  gumi->set_amfpointer("000001");
+  
+  //ctrlHeader->set_ueid( ue_id );
 
   rc::RICControlMessage *ctrlMsg = request->mutable_riccontrolmessagedata();
-  ctrlMsg->set_riccontrolcelltypeval( rc::RIC_CONTROL_CELL_UNKWON );
-  ctrlMsg->set_targetcellid( target_cell_id );
+  ctrlMsg->set_riccontrolcelltypeval( rc::RICControlCellTypeEnum::RIC_CONTROL_CELL_UNKWON );
+  //ctrlMsg->set_riccontrolcelltypeval( api::RIC_CONTROL_CELL_UNKWON);
+    
+    ctrlMsg->set_targetcellid( target_cell_id);
 
-  auto data = cell_map.find( target_cell_id );
+  auto data = cell_map.find(target_cell_id);
   if( data != cell_map.end() ) {
     request->set_e2nodeid( data->second->global_nb_id.nb_id );
     request->set_plmnid( data->second->global_nb_id.plmn_id );
     request->set_ranname( data->second->ran_name );
+    gumi->set_plmnidentity(data->second->global_nb_id.plmn_id);
   } else {
+    cout << "[INFO] Cannot find RAN name corresponding to cell id = "<<target_cell_id<<endl;
+    return;
     request->set_e2nodeid( "unknown_e2nodeid" );
     request->set_plmnid( "unknown_plmnid" );
     request->set_ranname( "unknown_ranname" );
+    gumi->set_plmnidentity("unknown_plmnid");
   }
-  request->set_riccontrolackreqval( rc::RIC_CONTROL_ACK_UNKWON );  // not yet used in api.proto
-
-  cout << "[INFO] Sending gRPC control request to " << ts_control_ep << "\n" << request->DebugString();
-
+  request->set_riccontrolackreqval( rc::RICControlAckEnum::RIC_CONTROL_ACK_UNKWON );
+  //request->set_riccontrolackreqval( api::RIC_CONTROL_ACK_UNKWON);  // not yet used in api.proto
+ cout<<"\nin ts xapp grpc message content \n"<< request->DebugString()<<"\n"; 
   grpc::Status status = rc_stub->SendRICControlReqServiceGrpc( &context, *request, &response );
 
   if( status.ok() ) {