src/lte/model/lte-rrc-header.cc
author Nicola Baldo <nbaldo@cttc.es>
Mon, 04 Feb 2013 18:47:25 +0100
changeset 9653 382d27da8905
parent 9651 0c8f2173327d
child 9671 56bf50f45a64
permissions -rw-r--r--
merged lena-dev with ns-3-dev
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
     2
/*
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
     3
 * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
     4
 *
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
     8
 *
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    12
 * GNU General Public License for more details.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    13
 *
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    17
 *
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    18
 * Author: Lluis Parcerisa <lparcerisa@cttc.cat>
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    19
 */
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    20
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    21
#include "ns3/log.h"
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    22
#include "ns3/lte-rrc-header.h"
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    23
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    24
#include <stdio.h>
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    25
#include <sstream>
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    26
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    27
#define MAX_DRB 11 // According to section 6.4 3GPP TS 36.331
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    28
#define MAX_EARFCN 65535
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    29
#define MAX_RAT_CAPABILITIES 8
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    30
#define MAX_SI_MESSAGE 32
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    31
#define MAX_SIB 32
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    32
9595
fb601af485c1 Definition of RRC SAP structures for RRC protocol measurement support
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9574
diff changeset
    33
#define MAX_REPORT_CONFIG_ID 32
fb601af485c1 Definition of RRC SAP structures for RRC protocol measurement support
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9574
diff changeset
    34
#define MAX_OBJECT_ID 32
fb601af485c1 Definition of RRC SAP structures for RRC protocol measurement support
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9574
diff changeset
    35
#define MAX_MEAS_ID 32
fb601af485c1 Definition of RRC SAP structures for RRC protocol measurement support
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9574
diff changeset
    36
#define MAX_CELL_MEAS 32
fb601af485c1 Definition of RRC SAP structures for RRC protocol measurement support
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9574
diff changeset
    37
#define MAX_CELL_REPORT 8
fb601af485c1 Definition of RRC SAP structures for RRC protocol measurement support
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9574
diff changeset
    38
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    39
NS_LOG_COMPONENT_DEFINE ("RrcHeader");
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    40
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    41
namespace ns3 {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    42
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    43
//////////////////// RrcAsn1Header class ///////////////////////////////
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    44
RrcAsn1Header::RrcAsn1Header ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    45
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    46
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    47
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    48
TypeId
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    49
RrcAsn1Header::GetTypeId (void)
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    50
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    51
  static TypeId tid = TypeId ("ns3::RrcAsn1Header")
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    52
    .SetParent<Header> ()
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    53
  ;
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    54
  return tid;
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    55
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    56
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    57
TypeId
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    58
RrcAsn1Header::GetInstanceTypeId (void) const
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    59
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    60
  return GetTypeId ();
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    61
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
    62
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
    63
int
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
    64
RrcAsn1Header::GetMessageType ()
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
    65
{
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
    66
  return m_messageType;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
    67
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
    68
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    69
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    70
RrcAsn1Header::SerializeDrbToAddModList (std::list<LteRrcSap::DrbToAddMod> drbToAddModList) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    71
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    72
  // Serialize DRB-ToAddModList sequence-of
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    73
  SerializeSequenceOf (drbToAddModList.size (),MAX_DRB,1);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    74
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    75
  // Serialize the elements in the sequence-of list
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    76
  std::list<LteRrcSap::DrbToAddMod>::iterator it = drbToAddModList.begin ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    77
  for (; it != drbToAddModList.end (); it++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    78
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    79
      // Serialize DRB-ToAddMod sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    80
      // 5 otional fields. Extension marker is present.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    81
      std::bitset<5> drbToAddModListOptionalFieldsPresent = std::bitset<5> ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    82
      drbToAddModListOptionalFieldsPresent.set (4,1); // eps-BearerIdentity present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    83
      drbToAddModListOptionalFieldsPresent.set (3,0); // pdcp-Config not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    84
      drbToAddModListOptionalFieldsPresent.set (2,1); // rlc-Config present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    85
      drbToAddModListOptionalFieldsPresent.set (1,1); // logicalChannelIdentity present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    86
      drbToAddModListOptionalFieldsPresent.set (0,1); // logicalChannelConfig present
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
    87
      SerializeSequence (drbToAddModListOptionalFieldsPresent,true);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    88
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    89
      // Serialize eps-BearerIdentity::=INTEGER (0..15)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    90
      SerializeInteger (it->epsBearerIdentity,0,15);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    91
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    92
      // Serialize drb-Identity ::= INTEGER (1..32)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    93
      SerializeInteger (it->drbIdentity,1,32);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    94
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    95
      switch (it->rlcConfig.choice)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    96
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    97
        case LteRrcSap::RlcConfig::UM_BI_DIRECTIONAL:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
    98
          // Serialize rlc-Config choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
    99
          SerializeChoice (4,1,true);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   100
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   101
          // Serialize UL-UM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   102
          SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   103
          SerializeEnum (2,0);  // sn-FieldLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   104
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   105
          // Serialize DL-UM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   106
          SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   107
          SerializeEnum (2,0);  // sn-FieldLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   108
          SerializeEnum (32,0);  // t-Reordering
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   109
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   110
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   111
        case LteRrcSap::RlcConfig::UM_UNI_DIRECTIONAL_UL:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   112
          // Serialize rlc-Config choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   113
          SerializeChoice (4,2,true);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   114
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   115
          // Serialize UL-UM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   116
          SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   117
          SerializeEnum (2,0);  // sn-FieldLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   118
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   119
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   120
        case LteRrcSap::RlcConfig::UM_UNI_DIRECTIONAL_DL:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   121
          // Serialize rlc-Config choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   122
          SerializeChoice (4,3,true);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   123
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   124
          // Serialize DL-UM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   125
          SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   126
          SerializeEnum (2,0);  // sn-FieldLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   127
          SerializeEnum (32,0);  // t-Reordering
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   128
          break;
9508
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   129
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   130
        case LteRrcSap::RlcConfig::AM:
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   131
        default:
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   132
          // Serialize rlc-Config choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   133
          SerializeChoice (4,0,true);
9508
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   134
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   135
          // Serialize UL-AM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   136
          SerializeSequence (std::bitset<0> (),false);
9508
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   137
          SerializeEnum (64,0);  // t-PollRetransmit
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   138
          SerializeEnum (8,0);   // pollPDU
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   139
          SerializeEnum (16,0);  // pollByte
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   140
          SerializeEnum (8,0);   // maxRetxThreshold
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   141
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   142
          // Serialize DL-AM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   143
          SerializeSequence (std::bitset<0> (),false);
9508
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   144
          SerializeEnum (32,0);  // t-Reordering
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   145
          SerializeEnum (64,0);  // t-StatusProhibit
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   146
          break;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   147
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   148
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   149
      // Serialize logicalChannelIdentity ::=INTEGER (3..10)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   150
      SerializeInteger (it->logicalChannelIdentity,3,10);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   151
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   152
      // Serialize logicalChannelConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   153
      SerializeLogicalChannelConfig (it->logicalChannelConfig);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   154
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   155
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   156
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   157
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   158
RrcAsn1Header::SerializeSrbToAddModList (std::list<LteRrcSap::SrbToAddMod> srbToAddModList) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   159
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   160
  // Serialize SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   161
  SerializeSequenceOf (srbToAddModList.size (),2,1);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   162
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   163
  // Serialize the elements in the sequence-of list
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   164
  std::list<LteRrcSap::SrbToAddMod>::iterator it = srbToAddModList.begin ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   165
  for (; it != srbToAddModList.end (); it++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   166
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   167
      // Serialize SRB-ToAddMod sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   168
      // 2 otional fields. Extension marker is present.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   169
      std::bitset<2> srbToAddModListOptionalFieldsPresent = std::bitset<2> ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   170
      srbToAddModListOptionalFieldsPresent.set (1,0); // rlc-Config not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   171
      srbToAddModListOptionalFieldsPresent.set (0,1); // logicalChannelConfig present
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   172
      SerializeSequence (srbToAddModListOptionalFieldsPresent,true);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   173
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   174
      // Serialize srb-Identity ::= INTEGER (1..2)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   175
      SerializeInteger (it->srbIdentity,1,2);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   176
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   177
      // Serialize logicalChannelConfig choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   178
      // 2 options, selected option 0 (var "explicitValue", of type LogicalChannelConfig)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   179
      SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   180
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   181
      // Serialize LogicalChannelConfig 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   182
      SerializeLogicalChannelConfig (it->logicalChannelConfig);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   183
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   184
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   185
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   186
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   187
RrcAsn1Header::SerializeLogicalChannelConfig (LteRrcSap::LogicalChannelConfig logicalChannelConfig) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   188
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   189
  // Serialize LogicalChannelConfig sequence
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   190
  // 1 optional field (ul-SpecificParameters), which is present. Extension marker present.
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   191
  SerializeSequence (std::bitset<1> (1),true);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   192
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   193
  // Serialize ul-SpecificParameters sequence
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   194
  // 1 optional field (logicalChannelGroup), which is present. No extension marker.
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   195
  SerializeSequence (std::bitset<1> (1),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   196
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   197
  // Serialize priority ::= INTEGER (1..16)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   198
  SerializeInteger (logicalChannelConfig.priority,1,16);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   199
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   200
  // Serialize prioritisedBitRate
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   201
  int prioritizedBitRate;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   202
  switch (logicalChannelConfig.prioritizedBitRateKbps)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   203
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   204
    case 0:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   205
      prioritizedBitRate = 0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   206
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   207
    case 8:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   208
      prioritizedBitRate = 1;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   209
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   210
    case 16:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   211
      prioritizedBitRate = 2;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   212
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   213
    case 32:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   214
      prioritizedBitRate = 3;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   215
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   216
    case 64:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   217
      prioritizedBitRate = 4;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   218
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   219
    case 128:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   220
      prioritizedBitRate = 5;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   221
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   222
    case 256:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   223
      prioritizedBitRate = 6;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   224
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   225
    default:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   226
      prioritizedBitRate = 7;          // Infinity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   227
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   228
  SerializeEnum (16,prioritizedBitRate);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   229
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   230
  // Serialize bucketSizeDuration
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   231
  int bucketSizeDuration;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   232
  switch (logicalChannelConfig.bucketSizeDurationMs)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   233
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   234
    case 50:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   235
      bucketSizeDuration = 0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   236
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   237
    case 100:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   238
      bucketSizeDuration = 1;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   239
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   240
    case 150:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   241
      bucketSizeDuration = 2;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   242
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   243
    case 300:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   244
      bucketSizeDuration = 3;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   245
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   246
    case 500:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   247
      bucketSizeDuration = 4;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   248
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   249
    case 1000:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   250
      bucketSizeDuration = 5;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   251
      break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   252
    default:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   253
      bucketSizeDuration = 5;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   254
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   255
  SerializeEnum (8,bucketSizeDuration);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   256
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   257
  // Serialize logicalChannelGroup ::= INTEGER (0..3)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   258
  SerializeInteger (logicalChannelConfig.logicalChannelGroup,0,3);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   259
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   260
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   261
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   262
RrcAsn1Header::SerializePhysicalConfigDedicated (LteRrcSap::PhysicalConfigDedicated physicalConfigDedicated) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   263
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   264
  // Serialize PhysicalConfigDedicated Sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   265
  std::bitset<10> optionalFieldsPhysicalConfigDedicated;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   266
  optionalFieldsPhysicalConfigDedicated.set (9,0);  // pdsch-ConfigDedicated not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   267
  optionalFieldsPhysicalConfigDedicated.set (8,0);  // pucch-ConfigDedicated not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   268
  optionalFieldsPhysicalConfigDedicated.set (7,0);  // pusch-ConfigDedicated not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   269
  optionalFieldsPhysicalConfigDedicated.set (6,0);  // uplinkPowerControlDedicated not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   270
  optionalFieldsPhysicalConfigDedicated.set (5,0);  // tpc-PDCCH-ConfigPUCCH not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   271
  optionalFieldsPhysicalConfigDedicated.set (4,0);  // tpc-PDCCH-ConfigPUSCH not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   272
  optionalFieldsPhysicalConfigDedicated.set (3,0);  // cqi-ReportConfig not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   273
  optionalFieldsPhysicalConfigDedicated.set (2,physicalConfigDedicated.haveSoundingRsUlConfigDedicated);  // soundingRS-UL-ConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   274
  optionalFieldsPhysicalConfigDedicated.set (1,physicalConfigDedicated.haveAntennaInfoDedicated);  // antennaInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   275
  optionalFieldsPhysicalConfigDedicated.set (0,0);  // schedulingRequestConfig not present
9618
0ea7f5ea874a Fix rrc header code for optimized build
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9607
diff changeset
   276
  SerializeSequence (optionalFieldsPhysicalConfigDedicated,true);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   277
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   278
  if (physicalConfigDedicated.haveSoundingRsUlConfigDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   279
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   280
      // Serialize SoundingRS-UL-ConfigDedicated choice:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   281
      switch (physicalConfigDedicated.soundingRsUlConfigDedicated.type)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   282
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   283
        case LteRrcSap::SoundingRsUlConfigDedicated::RESET:
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   284
          SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   285
          SerializeNull ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   286
          break;
9508
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   287
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   288
        case LteRrcSap::SoundingRsUlConfigDedicated::SETUP:
9508
c230119063ad Add default cases in serializating RlcConfig.choice and SoundingRsUlConfigCommon.type
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9503
diff changeset
   289
        default:
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   290
          // 2 options, selected: 1 (setup)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   291
          SerializeChoice (2,1,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   292
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   293
          // Serialize setup sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   294
          // 0 optional / default fields, no extension marker.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   295
          SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   296
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   297
          // Serialize srs-Bandwidth
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   298
          SerializeEnum (4,physicalConfigDedicated.soundingRsUlConfigDedicated.srsBandwidth);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   299
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   300
          // Serialize  srs-HoppingBandwidth
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   301
          SerializeEnum (4,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   302
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   303
          // Serialize freqDomainPosition
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   304
          SerializeInteger (0,0,23);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   305
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   306
          // Serialize duration
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   307
          SerializeBoolean (false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   308
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   309
          // Serialize srs-ConfigIndex
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   310
          SerializeInteger (physicalConfigDedicated.soundingRsUlConfigDedicated.srsConfigIndex,0,1023);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   311
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   312
          // Serialize transmissionComb
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   313
          SerializeInteger (0,0,1);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   314
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   315
          // Serialize cyclicShift
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   316
          SerializeEnum (8,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   317
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   318
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   319
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   320
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   321
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   322
  if (physicalConfigDedicated.haveAntennaInfoDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   323
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   324
      // Serialize antennaInfo choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   325
      // 2 options. Selected: 0 ("explicitValue" of type "AntennaInfoDedicated")
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   326
      SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   327
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   328
      // Serialize AntennaInfoDedicated sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   329
      // 1 optional parameter, not present. No extension marker.
9618
0ea7f5ea874a Fix rrc header code for optimized build
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9607
diff changeset
   330
      SerializeSequence (std::bitset<1> (0),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   331
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   332
      // Serialize transmissionMode
9651
0c8f2173327d Assume the value in the struct antennaInfo.transmissionMode is the enum index.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9650
diff changeset
   333
      // Assuming the value in the struct is the enum index
0c8f2173327d Assume the value in the struct antennaInfo.transmissionMode is the enum index.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9650
diff changeset
   334
      SerializeEnum (8,physicalConfigDedicated.antennaInfo.transmissionMode);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   335
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   336
      // Serialize ue-TransmitAntennaSelection choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   337
      SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   338
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   339
      // Serialize release
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   340
      SerializeNull ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   341
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   342
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   343
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   344
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   345
RrcAsn1Header::SerializeRadioResourceConfigDedicated (LteRrcSap::RadioResourceConfigDedicated radioResourceConfigDedicated) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   346
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   347
  bool isSrbToAddModListPresent = !radioResourceConfigDedicated.srbToAddModList.empty ();
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   348
  bool isDrbToAddModListPresent = !radioResourceConfigDedicated.drbToAddModList.empty ();
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   349
  bool isDrbToReleaseListPresent = !radioResourceConfigDedicated.drbToReleaseList.empty ();
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   350
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   351
  // 6 optional fields. Extension marker is present.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   352
  std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
9486
36915221a849 Fix Serialization when list size=0 in rrcConnectionSetup, check rb1 set before sending setup complete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9482
diff changeset
   353
  optionalFieldsPresent.set (5,isSrbToAddModListPresent);  // srb-ToAddModList present
36915221a849 Fix Serialization when list size=0 in rrcConnectionSetup, check rb1 set before sending setup complete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9482
diff changeset
   354
  optionalFieldsPresent.set (4,isDrbToAddModListPresent);  // drb-ToAddModList present
36915221a849 Fix Serialization when list size=0 in rrcConnectionSetup, check rb1 set before sending setup complete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9482
diff changeset
   355
  optionalFieldsPresent.set (3,isDrbToReleaseListPresent);  // drb-ToReleaseList present
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   356
  optionalFieldsPresent.set (2,0);  // mac-MainConfig not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   357
  optionalFieldsPresent.set (1,0);  // sps-Config not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   358
  optionalFieldsPresent.set (0,(radioResourceConfigDedicated.havePhysicalConfigDedicated) ? 1 : 0);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   359
  SerializeSequence (optionalFieldsPresent,true);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   360
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   361
  // Serialize srbToAddModList
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   362
  if (isSrbToAddModListPresent)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   363
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   364
      SerializeSrbToAddModList (radioResourceConfigDedicated.srbToAddModList);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   365
    }
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   366
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   367
  // Serialize drbToAddModList
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   368
  if (isDrbToAddModListPresent)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   369
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   370
      SerializeDrbToAddModList (radioResourceConfigDedicated.drbToAddModList);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   371
    }
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   372
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   373
  // Serialize drbToReleaseList
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   374
  if (isDrbToReleaseListPresent)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   375
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   376
      SerializeSequenceOf (radioResourceConfigDedicated.drbToReleaseList.size (),MAX_DRB,1);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   377
      std::list<uint8_t>::iterator it = radioResourceConfigDedicated.drbToReleaseList.begin ();
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   378
      for (; it != radioResourceConfigDedicated.drbToReleaseList.end (); it++)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   379
        {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   380
          // DRB-Identity ::= INTEGER (1..32)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   381
          SerializeInteger (*it,1,32);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   382
        }
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   383
    }
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
   384
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   385
  if (radioResourceConfigDedicated.havePhysicalConfigDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   386
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   387
      SerializePhysicalConfigDedicated (radioResourceConfigDedicated.physicalConfigDedicated);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   388
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   389
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   390
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   391
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   392
RrcAsn1Header::SerializeSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 systemInformationBlockType1) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   393
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   394
  // 3 optional fields, no extension marker.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   395
  std::bitset<3> sysInfoBlk1Opts;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   396
  sysInfoBlk1Opts.set (2,0); // p-Max absent
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   397
  sysInfoBlk1Opts.set (1,0); // tdd-Config absent
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   398
  sysInfoBlk1Opts.set (0,0); // nonCriticalExtension absent
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   399
  SerializeSequence (sysInfoBlk1Opts,false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   400
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   401
  // Serialize cellAccessRelatedInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   402
  // 1 optional field (csgIdentity) which is present, no extension marker.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   403
  SerializeSequence (std::bitset<1> (1),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   404
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   405
  // Serialize plmn-IdentityList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   406
  SerializeSequenceOf (1,6,1);
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   407
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   408
  // PLMN-IdentityInfo 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   409
  SerializeSequence (std::bitset<0> (),false);
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   410
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   411
  SerializePlmnIdentity (systemInformationBlockType1.cellAccessRelatedInfo.plmnIdentityInfo.plmnIdentity);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   412
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   413
  // Serialize trackingAreaCode
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   414
  SerializeBitstring (std::bitset<16> (0));
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   415
  // Serialize cellIdentity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   416
  SerializeBitstring (std::bitset<28> (systemInformationBlockType1.cellAccessRelatedInfo.cellIdentity));
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   417
  // Serialize cellBarred
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   418
  SerializeEnum (2,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   419
  // Serialize intraFreqReselection
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   420
  SerializeEnum (2,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   421
  // Serialize csg-Indication
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   422
  SerializeBoolean (systemInformationBlockType1.cellAccessRelatedInfo.csgIndication);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   423
  // Serialize csg-Identity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   424
  SerializeBitstring (std::bitset<27> (systemInformationBlockType1.cellAccessRelatedInfo.csgIdentity));
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   425
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   426
  // Serialize cellSelectionInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   427
  SerializeSequence (std::bitset<1> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   428
  // Serialize q-RxLevMin
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   429
  SerializeInteger (-50,-70,-22);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   430
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   431
  // Serialize freqBandIndicator
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   432
  SerializeInteger (1,1,64);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   433
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   434
  // Serialize schedulingInfoList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   435
  SerializeSequenceOf (1,MAX_SI_MESSAGE,1);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   436
  // SchedulingInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   437
  SerializeSequence (std::bitset<0> (),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   438
  // si-Periodicity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   439
  SerializeEnum (7,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   440
  // sib-MappingInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   441
  SerializeSequenceOf (0,MAX_SIB - 1,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   442
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   443
  // Serialize si-WindowLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   444
  SerializeEnum (7,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   445
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   446
  // Serialize systemInfoValueTag
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   447
  SerializeInteger (0,0,31);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   448
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   449
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   450
void
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   451
RrcAsn1Header::SerializeRadioResourceConfigCommon (LteRrcSap::RadioResourceConfigCommon radioResourceConfigCommon) const
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   452
{
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   453
  // 9 optional fields. Extension marker yes.
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   454
  std::bitset<9> rrCfgCmmOpts;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   455
  rrCfgCmmOpts.set (8,1); // rach-ConfigCommon is present
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   456
  rrCfgCmmOpts.set (7,0); // pdsch-ConfigCommon not present
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   457
  rrCfgCmmOpts.set (6,0); // phich-Config not present
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   458
  rrCfgCmmOpts.set (5,0); // pucch-ConfigCommon  not present
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   459
  rrCfgCmmOpts.set (4,0); // soundingRS-UL-ConfigCommon not present
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   460
  rrCfgCmmOpts.set (3,0); // uplinkPowerControlCommon not present
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   461
  rrCfgCmmOpts.set (2,0); // antennaInfoCommon not present
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   462
  rrCfgCmmOpts.set (1,0); // p-Max not present
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   463
  rrCfgCmmOpts.set (0,0); // tdd-Config not present
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   464
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   465
  SerializeSequence (rrCfgCmmOpts,true);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   466
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   467
  if (rrCfgCmmOpts[8])
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   468
    {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   469
      // Serialize RACH-ConfigCommon
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   470
      SerializeRachConfigCommon (radioResourceConfigCommon.rachConfigCommon);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   471
    }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   472
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   473
  // Serialize PRACH-Config
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   474
  // 1 optional, 0 extension marker.
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   475
  SerializeSequence (std::bitset<1> (0),false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   476
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   477
  // Serialize PRACH-Config rootSequenceIndex
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   478
  SerializeInteger (0,0,1023);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   479
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   480
  // Serialize PUSCH-ConfigCommon
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   481
  SerializeSequence (std::bitset<0> (),false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   482
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   483
  // Serialize pusch-ConfigBasic
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   484
  SerializeSequence (std::bitset<0> (),false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   485
  SerializeInteger (1,1,4);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   486
  SerializeEnum (2,0);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   487
  SerializeInteger (0,0,98);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   488
  SerializeBoolean (false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   489
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   490
  // Serialize UL-ReferenceSignalsPUSCH
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   491
  SerializeSequence (std::bitset<0> (),false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   492
  SerializeBoolean (false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   493
  SerializeInteger (0,0,29);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   494
  SerializeBoolean (false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   495
  SerializeInteger (4,0,7);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   496
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   497
  // Serialize UL-CyclicPrefixLength
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   498
  SerializeEnum (2,0);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   499
}
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   500
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   501
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
   502
RrcAsn1Header::SerializeRadioResourceConfigCommonSib (LteRrcSap::RadioResourceConfigCommonSib radioResourceConfigCommonSib) const
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   503
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   504
  SerializeSequence (std::bitset<0> (0),true);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   505
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   506
  // rach-ConfigCommon
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   507
  SerializeRachConfigCommon (radioResourceConfigCommonSib.rachConfigCommon);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   508
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   509
  // bcch-Config 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   510
  SerializeSequence (std::bitset<0> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   511
  SerializeEnum (4,0); // modificationPeriodCoeff
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   512
  // pcch-Config 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   513
  SerializeSequence (std::bitset<0> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   514
  SerializeEnum (4,0); // defaultPagingCycle
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   515
  SerializeEnum (8,0); // nB
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   516
  // prach-Config 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   517
  SerializeSequence (std::bitset<1> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   518
  SerializeInteger (0,0,1023); // rootSequenceIndex
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   519
  // pdsch-ConfigCommon 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   520
  SerializeSequence (std::bitset<0> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   521
  SerializeInteger (0,-60,50); // referenceSignalPower
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   522
  SerializeInteger (0,0,3); // p-b
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   523
  // pusch-ConfigCommon 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   524
  SerializeSequence (std::bitset<0> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   525
  SerializeSequence (std::bitset<0> (0),false); // pusch-ConfigBasic
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   526
  SerializeInteger (1,1,4); // n-SB
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   527
  SerializeEnum (2,0); // hoppingMode
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   528
  SerializeInteger (0,0,98); // pusch-HoppingOffset
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   529
  SerializeBoolean (false); // enable64QAM
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   530
  SerializeSequence (std::bitset<0> (0),false); // UL-ReferenceSignalsPUSCH
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   531
  SerializeBoolean (false); // groupHoppingEnabled
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   532
  SerializeInteger (0,0,29); // groupAssignmentPUSCH
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   533
  SerializeBoolean (false); // sequenceHoppingEnabled
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   534
  SerializeInteger (0,0,7); // cyclicShift
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   535
  // pucch-ConfigCommon 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   536
  SerializeSequence (std::bitset<0> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   537
  SerializeEnum (3,0); // deltaPUCCH-Shift
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   538
  SerializeInteger (0,0,98); // nRB-CQI
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   539
  SerializeInteger (0,0,7); // nCS-AN
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   540
  SerializeInteger (0,0,2047); // n1PUCCH-AN
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   541
  // soundingRS-UL-ConfigCommon 
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   542
  SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   543
  SerializeNull (); // release
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   544
  // uplinkPowerControlCommon 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   545
  SerializeSequence (std::bitset<0> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   546
  SerializeInteger (0,-126,24); // p0-NominalPUSCH
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   547
  SerializeEnum (8,0); // alpha
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   548
  SerializeInteger (-50,-127,-96); // p0-NominalPUCCH
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   549
  SerializeSequence (std::bitset<0> (0),false); // deltaFList-PUCCH
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   550
  SerializeEnum (3,0); // deltaF-PUCCH-Format1
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   551
  SerializeEnum (3,0); // deltaF-PUCCH-Format1b
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   552
  SerializeEnum (4,0); // deltaF-PUCCH-Format2
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   553
  SerializeEnum (3,0); // deltaF-PUCCH-Format2a
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   554
  SerializeEnum (3,0); // deltaF-PUCCH-Format2b
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   555
  SerializeInteger (0,-1,6);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   556
  // ul-CyclicPrefixLength 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   557
  SerializeEnum (2,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   558
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   559
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   560
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
   561
RrcAsn1Header::SerializeSystemInformationBlockType2 (LteRrcSap::SystemInformationBlockType2 systemInformationBlockType2) const
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   562
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   563
  SerializeSequence (std::bitset<2> (0),true);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   564
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
   565
  // RadioResourceConfigCommonSib
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
   566
  SerializeRadioResourceConfigCommonSib (systemInformationBlockType2.radioResourceConfigCommon);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   567
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   568
  // ue-TimersAndConstants
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   569
  SerializeSequence (std::bitset<0> (0),true);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   570
  SerializeEnum (8,0); // t300
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   571
  SerializeEnum (8,0); // t301
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   572
  SerializeEnum (7,0); // t310
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   573
  SerializeEnum (8,0); // n310
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   574
  SerializeEnum (7,0); // t311
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   575
  SerializeEnum (8,0); // n311
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   576
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   577
  // freqInfo
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
   578
  SerializeSequence (std::bitset<2> (3),false);
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
   579
  SerializeInteger ((int) systemInformationBlockType2.freqInfo.ulCarrierFreq, 0, MAX_EARFCN);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   580
  switch (systemInformationBlockType2.freqInfo.ulBandwidth)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   581
    {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   582
    case 6:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   583
      SerializeEnum (6,0);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   584
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   585
    case 15:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   586
      SerializeEnum (6,1);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   587
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   588
    case 25:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   589
      SerializeEnum (6,2);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   590
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   591
    case 50:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   592
      SerializeEnum (6,3);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   593
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   594
    case 75:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   595
      SerializeEnum (6,4);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   596
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   597
    case 100:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   598
      SerializeEnum (6,5);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   599
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   600
    default:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   601
      SerializeEnum (6,0);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   602
    }
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
   603
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   604
  SerializeInteger (29,1,32); // additionalSpectrumEmission
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   605
  // timeAlignmentTimerCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   606
  SerializeEnum (8,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   607
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   608
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   609
void
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   610
RrcAsn1Header::SerializeMeasResults (LteRrcSap::MeasResults measResults) const
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   611
{
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   612
  // Watchdog: if list has 0 elements, set boolean to false
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   613
  if (measResults.measResultListEutra.empty ())
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   614
    {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   615
      measResults.haveMeasResultNeighCells = false;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   616
    }
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   617
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   618
  // Serialize MeasResults sequence, 1 optional value, extension marker present
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   619
  SerializeSequence (std::bitset<1> (measResults.haveMeasResultNeighCells),true);
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   620
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   621
  // Serialize measId
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   622
  SerializeInteger (measResults.measId,1,MAX_MEAS_ID);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   623
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   624
  // Serialize measResultServCell sequence
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   625
  SerializeSequence (std::bitset<0> (0),false);
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   626
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   627
  // Serialize rsrpResult
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   628
  SerializeInteger (measResults.rsrpResult,0,97);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   629
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   630
  // Serialize rsrqResult
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   631
  SerializeInteger (measResults.rsrqResult,0,34);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   632
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   633
  if (measResults.haveMeasResultNeighCells)
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   634
    {
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   635
      // Serialize Choice = 0 (MeasResultListEUTRA)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   636
      SerializeChoice (4,0,false);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   637
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   638
      // Serialize measResultNeighCells
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   639
      SerializeSequenceOf (measResults.measResultListEutra.size (),MAX_CELL_REPORT,1);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   640
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   641
      // serialize MeasResultEutra elements in the list
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   642
      std::list<LteRrcSap::MeasResultEutra>::iterator it;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   643
      for (it = measResults.measResultListEutra.begin (); it != measResults.measResultListEutra.end (); it++)
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   644
        {
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   645
          SerializeSequence (std::bitset<1> (it->haveCgiInfo),false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   646
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   647
          // Serialize PhysCellId
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   648
          SerializeInteger (it->physCellId, 0, 503);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   649
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   650
          // Serialize CgiInfo
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   651
          if (it->haveCgiInfo)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   652
            {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   653
              SerializeSequence (std::bitset<1> (it->cgiInfo.plmnIdentityList.size ()),false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   654
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   655
              // Serialize cellGlobalId
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   656
              SerializeSequence (std::bitset<0> (0),false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   657
              SerializePlmnIdentity (it->cgiInfo.plmnIdentity);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   658
              SerializeBitstring (std::bitset<28> (it->cgiInfo.cellIdentity));
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   659
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   660
              // Serialize trackingAreaCode
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   661
              SerializeBitstring (std::bitset<16> (it->cgiInfo.trackingAreaCode));
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   662
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   663
              // Serialize plmn-IdentityList
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   664
              if (!it->cgiInfo.plmnIdentityList.empty ())
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   665
                {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   666
                  SerializeSequenceOf (it->cgiInfo.plmnIdentityList.size (),5,1);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   667
                  std::list<uint32_t>::iterator it2;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   668
                  for (it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   669
                    {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   670
                      SerializePlmnIdentity (*it2);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   671
                    }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   672
                }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   673
            }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   674
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   675
          // Serialize measResult
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   676
          std::bitset<2> measResultFieldsPresent;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   677
          measResultFieldsPresent[1] = it->haveRsrpResult;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   678
          measResultFieldsPresent[0] = it->haveRsrqResult;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   679
          SerializeSequence (measResultFieldsPresent,true);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   680
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   681
          if (it->haveRsrpResult)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   682
            {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   683
              SerializeInteger (it->rsrpResult,0,97);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   684
            }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   685
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   686
          if (it->haveRsrqResult)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   687
            {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   688
              SerializeInteger (it->rsrqResult,0,34);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   689
            }
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   690
        }
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   691
    }
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   692
}
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   693
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   694
void
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   695
RrcAsn1Header::SerializePlmnIdentity (uint32_t plmnId) const
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   696
{
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   697
  // plmn-Identity sequence, mcc is optional, no extension marker
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   698
  SerializeSequence (std::bitset<1> (0), false);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   699
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   700
  // Serialize mnc
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   701
  int nDig = (plmnId > 99) ? 3 : 2;
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   702
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   703
  SerializeSequenceOf (nDig,3,2);
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   704
  for (int i = nDig - 1; i >= 0; i--)
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   705
    {
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   706
      int n = floor (plmnId / pow (10,i));
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   707
      SerializeInteger (n,0,9);
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   708
      plmnId -= n * pow (10,i);
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   709
    }
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   710
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   711
  // cellReservedForOperatorUse 
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   712
  SerializeEnum (2,0);
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   713
}
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
   714
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   715
void 
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   716
RrcAsn1Header::SerializeRachConfigCommon (LteRrcSap::RachConfigCommon rachConfigCommon) const
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   717
{
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   718
  // rach-ConfigCommon
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   719
  SerializeSequence (std::bitset<0> (0),true);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   720
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   721
  // preambleInfo
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   722
  SerializeSequence (std::bitset<1> (0),false);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   723
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   724
  // numberOfRA-Preambles
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   725
  switch (rachConfigCommon.preambleInfo.numberOfRaPreambles)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   726
    {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   727
    case 4:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   728
      SerializeEnum (16,0);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   729
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   730
    case 8:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   731
      SerializeEnum (16,1);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   732
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   733
    case 12:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   734
      SerializeEnum (16,2);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   735
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   736
    case 16:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   737
      SerializeEnum (16,3);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   738
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   739
    case 20:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   740
      SerializeEnum (16,4);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   741
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   742
    case 24:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   743
      SerializeEnum (16,5);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   744
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   745
    case 28:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   746
      SerializeEnum (16,6);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   747
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   748
    case 32:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   749
      SerializeEnum (16,7);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   750
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   751
    case 36:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   752
      SerializeEnum (16,8);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   753
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   754
    case 40:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   755
      SerializeEnum (16,9);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   756
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   757
    case 44:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   758
      SerializeEnum (16,10);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   759
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   760
    case 48:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   761
      SerializeEnum (16,11);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   762
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   763
    case 52:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   764
      SerializeEnum (16,12);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   765
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   766
    case 56:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   767
      SerializeEnum (16,13);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   768
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   769
    case 60:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   770
      SerializeEnum (16,14);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   771
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   772
    case 64:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   773
      SerializeEnum (16,15);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   774
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   775
    default:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   776
      SerializeEnum (16,0);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   777
    }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   778
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   779
  SerializeSequence (std::bitset<0> (0),false); // powerRampingParameters
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   780
  SerializeEnum (4,0); // powerRampingStep
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   781
  SerializeEnum (16,0); // preambleInitialReceivedTargetPower
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   782
  SerializeSequence (std::bitset<0> (0),false); // ra-SupervisionInfo
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   783
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   784
  // preambleTransMax
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   785
  switch (rachConfigCommon.raSupervisionInfo.preambleTransMax)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   786
    {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   787
    case 3:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   788
      SerializeEnum (11,0);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   789
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   790
    case 4:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   791
      SerializeEnum (11,1);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   792
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   793
    case 5:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   794
      SerializeEnum (11,2);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   795
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   796
    case 6:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   797
      SerializeEnum (11,3);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   798
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   799
    case 7:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   800
      SerializeEnum (11,4);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   801
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   802
    case 8:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   803
      SerializeEnum (11,5);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   804
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   805
    case 10:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   806
      SerializeEnum (11,6);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   807
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   808
    case 20:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   809
      SerializeEnum (11,7);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   810
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   811
    case 50:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   812
      SerializeEnum (11,8);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   813
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   814
    case 100:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   815
      SerializeEnum (11,9);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   816
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   817
    case 200:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   818
      SerializeEnum (11,10);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   819
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   820
    default:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   821
      SerializeEnum (11,0);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   822
    }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   823
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   824
  // ra-ResponseWindowSize
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   825
  switch (rachConfigCommon.raSupervisionInfo.raResponseWindowSize)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   826
    {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   827
    case 2:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   828
      SerializeEnum (8,0);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   829
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   830
    case 3:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   831
      SerializeEnum (8,1);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   832
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   833
    case 4:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   834
      SerializeEnum (8,2);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   835
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   836
    case 5:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   837
      SerializeEnum (8,3);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   838
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   839
    case 6:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   840
      SerializeEnum (8,4);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   841
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   842
    case 7:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   843
      SerializeEnum (8,5);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   844
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   845
    case 8:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   846
      SerializeEnum (8,6);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   847
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   848
    case 10:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   849
      SerializeEnum (8,7);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   850
      break;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   851
    default:
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   852
      SerializeEnum (8,0);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   853
    }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   854
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   855
  SerializeEnum (8,0); // mac-ContentionResolutionTimer
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   856
  SerializeInteger (1,1,8); // maxHARQ-Msg3Tx
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   857
}
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
   858
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   859
Buffer::Iterator
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   860
RrcAsn1Header::DeserializeRadioResourceConfigDedicated (LteRrcSap::RadioResourceConfigDedicated *radioResourceConfigDedicated, Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   861
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   862
  // Deserialize RadioResourceConfigDedicated sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   863
  std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   864
  bIterator = DeserializeSequence (&optionalFieldsPresent,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   865
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   866
  if (optionalFieldsPresent[5])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   867
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   868
      // Deserialize srb-ToAddModList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   869
      bIterator = DeserializeSrbToAddModList (&(radioResourceConfigDedicated->srbToAddModList),bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   870
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   871
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   872
  if (optionalFieldsPresent[4])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   873
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   874
      // Deserialize drb-ToAddModList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   875
      bIterator = DeserializeDrbToAddModList (&(radioResourceConfigDedicated->drbToAddModList),bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   876
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   877
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   878
  if (optionalFieldsPresent[3])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   879
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   880
      // Deserialize drb-ToReleaseList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   881
      int n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   882
      int val;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   883
      bIterator = DeserializeSequenceOf (&n,MAX_DRB,1,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   884
      for (int i = 0; i < n; i++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   885
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   886
          bIterator = DeserializeInteger (&val,1,32,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   887
          radioResourceConfigDedicated->drbToReleaseList.push_back (val);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   888
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   889
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   890
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   891
  if (optionalFieldsPresent[2])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   892
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   893
      // Deserialize mac-MainConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   894
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   895
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   896
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   897
  if (optionalFieldsPresent[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   898
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   899
      // Deserialize sps-Config
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   900
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   901
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   902
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   903
  radioResourceConfigDedicated->havePhysicalConfigDedicated = optionalFieldsPresent[0];
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   904
  if (optionalFieldsPresent[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   905
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   906
      // Deserialize physicalConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   907
      bIterator = DeserializePhysicalConfigDedicated (&radioResourceConfigDedicated->physicalConfigDedicated,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   908
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   909
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   910
  return bIterator;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   911
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   912
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   913
Buffer::Iterator
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   914
RrcAsn1Header::DeserializeSrbToAddModList (std::list<LteRrcSap::SrbToAddMod> *srbToAddModList, Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   915
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   916
  int numElems;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   917
  bIterator = DeserializeSequenceOf (&numElems,2,1,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   918
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   919
  srbToAddModList->clear ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   920
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   921
  // Deserialize SRB-ToAddMod elements
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   922
  for (int i = 0; i < numElems; i++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   923
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   924
      LteRrcSap::SrbToAddMod srbToAddMod;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   925
      // Deserialize SRB-ToAddMod sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   926
      // 2 optional fields, extension marker present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   927
      std::bitset<2> optionalFields;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   928
      bIterator = DeserializeSequence (&optionalFields,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   929
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   930
      // Deserialize srbIdentity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   931
      int n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   932
      bIterator = DeserializeInteger (&n,1,2,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   933
      srbToAddMod.srbIdentity = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   934
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   935
      if (optionalFields[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   936
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   937
          // Deserialize rlcConfig choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   938
          // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   939
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   940
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   941
      if (optionalFields[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   942
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   943
          // Deserialize logicalChannelConfig choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   944
          int sel;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
   945
          bIterator = DeserializeChoice (2,false,&sel,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   946
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   947
          // Deserialize logicalChannelConfig defaultValue
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   948
          if (sel == 1)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   949
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   950
              bIterator = DeserializeNull (bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   951
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   952
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   953
          // Deserialize logicalChannelConfig explicitValue
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   954
          else if (sel == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   955
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   956
              bIterator = DeserializeLogicalChannelConfig (&srbToAddMod.logicalChannelConfig,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   957
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   958
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   959
      srbToAddModList->insert (srbToAddModList->end (),srbToAddMod);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   960
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   961
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   962
  return bIterator;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   963
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   964
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   965
Buffer::Iterator
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   966
RrcAsn1Header::DeserializeDrbToAddModList (std::list<LteRrcSap::DrbToAddMod> *drbToAddModList, Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   967
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   968
  int n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   969
  int val;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   970
  bIterator = DeserializeSequenceOf (&n,MAX_DRB,1,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   971
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   972
  drbToAddModList->clear ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   973
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   974
  for (int i = 0; i < n; i++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   975
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   976
      LteRrcSap::DrbToAddMod drbToAddMod;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   977
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   978
      std::bitset<5> optionalFields;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   979
      bIterator = DeserializeSequence (&optionalFields,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   980
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   981
      if (optionalFields[4])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   982
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   983
          // Deserialize epsBearerIdentity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   984
          bIterator = DeserializeInteger (&val,0,15,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   985
          drbToAddMod.epsBearerIdentity = val;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   986
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   987
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   988
      bIterator = DeserializeInteger (&val,1,32,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   989
      drbToAddMod.drbIdentity = val;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   990
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   991
      if (optionalFields[3])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   992
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   993
          // Deserialize pdcp-Config
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   994
          // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   995
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   996
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   997
      if (optionalFields[2])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   998
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
   999
          // Deserialize RLC-Config
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1000
          int chosen;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1001
          bIterator = DeserializeChoice (4,true,&chosen,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1002
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1003
          int sel;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1004
          std::bitset<0> bitset0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1005
          switch (chosen)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1006
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1007
            case 0:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1008
              drbToAddMod.rlcConfig.choice = LteRrcSap::RlcConfig::AM;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1009
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1010
              // Deserialize UL-AM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1011
              bIterator = DeserializeSequence (&bitset0,false, bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1012
              bIterator = DeserializeEnum (64,&sel, bIterator); // t-PollRetransmit
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1013
              bIterator = DeserializeEnum (8,&sel, bIterator); // pollPDU
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1014
              bIterator = DeserializeEnum (16,&sel, bIterator); // pollByte
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1015
              bIterator = DeserializeEnum (8,&sel, bIterator); // maxRetxThreshold
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1016
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1017
              // Deserialize DL-AM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1018
              bIterator = DeserializeSequence (&bitset0,false, bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1019
              bIterator = DeserializeEnum (32,&sel, bIterator); // t-Reordering
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1020
              bIterator = DeserializeEnum (64,&sel, bIterator); // t-StatusProhibit
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1021
              break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1022
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1023
            case 1:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1024
              drbToAddMod.rlcConfig.choice = LteRrcSap::RlcConfig::UM_BI_DIRECTIONAL;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1025
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1026
              // Deserialize UL-UM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1027
              bIterator = DeserializeSequence (&bitset0,false, bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1028
              bIterator = DeserializeEnum (2,&sel, bIterator); // sn-FieldLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1029
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1030
              // Deserialize DL-UM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1031
              bIterator = DeserializeSequence (&bitset0,false, bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1032
              bIterator = DeserializeEnum (2,&sel, bIterator); // sn-FieldLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1033
              bIterator = DeserializeEnum (32,&sel, bIterator); // t-Reordering
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1034
              break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1035
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1036
            case 2:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1037
              drbToAddMod.rlcConfig.choice = LteRrcSap::RlcConfig::UM_UNI_DIRECTIONAL_UL;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1038
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1039
              // Deserialize UL-UM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1040
              bIterator = DeserializeSequence (&bitset0,false, bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1041
              bIterator = DeserializeEnum (2,&sel, bIterator); // sn-FieldLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1042
              break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1043
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1044
            case 3:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1045
              drbToAddMod.rlcConfig.choice = LteRrcSap::RlcConfig::UM_UNI_DIRECTIONAL_DL;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1046
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1047
              // Deserialize DL-UM-RLC
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1048
              bIterator = DeserializeSequence (&bitset0,false, bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1049
              bIterator = DeserializeEnum (2,&sel, bIterator); // sn-FieldLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1050
              bIterator = DeserializeEnum (32,&sel, bIterator); // t-Reordering
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1051
              break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1052
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1053
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1054
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1055
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1056
      if (optionalFields[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1057
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1058
          bIterator = DeserializeInteger (&val,3,10,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1059
          drbToAddMod.logicalChannelIdentity = val;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1060
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1061
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1062
      if (optionalFields[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1063
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1064
          bIterator = DeserializeLogicalChannelConfig (&drbToAddMod.logicalChannelConfig,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1065
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1066
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1067
      drbToAddModList->insert (drbToAddModList->end (),drbToAddMod);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1068
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1069
  return bIterator;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1070
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1071
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1072
Buffer::Iterator
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1073
RrcAsn1Header::DeserializeLogicalChannelConfig (LteRrcSap::LogicalChannelConfig *logicalChannelConfig, Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1074
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1075
  int n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1076
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1077
  // Deserialize LogicalChannelConfig sequence
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1078
  // 1 optional field, extension marker is present.
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1079
  std::bitset<1> bitset1;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1080
  bIterator = DeserializeSequence (&bitset1,true,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1081
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1082
  if (bitset1[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1083
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1084
      // Deserialize ul-SpecificParameters sequence
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1085
      bIterator = DeserializeSequence (&bitset1,false,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1086
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1087
      // Deserialize priority
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1088
      bIterator = DeserializeInteger (&n,1,16,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1089
      logicalChannelConfig->priority = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1090
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1091
      // Deserialize prioritisedBitRate
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1092
      bIterator = DeserializeEnum (16,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1093
      uint16_t prioritizedBitRateKbps;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1094
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1095
      switch (n)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1096
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1097
        case 0:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1098
          prioritizedBitRateKbps = 0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1099
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1100
        case 1:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1101
          prioritizedBitRateKbps = 8;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1102
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1103
        case 2:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1104
          prioritizedBitRateKbps = 16;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1105
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1106
        case 3:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1107
          prioritizedBitRateKbps = 32;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1108
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1109
        case 4:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1110
          prioritizedBitRateKbps = 64;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1111
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1112
        case 5:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1113
          prioritizedBitRateKbps = 128;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1114
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1115
        case 6:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1116
          prioritizedBitRateKbps = 256;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1117
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1118
        case 7:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1119
          prioritizedBitRateKbps = 10000;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1120
          break;
9618
0ea7f5ea874a Fix rrc header code for optimized build
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9607
diff changeset
  1121
        default:
0ea7f5ea874a Fix rrc header code for optimized build
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9607
diff changeset
  1122
          prioritizedBitRateKbps = 10000;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1123
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1124
      logicalChannelConfig->prioritizedBitRateKbps = prioritizedBitRateKbps;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1125
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1126
      // Deserialize bucketSizeDuration
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1127
      bIterator = DeserializeEnum (8,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1128
      uint16_t bucketSizeDurationMs;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1129
      switch (n)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1130
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1131
        case 0:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1132
          bucketSizeDurationMs = 50;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1133
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1134
        case 1:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1135
          bucketSizeDurationMs = 100;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1136
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1137
        case 2:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1138
          bucketSizeDurationMs = 150;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1139
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1140
        case 3:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1141
          bucketSizeDurationMs = 300;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1142
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1143
        case 4:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1144
          bucketSizeDurationMs = 500;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1145
          break;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1146
        case 5:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1147
          bucketSizeDurationMs = 1000;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1148
          break;
9618
0ea7f5ea874a Fix rrc header code for optimized build
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9607
diff changeset
  1149
        default:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1150
          bucketSizeDurationMs = 1000;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1151
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1152
      logicalChannelConfig->bucketSizeDurationMs = bucketSizeDurationMs;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1153
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1154
      if (bitset1[0])
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1155
      {
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1156
        // Deserialize logicalChannelGroup
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1157
        bIterator = DeserializeInteger (&n,0,3,bIterator);
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1158
        logicalChannelConfig->logicalChannelGroup = n;
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1159
      }
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1160
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1161
  return bIterator;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1162
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1163
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1164
Buffer::Iterator
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1165
RrcAsn1Header::DeserializePhysicalConfigDedicated (LteRrcSap::PhysicalConfigDedicated *physicalConfigDedicated, Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1166
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1167
  std::bitset<10> optionalFieldPresent;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1168
  bIterator = DeserializeSequence (&optionalFieldPresent,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1169
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1170
  if (optionalFieldPresent[9])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1171
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1172
      // Deserialize pdsch-ConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1173
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1174
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1175
  if (optionalFieldPresent[8])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1176
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1177
      // Deserialize pucch-ConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1178
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1179
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1180
  if (optionalFieldPresent[7])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1181
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1182
      // Deserialize pusch-ConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1183
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1184
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1185
  if (optionalFieldPresent[6])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1186
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1187
      // Deserialize uplinkPowerControlDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1188
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1189
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1190
  if (optionalFieldPresent[5])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1191
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1192
      // Deserialize tpc-PDCCH-ConfigPUCCH
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1193
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1194
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1195
  if (optionalFieldPresent[4])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1196
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1197
      // Deserialize tpc-PDCCH-ConfigPUSCH
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1198
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1199
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1200
  if (optionalFieldPresent[3])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1201
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1202
      // Deserialize cqi-ReportConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1203
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1204
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1205
  physicalConfigDedicated->haveSoundingRsUlConfigDedicated = optionalFieldPresent[2];
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1206
  if (optionalFieldPresent[2])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1207
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1208
      // Deserialize soundingRS-UL-ConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1209
      int sel;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1210
      bIterator = DeserializeChoice (2,false,&sel,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1211
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1212
      if (sel == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1213
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1214
          physicalConfigDedicated->soundingRsUlConfigDedicated.type = LteRrcSap::SoundingRsUlConfigDedicated::RESET;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1215
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1216
          bIterator = DeserializeNull (bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1217
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1218
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1219
      else if (sel == 1)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1220
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1221
          physicalConfigDedicated->soundingRsUlConfigDedicated.type = LteRrcSap::SoundingRsUlConfigDedicated::SETUP;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1222
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1223
          std::bitset<0> bitset0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1224
          bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1225
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1226
          int slct;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1227
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1228
          // Deserialize srs-Bandwidth
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1229
          bIterator = DeserializeEnum (4,&slct,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1230
          physicalConfigDedicated->soundingRsUlConfigDedicated.srsBandwidth = slct;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1231
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1232
          // Deserialize srs-HoppingBandwidth
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1233
          bIterator = DeserializeEnum (4,&slct,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1234
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1235
          // Deserialize freqDomainPosition
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1236
          bIterator = DeserializeInteger (&slct,0,23,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1237
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1238
          // Deserialize duration
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1239
          bool duration;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1240
          bIterator = DeserializeBoolean (&duration,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1241
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1242
          // Deserialize srs-ConfigIndex
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1243
          bIterator = DeserializeInteger (&slct,0,1023,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1244
          physicalConfigDedicated->soundingRsUlConfigDedicated.srsConfigIndex = slct;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1245
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1246
          // Deserialize transmissionComb
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1247
          bIterator = DeserializeInteger (&slct,0,1,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1248
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1249
          // Deserialize cyclicShift
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1250
          bIterator = DeserializeEnum (8,&slct,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1251
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1252
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1253
  physicalConfigDedicated->haveAntennaInfoDedicated = optionalFieldPresent[1];
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1254
  if (optionalFieldPresent[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1255
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1256
      // Deserialize antennaInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1257
      int sel;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1258
      bIterator = DeserializeChoice (2,false,&sel,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1259
      if (sel == 1)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1260
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1261
          bIterator = DeserializeNull (bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1262
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1263
      else if (sel == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1264
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1265
          std::bitset<1> codebookSubsetRestrictionPresent;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1266
          bIterator = DeserializeSequence (&codebookSubsetRestrictionPresent,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1267
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1268
          int txmode;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1269
          bIterator = DeserializeEnum (8,&txmode,bIterator);
9651
0c8f2173327d Assume the value in the struct antennaInfo.transmissionMode is the enum index.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9650
diff changeset
  1270
          physicalConfigDedicated->antennaInfo.transmissionMode = txmode;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1271
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1272
          if (codebookSubsetRestrictionPresent[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1273
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1274
              // Deserialize codebookSubsetRestriction
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1275
              // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1276
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1277
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1278
          int txantennaselchosen;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1279
          bIterator = DeserializeChoice (2,false,&txantennaselchosen,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1280
          if (txantennaselchosen == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1281
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1282
              // Deserialize ue-TransmitAntennaSelection release
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1283
              bIterator = DeserializeNull (bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1284
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1285
          else if (txantennaselchosen == 1)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1286
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1287
              // Deserialize ue-TransmitAntennaSelection setup
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1288
              // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1289
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1290
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1291
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1292
  if (optionalFieldPresent[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1293
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1294
      // Deserialize schedulingRequestConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1295
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1296
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1297
  return bIterator;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1298
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1299
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1300
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1301
RrcAsn1Header::Print (std::ostream &os, LteRrcSap::RadioResourceConfigDedicated radioResourceConfigDedicated) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1302
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1303
  os << "   srbToAddModList: " << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1304
  std::list<LteRrcSap::SrbToAddMod>::iterator it = radioResourceConfigDedicated.srbToAddModList.begin ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1305
  for (; it != radioResourceConfigDedicated.srbToAddModList.end (); it++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1306
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1307
      os << "      srbIdentity: " << (int)it->srbIdentity << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1308
      os << "      logicalChannelConfig: " << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1309
      os << "         priority: " <<  (int)it->logicalChannelConfig.priority << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1310
      os << "         prioritizedBitRateKbps: " <<  (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1311
      os << "         bucketSizeDurationMs: " <<  (int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1312
      os << "         logicalChannelGroup: " <<  (int)it->logicalChannelConfig.logicalChannelGroup << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1313
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1314
  os << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1315
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1316
  os << "   drbToAddModList: " << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1317
  std::list<LteRrcSap::DrbToAddMod>::iterator it2 = radioResourceConfigDedicated.drbToAddModList.begin ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1318
  for (; it2 != radioResourceConfigDedicated.drbToAddModList.end (); it2++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1319
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1320
      os << "      epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1321
      os << "      drbIdentity: " << (int)it2->drbIdentity << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1322
      os << "      rlcConfig: " << it2->rlcConfig.choice << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1323
      os << "      logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1324
      os << "      logicalChannelConfig: " << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1325
      os << "         priority: " <<  (int)it2->logicalChannelConfig.priority << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1326
      os << "         prioritizedBitRateKbps: " <<  (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1327
      os << "         bucketSizeDurationMs: " <<  (int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1328
      os << "         logicalChannelGroup: " <<  (int)it2->logicalChannelConfig.logicalChannelGroup << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1329
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1330
  os << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1331
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1332
  os << "   drbToReleaseList: ";
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1333
  std::list<uint8_t>::iterator it3 = radioResourceConfigDedicated.drbToReleaseList.begin ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1334
  for (; it3 != radioResourceConfigDedicated.drbToReleaseList.end (); it3++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1335
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1336
      os << (int)*it3 << ", ";
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1337
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1338
  os << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1339
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1340
  os << "   havePhysicalConfigDedicated: " << radioResourceConfigDedicated.havePhysicalConfigDedicated << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1341
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1342
  if (radioResourceConfigDedicated.havePhysicalConfigDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1343
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1344
      os << "   physicalConfigDedicated: " << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1345
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1346
      os << "      haveSoundingRsUlConfigDedicated: " << radioResourceConfigDedicated.physicalConfigDedicated.haveSoundingRsUlConfigDedicated << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1347
      if (radioResourceConfigDedicated.physicalConfigDedicated.haveSoundingRsUlConfigDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1348
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1349
          os << "      soundingRsUlConfigDedicated: " << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1350
          os << "         type: " << radioResourceConfigDedicated.physicalConfigDedicated.soundingRsUlConfigDedicated.type << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1351
          os << "         srsBandwidth: " << (int)radioResourceConfigDedicated.physicalConfigDedicated.soundingRsUlConfigDedicated.srsBandwidth << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1352
          os << "         srsConfigIndex: " << (int)radioResourceConfigDedicated.physicalConfigDedicated.soundingRsUlConfigDedicated.srsConfigIndex << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1353
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1354
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1355
      os << "      haveAntennaInfoDedicated: " << radioResourceConfigDedicated.physicalConfigDedicated.haveAntennaInfoDedicated << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1356
      if (radioResourceConfigDedicated.physicalConfigDedicated.haveAntennaInfoDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1357
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1358
          os << "      antennaInfo Tx mode: " << (int)radioResourceConfigDedicated.physicalConfigDedicated.antennaInfo.transmissionMode << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1359
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1360
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1361
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1362
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1363
Buffer::Iterator
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1364
RrcAsn1Header::DeserializeSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 *systemInformationBlockType1, Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1365
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1366
  std::bitset<0> bitset0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1367
  int n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1368
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1369
  std::bitset<3> sysInfoBlkT1Opts;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1370
  bIterator = DeserializeSequence (&sysInfoBlkT1Opts,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1371
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1372
  // Deserialize cellAccessRelatedInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1373
  std::bitset<1> cellAccessRelatedInfoOpts;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1374
  bIterator = DeserializeSequence (&cellAccessRelatedInfoOpts,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1375
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1376
  // Deserialize plmn-IdentityList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1377
  int numPlmnIdentityInfoElements;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1378
  bIterator = DeserializeSequenceOf (&numPlmnIdentityInfoElements,6,1,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1379
  for (int i = 0; i < numPlmnIdentityInfoElements; i++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1380
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1381
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1382
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1383
      // plmn-Identity
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1384
      bIterator = DeserializePlmnIdentity (&systemInformationBlockType1->cellAccessRelatedInfo.plmnIdentityInfo.plmnIdentity,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1385
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1386
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1387
  // Deserialize trackingAreaCode
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1388
  std::bitset<16> trackingAreaCode;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1389
  bIterator = DeserializeBitstring (&trackingAreaCode,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1390
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1391
  // Deserialize cellIdentity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1392
  std::bitset<28> cellIdentity;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1393
  bIterator = DeserializeBitstring (&cellIdentity,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1394
  systemInformationBlockType1->cellAccessRelatedInfo.cellIdentity = cellIdentity.to_ulong ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1395
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1396
  // Deserialize cellBarred
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1397
  bIterator = DeserializeEnum (2,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1398
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1399
  // Deserialize intraFreqReselection
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1400
  bIterator = DeserializeEnum (2,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1401
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1402
  // Deserialize csg-Indication
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1403
  bIterator = DeserializeBoolean (&systemInformationBlockType1->cellAccessRelatedInfo.csgIndication,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1404
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1405
  if (cellAccessRelatedInfoOpts[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1406
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1407
      // Deserialize csg-Identity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1408
      std::bitset<27> csgIdentity;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1409
      bIterator = DeserializeBitstring (&csgIdentity,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1410
      systemInformationBlockType1->cellAccessRelatedInfo.csgIdentity = csgIdentity.to_ulong ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1411
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1412
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1413
  // Deserialize cellSelectionInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1414
  std::bitset<1> qRxLevMinOffsetPresent;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1415
  bIterator = DeserializeSequence (&qRxLevMinOffsetPresent,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1416
  bIterator = DeserializeInteger (&n,-70,-22,bIterator); //q-RxLevMin
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1417
  if (qRxLevMinOffsetPresent[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1418
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1419
      // Deserialize qRxLevMinOffset
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1420
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1421
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1422
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1423
  if (sysInfoBlkT1Opts[2])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1424
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1425
      // Deserialize p-Max
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1426
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1427
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1428
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1429
  // freqBandIndicator
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1430
  bIterator = DeserializeInteger (&n,1,64,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1431
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1432
  // schedulingInfoList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1433
  int numSchedulingInfo;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1434
  bIterator = DeserializeSequenceOf (&numSchedulingInfo,MAX_SI_MESSAGE,1,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1435
  for (int i = 0; i < numSchedulingInfo; i++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1436
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1437
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1438
      bIterator = DeserializeEnum (7,&n,bIterator); // si-Periodicity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1439
      int numSibType;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1440
      bIterator = DeserializeSequenceOf (&numSibType,MAX_SIB - 1,0, bIterator); // sib-MappingInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1441
      for (int j = 0; j < numSibType; j++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1442
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1443
          bIterator = DeserializeEnum (16,&n,bIterator); // SIB-Type
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1444
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1445
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1446
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1447
  if (sysInfoBlkT1Opts[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1448
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1449
      // tdd-Config
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1450
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1451
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1452
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1453
  // si-WindowLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1454
  bIterator = DeserializeEnum (7,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1455
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1456
  // systemInfoValueTag
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1457
  bIterator = DeserializeInteger (&n,0,31,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1458
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1459
  if (sysInfoBlkT1Opts[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1460
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1461
      // Deserialize nonCriticalExtension
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1462
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1463
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1464
  return bIterator;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1465
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1466
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1467
Buffer::Iterator
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1468
RrcAsn1Header::DeserializeSystemInformationBlockType2 (LteRrcSap::SystemInformationBlockType2 *systemInformationBlockType2, Buffer::Iterator bIterator)
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1469
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1470
  std::bitset<0> bitset0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1471
  int n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1472
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1473
  std::bitset<2> sysInfoBlkT2Opts;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1474
  bIterator = DeserializeSequence (&sysInfoBlkT2Opts,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1475
  if (sysInfoBlkT2Opts[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1476
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1477
      // Deserialize ac-BarringInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1478
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1479
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1480
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1481
  // Deserialize radioResourceConfigCommon
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1482
  bIterator = DeserializeRadioResourceConfigCommonSib (&systemInformationBlockType2->radioResourceConfigCommon, bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1483
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1484
  // Deserialize ue-TimersAndConstants
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1485
  bIterator = DeserializeSequence (&bitset0,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1486
  bIterator = DeserializeEnum (8,&n,bIterator); // t300
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1487
  bIterator = DeserializeEnum (8,&n,bIterator); // t301
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1488
  bIterator = DeserializeEnum (7,&n,bIterator); // t310
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1489
  bIterator = DeserializeEnum (8,&n,bIterator); // n310
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1490
  bIterator = DeserializeEnum (7,&n,bIterator); // t311
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1491
  bIterator = DeserializeEnum (8,&n,bIterator); // n311
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1492
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1493
  // Deserialize freqInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1494
  std::bitset<2> freqInfoOpts;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1495
  bIterator = DeserializeSequence (&freqInfoOpts,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1496
  if (freqInfoOpts[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1497
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1498
      // Deserialize ul-CarrierFreq
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1499
      bIterator = DeserializeInteger (&n, 0, MAX_EARFCN, bIterator);
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1500
      systemInformationBlockType2->freqInfo.ulCarrierFreq = n;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1501
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1502
  if (freqInfoOpts[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1503
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1504
      // Deserialize ul-Bandwidth
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1505
      bIterator = DeserializeEnum (6, &n, bIterator);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1506
      switch (n)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1507
        {
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1508
        case 0:
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1509
          systemInformationBlockType2->freqInfo.ulBandwidth = 6;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1510
          break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1511
        case 1:
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1512
          systemInformationBlockType2->freqInfo.ulBandwidth = 15;
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1513
          break;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1514
        case 2:
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1515
          systemInformationBlockType2->freqInfo.ulBandwidth = 25;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1516
          break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1517
        case 3:
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1518
          systemInformationBlockType2->freqInfo.ulBandwidth = 50;
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1519
          break;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1520
        case 4:
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1521
          systemInformationBlockType2->freqInfo.ulBandwidth = 75;
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1522
          break;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1523
        case 5:
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1524
          systemInformationBlockType2->freqInfo.ulBandwidth = 100;
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1525
          break;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1526
        default:
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1527
          systemInformationBlockType2->freqInfo.ulBandwidth = 6;
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1528
        }
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1529
    }
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1530
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1531
  // additionalSpectrumEmission
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1532
  bIterator = DeserializeInteger (&n,1,32,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1533
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1534
  if (sysInfoBlkT2Opts[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1535
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1536
      // Deserialize mbsfn-SubframeConfigList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1537
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1538
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1539
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1540
  // Deserialize timeAlignmentTimerCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1541
  bIterator = DeserializeEnum (8,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1542
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1543
  return bIterator;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1544
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1545
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1546
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1547
Buffer::Iterator
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1548
RrcAsn1Header::DeserializeRadioResourceConfigCommon (LteRrcSap::RadioResourceConfigCommon * radioResourceConfigCommon, Buffer::Iterator bIterator)
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1549
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1550
  std::bitset<0> bitset0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1551
  int n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1552
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1553
  std::bitset<9> rrCfgCommOptions;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1554
  bIterator = DeserializeSequence (&rrCfgCommOptions,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1555
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1556
  // rach-ConfigCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1557
  if (rrCfgCommOptions[8])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1558
    {
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1559
      bIterator = DeserializeRachConfigCommon (&radioResourceConfigCommon->rachConfigCommon, bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1560
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1561
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1562
  // prach-Config
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1563
  std::bitset<1> prachConfigInfoPresent;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1564
  bIterator = DeserializeSequence (&prachConfigInfoPresent,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1565
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1566
  // prach-Config -> rootSequenceIndex
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1567
  bIterator = DeserializeInteger (&n,0,1023,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1568
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1569
  // prach-Config -> prach-ConfigInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1570
  if (prachConfigInfoPresent[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1571
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1572
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1573
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1574
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1575
  // pdsch-ConfigCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1576
  if (rrCfgCommOptions[7])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1577
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1578
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1579
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1580
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1581
  // pusch-ConfigCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1582
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1583
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1584
  // pusch-ConfigCommon -> pusch-ConfigBasic
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1585
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1586
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1587
  // pusch-ConfigCommon -> pusch-ConfigBasic -> n-SB
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1588
  bIterator = DeserializeInteger (&n,1,4,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1589
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1590
  // pusch-ConfigCommon -> pusch-ConfigBasic -> hoppingMode
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1591
  bIterator = DeserializeEnum (2,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1592
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1593
  // pusch-ConfigCommon -> pusch-ConfigBasic -> pusch-HoppingOffset
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1594
  bIterator = DeserializeInteger (&n,0,98,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1595
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1596
  // pusch-ConfigCommon -> pusch-ConfigBasic -> enable64QAM
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1597
  bool enable64QAM;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1598
  bIterator = DeserializeBoolean (&enable64QAM,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1599
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1600
  // ul-ReferenceSignalsPUSCH
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1601
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1602
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1603
  // groupHoppingEnabled
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1604
  bool dummyBool;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1605
  bIterator = DeserializeBoolean (&dummyBool,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1606
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1607
  // groupAssignmentPUSCH
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1608
  bIterator = DeserializeInteger (&n,0,29,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1609
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1610
  // sequenceHoppingEnabled
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1611
  bIterator = DeserializeBoolean (&dummyBool,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1612
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1613
  // cyclicShift
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1614
  bIterator = DeserializeInteger (&n,0,7,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1615
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1616
  // phich-Config
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1617
  if (rrCfgCommOptions[6])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1618
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1619
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1620
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1621
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1622
  // pucch-ConfigCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1623
  if (rrCfgCommOptions[5])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1624
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1625
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1626
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1627
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1628
  // soundingRS-UL-ConfigCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1629
  if (rrCfgCommOptions[4])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1630
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1631
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1632
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1633
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1634
  // uplinkPowerControlCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1635
  if (rrCfgCommOptions[3])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1636
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1637
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1638
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1639
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1640
  // antennaInfoCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1641
  if (rrCfgCommOptions[2])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1642
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1643
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1644
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1645
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1646
  // p-Max
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1647
  if (rrCfgCommOptions[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1648
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1649
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1650
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1651
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1652
  // tdd-Config
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1653
  if (rrCfgCommOptions[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1654
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1655
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1656
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1657
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1658
  // ul-CyclicPrefixLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1659
  bIterator = DeserializeEnum (2,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1660
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1661
  return bIterator;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1662
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1663
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1664
Buffer::Iterator
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1665
RrcAsn1Header::DeserializeRachConfigCommon (LteRrcSap::RachConfigCommon * rachConfigCommon, Buffer::Iterator bIterator)
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1666
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1667
  std::bitset<0> bitset0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1668
  int n;
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1669
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1670
  bIterator = DeserializeSequence (&bitset0,true,bIterator);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1671
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1672
  // preambleInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1673
  std::bitset<1> preamblesGroupAConfigPresent;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1674
  bIterator = DeserializeSequence (&preamblesGroupAConfigPresent,false,bIterator);
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1675
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1676
  // numberOfRA-Preambles
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1677
  bIterator = DeserializeEnum (16,&n,bIterator);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1678
  switch (n)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1679
    {
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1680
    case 0:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1681
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 4;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1682
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1683
    case 1:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1684
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 8;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1685
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1686
    case 2:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1687
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 12;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1688
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1689
    case 3:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1690
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 16;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1691
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1692
    case 4:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1693
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 20;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1694
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1695
    case 5:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1696
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 24;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1697
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1698
    case 6:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1699
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 28;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1700
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1701
    case 7:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1702
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 32;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1703
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1704
    case 8:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1705
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 36;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1706
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1707
    case 9:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1708
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 40;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1709
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1710
    case 10:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1711
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 44;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1712
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1713
    case 11:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1714
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 48;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1715
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1716
    case 12:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1717
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 52;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1718
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1719
    case 13:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1720
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 56;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1721
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1722
    case 14:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1723
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 60;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1724
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1725
    case 15:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1726
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 64;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1727
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1728
    default:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1729
      rachConfigCommon->preambleInfo.numberOfRaPreambles = 0;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1730
    }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1731
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1732
  rachConfigCommon->preambleInfo.numberOfRaPreambles = n;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1733
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1734
  if (preamblesGroupAConfigPresent[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1735
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1736
      // Deserialize preamblesGroupAConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1737
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1738
    }
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1739
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1740
  // powerRampingParameters
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1741
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1742
  bIterator = DeserializeEnum (4,&n,bIterator); // powerRampingStep
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1743
  bIterator = DeserializeEnum (16,&n,bIterator); // preambleInitialReceivedTargetPower
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1744
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1745
  // ra-SupervisionInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1746
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1747
  bIterator = DeserializeEnum (11,&n,bIterator); // preambleTransMax
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1748
  switch (n)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1749
    {
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1750
    case 0:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1751
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 3;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1752
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1753
    case 1:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1754
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 4;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1755
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1756
    case 2:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1757
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 5;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1758
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1759
    case 3:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1760
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 6;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1761
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1762
    case 4:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1763
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 7;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1764
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1765
    case 5:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1766
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 8;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1767
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1768
    case 6:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1769
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 10;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1770
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1771
    case 7:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1772
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 20;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1773
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1774
    case 8:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1775
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 50;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1776
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1777
    case 9:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1778
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 100;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1779
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1780
    case 10:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1781
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 200;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1782
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1783
    default:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1784
      rachConfigCommon->raSupervisionInfo.preambleTransMax = 0;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1785
    }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1786
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1787
  // ra-ResponseWindowSize
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1788
  bIterator = DeserializeEnum (8,&n,bIterator);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1789
  switch (n)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1790
    {
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1791
    case 0:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1792
      rachConfigCommon->raSupervisionInfo.raResponseWindowSize = 2;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1793
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1794
    case 1:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1795
      rachConfigCommon->raSupervisionInfo.raResponseWindowSize = 3;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1796
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1797
    case 2:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1798
      rachConfigCommon->raSupervisionInfo.raResponseWindowSize = 4;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1799
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1800
    case 3:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1801
      rachConfigCommon->raSupervisionInfo.raResponseWindowSize = 5;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1802
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1803
    case 4:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1804
      rachConfigCommon->raSupervisionInfo.raResponseWindowSize = 6;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1805
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1806
    case 5:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1807
      rachConfigCommon->raSupervisionInfo.raResponseWindowSize = 7;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1808
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1809
    case 6:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1810
      rachConfigCommon->raSupervisionInfo.raResponseWindowSize = 8;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1811
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1812
    case 7:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1813
      rachConfigCommon->raSupervisionInfo.raResponseWindowSize = 10;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1814
      break;
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  1815
    default:
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1816
      rachConfigCommon->raSupervisionInfo.raResponseWindowSize = 0;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1817
    }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1818
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1819
  bIterator = DeserializeEnum (8,&n,bIterator); // mac-ContentionResolutionTimer
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1820
  bIterator = DeserializeInteger (&n,1,8,bIterator); //maxHARQ-Msg3Tx
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1821
  return bIterator;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1822
}
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1823
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1824
Buffer::Iterator
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1825
RrcAsn1Header::DeserializeRadioResourceConfigCommonSib (LteRrcSap::RadioResourceConfigCommonSib * radioResourceConfigCommonSib, Buffer::Iterator bIterator)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1826
{
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1827
  std::bitset<0> bitset0;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1828
  int n;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1829
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1830
  bIterator = DeserializeSequence (&bitset0,true,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1831
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1832
  // rach-ConfigCommon
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1833
  bIterator = DeserializeRachConfigCommon (&radioResourceConfigCommonSib->rachConfigCommon, bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1834
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1835
  // bcch-Config 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1836
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1837
  bIterator = DeserializeEnum (4,&n,bIterator); // modificationPeriodCoeff
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1838
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1839
  // pcch-Config 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1840
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1841
  bIterator = DeserializeEnum (4,&n,bIterator); // defaultPagingCycle
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1842
  bIterator = DeserializeEnum (8,&n,bIterator); // nB
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1843
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1844
  // prach-Config 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1845
  std::bitset<1> prachConfigInfoPresent;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1846
  bIterator = DeserializeSequence (&prachConfigInfoPresent,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1847
  // prach-Config -> rootSequenceIndex
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1848
  bIterator = DeserializeInteger (&n,0,1023,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1849
  // prach-Config -> prach-ConfigInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1850
  if (prachConfigInfoPresent[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1851
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1852
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1853
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1854
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1855
  // pdsch-ConfigCommon 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1856
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1857
  bIterator = DeserializeInteger (&n,-60,50,bIterator); // referenceSignalPower
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1858
  bIterator = DeserializeInteger (&n,0,3,bIterator); // p-b
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1859
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1860
  // pusch-ConfigCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1861
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1862
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1863
  // pusch-ConfigCommon -> pusch-ConfigBasic
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1864
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1865
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1866
  // pusch-ConfigCommon -> pusch-ConfigBasic -> n-SB
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1867
  bIterator = DeserializeInteger (&n,1,4,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1868
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1869
  // pusch-ConfigCommon -> pusch-ConfigBasic -> hoppingMode
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1870
  bIterator = DeserializeEnum (2,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1871
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1872
  // pusch-ConfigCommon -> pusch-ConfigBasic -> pusch-HoppingOffset
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1873
  bIterator = DeserializeInteger (&n,0,98,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1874
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1875
  // pusch-ConfigCommon -> pusch-ConfigBasic -> enable64QAM
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1876
  bool dummyBoolean;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1877
  bIterator = DeserializeBoolean (&dummyBoolean,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1878
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1879
  // ul-ReferenceSignalsPUSCH 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1880
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1881
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1882
  // groupHoppingEnabled 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1883
  bIterator = DeserializeBoolean (&dummyBoolean,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1884
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1885
  // groupAssignmentPUSCH 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1886
  bIterator = DeserializeInteger (&n,0,29,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1887
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1888
  // sequenceHoppingEnabled 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1889
  bIterator = DeserializeBoolean (&dummyBoolean,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1890
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1891
  // cyclicShift 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1892
  bIterator = DeserializeInteger (&n,0,7,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1893
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1894
  // pucch-ConfigCommon 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1895
  bIterator = DeserializeEnum (3,&n,bIterator); // deltaPUCCH-Shift 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1896
  bIterator = DeserializeInteger (&n,0,98,bIterator); // nRB-CQI 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1897
  bIterator = DeserializeInteger (&n,0,7,bIterator); // nCS-AN 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1898
  bIterator = DeserializeInteger (&n,0,2047,bIterator); // n1PUCCH-AN 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1899
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1900
  // soundingRS-UL-ConfigCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1901
  int choice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1902
  bIterator = DeserializeChoice (2,false,&choice,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1903
  if (choice == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1904
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1905
      bIterator = DeserializeNull (bIterator); // release
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1906
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1907
  if (choice == 1)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1908
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1909
      // setup
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1910
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1911
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1912
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1913
  // uplinkPowerControlCommon 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1914
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1915
  bIterator = DeserializeInteger (&n,-126,24,bIterator); // p0-NominalPUSCH
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1916
  bIterator = DeserializeEnum (8,&n,bIterator); // alpha 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1917
  bIterator = DeserializeInteger (&n,-127,-96,bIterator); // p0-NominalPUCCH 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1918
  //deltaFList-PUCCH 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1919
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1920
  bIterator = DeserializeEnum (3,&n,bIterator); // deltaF-PUCCH-Format1 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1921
  bIterator = DeserializeEnum (3,&n,bIterator); // deltaF-PUCCH-Format1b 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1922
  bIterator = DeserializeEnum (4,&n,bIterator); // deltaF-PUCCH-Format2 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1923
  bIterator = DeserializeEnum (3,&n,bIterator); // deltaF-PUCCH-Format2a 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1924
  bIterator = DeserializeEnum (3,&n,bIterator); // deltaF-PUCCH-Format2b
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1925
  bIterator = DeserializeInteger (&n,-1,6,bIterator); // deltaPreambleMsg3 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1926
 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1927
  // ul-CyclicPrefixLength
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1928
  bIterator = DeserializeEnum (2,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1929
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1930
  return bIterator;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  1931
}
9471
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  1932
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  1933
Buffer::Iterator
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  1934
RrcAsn1Header::DeserializeMeasResults (LteRrcSap::MeasResults *measResults, Buffer::Iterator bIterator)
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  1935
{
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1936
  int n;
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1937
  std::bitset<0> b0;
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1938
  std::bitset<1> measResultNeighCellsPresent;
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1939
  bIterator = DeserializeSequence (&measResultNeighCellsPresent,true,bIterator);
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1940
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1941
  // Deserialize measId
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1942
  bIterator = DeserializeInteger (&n, 1, MAX_MEAS_ID, bIterator);
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1943
  measResults->measId = n;
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1944
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1945
  // Deserialize measResultServCell
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1946
  bIterator = DeserializeSequence (&b0,false,bIterator);
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1947
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1948
  // Deserialize rsrpResult
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1949
  bIterator = DeserializeInteger (&n, 0, 97, bIterator);
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1950
  measResults->rsrpResult = n;
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1951
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1952
  // Deserialize rsrqResult
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1953
  bIterator = DeserializeInteger (&n, 0, 34, bIterator);
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1954
  measResults->rsrqResult = n;
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1955
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1956
  measResults->haveMeasResultNeighCells = measResultNeighCellsPresent[0];
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1957
  if ( measResults->haveMeasResultNeighCells)
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1958
    {
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1959
      int measResultNeighCellsChoice;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1960
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1961
      // Deserialize measResultNeighCells
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  1962
      bIterator = DeserializeChoice (4,false,&measResultNeighCellsChoice,bIterator);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1963
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1964
      if (measResultNeighCellsChoice == 0)
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1965
        {
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1966
          // Deserialize measResultListEUTRA
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1967
          int numElems;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1968
          bIterator = DeserializeSequenceOf (&numElems,MAX_CELL_REPORT,1,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1969
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1970
          for (int i = 0; i < numElems; i++)
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  1971
            {
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1972
              LteRrcSap::MeasResultEutra measResultEutra;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1973
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1974
              std::bitset<1> isCgiInfoPresent;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1975
              bIterator = DeserializeSequence (&isCgiInfoPresent,false,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1976
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1977
              // PhysCellId
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1978
              bIterator = DeserializeInteger (&n,0,503,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1979
              measResultEutra.physCellId = n;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1980
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1981
              measResultEutra.haveCgiInfo = isCgiInfoPresent[0];
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1982
              if (isCgiInfoPresent[0])
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1983
                {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1984
                  std::bitset<1> havePlmnIdentityList;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1985
                  bIterator = DeserializeSequence (&havePlmnIdentityList,false,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1986
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1987
                  // Deserialize cellGlobalId
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1988
                  bIterator = DeserializeSequence (&b0,false,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1989
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1990
                  // Deserialize plmn-Identity
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1991
                  bIterator = DeserializePlmnIdentity (&measResultEutra.cgiInfo.plmnIdentity,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1992
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1993
                  // Deserialize CellIdentity
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1994
                  std::bitset<28> cellId;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1995
                  bIterator = DeserializeBitstring (&cellId,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1996
                  measResultEutra.cgiInfo.cellIdentity = cellId.to_ulong ();
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1997
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1998
                  // Deserialize trackingAreaCode
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  1999
                  std::bitset<16> trArCo;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2000
                  bIterator = DeserializeBitstring (&trArCo,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2001
                  measResultEutra.cgiInfo.trackingAreaCode = trArCo.to_ulong ();
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2002
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2003
                  // Deserialize plmn-IdentityList
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2004
                  if (havePlmnIdentityList[0])
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2005
                    {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2006
                      int numPlmnElems;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2007
                      bIterator = DeserializeSequenceOf (&numPlmnElems, 5, 1, bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2008
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2009
                      for ( int j = 0; j < numPlmnElems; j++)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2010
                        {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2011
                          uint32_t plmnId;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2012
                          bIterator = DeserializePlmnIdentity (&plmnId,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2013
                          measResultEutra.cgiInfo.plmnIdentityList.push_back (plmnId);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2014
                        }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2015
                    }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2016
                }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2017
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2018
              // Deserialize measResult
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2019
              std::bitset<2> measResultOpts;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2020
              bIterator = DeserializeSequence (&measResultOpts, true, bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2021
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2022
              measResultEutra.haveRsrpResult = measResultOpts[1];
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2023
              if (measResultOpts[1])
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2024
                {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2025
                  // Deserialize rsrpResult
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2026
                  bIterator = DeserializeInteger (&n,0,97,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2027
                  measResultEutra.rsrpResult = n;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2028
                }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2029
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2030
              measResultEutra.haveRsrqResult = measResultOpts[0];
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2031
              if (measResultOpts[0])
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2032
                {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2033
                  // Deserialize rsrqResult
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2034
                  bIterator = DeserializeInteger (&n,0,34,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2035
                  measResultEutra.rsrqResult = n;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2036
                }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2037
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2038
              measResults->measResultListEutra.push_back (measResultEutra);
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  2039
            }
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  2040
        }
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2041
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2042
      if (measResultNeighCellsChoice == 1)
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  2043
        {
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2044
          // Deserialize measResultListUTRA
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2045
          // ...
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  2046
        }
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  2047
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2048
      if (measResultNeighCellsChoice == 2)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2049
        {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2050
          // Deserialize measResultListGERAN
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2051
          // ...
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2052
        }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2053
      if (measResultNeighCellsChoice == 3)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2054
        {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2055
          // Deserialize measResultsCDMA2000
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2056
          // ...
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2057
        }
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  2058
    }
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  2059
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2060
  return bIterator;
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2061
}
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2062
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2063
Buffer::Iterator
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2064
RrcAsn1Header::DeserializePlmnIdentity (uint32_t *plmnId, Buffer::Iterator bIterator)
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2065
{
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2066
  int n;
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2067
  std::bitset<1> isMccPresent;
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2068
  bIterator = DeserializeSequence (&isMccPresent,false,bIterator);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2069
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2070
  if (isMccPresent[0])
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2071
    {
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2072
      // Deserialize mcc
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2073
      // ...
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2074
    }
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2075
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2076
  // Deserialize mnc
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2077
  int mncDigits;
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2078
  int mnc = 0;
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2079
  bIterator = DeserializeSequenceOf (&mncDigits,3,2,bIterator);
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2080
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2081
  for (int j = mncDigits - 1; j >= 0; j--)
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2082
    {
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2083
      bIterator = DeserializeInteger (&n,0,9,bIterator);
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2084
      mnc += n * pow (10,j);
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2085
    }
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2086
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2087
  *plmnId = mnc;
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2088
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2089
  // cellReservedForOperatorUse
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2090
  bIterator = DeserializeEnum (2,&n,bIterator);
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2091
  return bIterator;
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2092
}
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2093
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2094
//////////////////// RrcConnectionRequest class ////////////////////////
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2095
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2096
// Constructor
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2097
RrcConnectionRequestHeader::RrcConnectionRequestHeader () : RrcUlCcchMessage ()
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2098
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2099
  m_mmec = std::bitset<8> (0ul);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2100
  m_mTmsi = std::bitset<32> (0ul);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2101
  m_establishmentCause = MO_SIGNALLING;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2102
  m_spare = std::bitset<1> (0ul);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2103
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2104
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2105
// Destructor
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2106
RrcConnectionRequestHeader::~RrcConnectionRequestHeader ()
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2107
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2108
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2109
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2110
TypeId
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2111
RrcConnectionRequestHeader::GetTypeId (void)
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2112
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2113
  static TypeId tid = TypeId ("ns3::RrcConnectionRequestHeader")
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2114
    .SetParent<Header> ()
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2115
  ;
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2116
  return tid;
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2117
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2118
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2119
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2120
RrcConnectionRequestHeader::Print (std::ostream &os) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2121
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2122
  os << "MMEC:" << m_mmec << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2123
  os << "MTMSI:" << m_mTmsi << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2124
  os << "EstablishmentCause:" << m_establishmentCause << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2125
  os << "Spare: " << m_spare << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2126
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2127
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2128
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2129
RrcConnectionRequestHeader::PreSerialize () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2130
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2131
  m_serializationResult = Buffer ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2132
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2133
  SerializeUlCcchMessage (1);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2134
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2135
  // Serialize RRCConnectionRequest sequence:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2136
  // no default or optional fields. Extension marker not present.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2137
  SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2138
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2139
  // Serialize criticalExtensions choice:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2140
  // 2 options, selected: 0 (option: rrcConnectionRequest-r8)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2141
  SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2142
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2143
  // Serialize RRCConnectionRequest-r8-IEs sequence:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2144
  // no default or optional fields. Extension marker not present.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2145
  SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2146
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2147
  // Serialize InitialUE-Identity choice:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2148
  // 2 options, selected: 0 (option: s-TMSI)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2149
  SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2150
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2151
  // Serialize S-TMSI sequence:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2152
  // no default or optional fields. Extension marker not present.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2153
  SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2154
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2155
  // Serialize mmec : MMEC ::= BIT STRING (SIZE (8))
9618
0ea7f5ea874a Fix rrc header code for optimized build
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9607
diff changeset
  2156
  SerializeBitstring (m_mmec);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2157
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2158
  // Serialize m-TMSI ::= BIT STRING (SIZE (32))
9618
0ea7f5ea874a Fix rrc header code for optimized build
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9607
diff changeset
  2159
  SerializeBitstring (m_mTmsi);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2160
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2161
  // Serialize establishmentCause : EstablishmentCause ::= ENUMERATED
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2162
  SerializeEnum (8,m_establishmentCause);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2163
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2164
  // Serialize spare : BIT STRING (SIZE (1))
9618
0ea7f5ea874a Fix rrc header code for optimized build
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9607
diff changeset
  2165
  SerializeBitstring (std::bitset<1> ());
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2166
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2167
  // Finish serialization
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2168
  FinalizeSerialization ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2169
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2170
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2171
uint32_t
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2172
RrcConnectionRequestHeader::Deserialize (Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2173
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2174
  std::bitset<1> dummy;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2175
  std::bitset<0> optionalOrDefaultMask;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2176
  int selectedOption;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2177
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2178
  bIterator = DeserializeUlCcchMessage (bIterator);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2179
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2180
  // Deserialize RCConnectionRequest sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2181
  bIterator = DeserializeSequence (&optionalOrDefaultMask,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2182
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2183
  // Deserialize criticalExtensions choice:
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2184
  bIterator = DeserializeChoice (2,false,&selectedOption,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2185
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2186
  // Deserialize RRCConnectionRequest-r8-IEs sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2187
  bIterator = DeserializeSequence (&optionalOrDefaultMask,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2188
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2189
  // Deserialize InitialUE-Identity choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2190
  bIterator = DeserializeChoice (2,false,&selectedOption,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2191
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2192
  // Deserialize S-TMSI sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2193
  bIterator = DeserializeSequence (&optionalOrDefaultMask,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2194
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2195
  // Deserialize mmec
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2196
  bIterator = DeserializeBitstring (&m_mmec,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2197
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2198
  // Deserialize m-TMSI
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2199
  bIterator = DeserializeBitstring (&m_mTmsi,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2200
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2201
  // Deserialize establishmentCause
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2202
  bIterator = DeserializeEnum (8,&selectedOption,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2203
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2204
  // Deserialize spare
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2205
  bIterator = DeserializeBitstring (&dummy,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2206
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2207
  return GetSerializedSize ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2208
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2209
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2210
void
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2211
RrcConnectionRequestHeader::SetMessage (LteRrcSap::RrcConnectionRequest msg)
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2212
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2213
  m_mTmsi = std::bitset<32> ((uint32_t)msg.ueIdentity);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2214
  m_mmec = std::bitset<8> ((uint32_t)(msg.ueIdentity >> 32));
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2215
  m_isDataSerialized = false;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2216
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2217
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2218
LteRrcSap::RrcConnectionRequest
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2219
RrcConnectionRequestHeader::GetMessage () const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2220
{
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  2221
  LteRrcSap::RrcConnectionRequest msg;
9503
d369ee09f4be fixed compilation error in lte-rrc-header.cc on 32 bit systems
Nicola Baldo <nbaldo@cttc.es>
parents: 9496
diff changeset
  2222
  msg.ueIdentity = (((uint64_t) m_mmec.to_ulong ()) << 32) | (m_mTmsi.to_ulong ());
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2223
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2224
  return msg;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2225
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2226
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2227
std::bitset<8>
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2228
RrcConnectionRequestHeader::GetMmec () const
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2229
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2230
  return m_mmec;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2231
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2232
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2233
std::bitset<32>
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2234
RrcConnectionRequestHeader::GetMtmsi () const
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2235
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2236
  return m_mTmsi;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2237
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2238
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2239
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2240
//////////////////// RrcConnectionSetup class ////////////////////////
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2241
RrcConnectionSetupHeader::RrcConnectionSetupHeader ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2242
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2243
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2244
 
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2245
RrcConnectionSetupHeader::~RrcConnectionSetupHeader ()
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2246
{
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2247
}
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2248
 
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2249
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2250
RrcConnectionSetupHeader::Print (std::ostream &os) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2251
{
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2252
  os << "rrcTransactionIdentifier: " << (int)m_rrcTransactionIdentifier << std::endl;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2253
  os << "radioResourceConfigDedicated:" << std::endl;
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2254
  RrcAsn1Header::Print (os,m_radioResourceConfigDedicated);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2255
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2256
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2257
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2258
RrcConnectionSetupHeader::PreSerialize () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2259
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2260
  m_serializationResult = Buffer ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2261
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2262
  SerializeDlCcchMessage (3);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2263
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2264
  SerializeInteger (15,0,15);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2265
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2266
  // Serialize RRCConnectionSetup sequence:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2267
  // no default or optional fields. Extension marker not present.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2268
  SerializeSequence (std::bitset<0> (),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2269
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2270
  // Serialize rrc-TransactionIdentifier ::=INTEGER (0..3)
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2271
  SerializeInteger (m_rrcTransactionIdentifier,0,3);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2272
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2273
  // Serialize criticalExtensions choice:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2274
  // 2 options, selected: 0 (option: c1)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2275
  SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2276
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2277
  // Serialize c1 choice:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2278
  // 8 options, selected: 0 (option: rrcConnectionSetup-r8)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2279
  SerializeChoice (8,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2280
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2281
  // Serialize rrcConnectionSetup-r8 sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2282
  // 1 optional fields (not present). Extension marker not present.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2283
  SerializeSequence (std::bitset<1> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2284
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2285
  // Serialize RadioResourceConfigDedicated sequence
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2286
  SerializeRadioResourceConfigDedicated (m_radioResourceConfigDedicated);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2287
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2288
  // Serialize nonCriticalExtension sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2289
  // 2 optional fields, none present. No extension marker.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2290
  SerializeSequence (std::bitset<2> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2291
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2292
  // Finish serialization
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2293
  FinalizeSerialization ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2294
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2295
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2296
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2297
uint32_t
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2298
RrcConnectionSetupHeader::Deserialize (Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2299
{
9486
36915221a849 Fix Serialization when list size=0 in rrcConnectionSetup, check rb1 set before sending setup complete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9482
diff changeset
  2300
  int n;
36915221a849 Fix Serialization when list size=0 in rrcConnectionSetup, check rb1 set before sending setup complete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9482
diff changeset
  2301
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2302
  std::bitset<0> bitset0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2303
  std::bitset<1> bitset1;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2304
  std::bitset<2> bitset2;
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2305
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2306
  bIterator = DeserializeDlCcchMessage (bIterator);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2307
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2308
  bIterator = DeserializeInteger (&n,0,15,bIterator);
9486
36915221a849 Fix Serialization when list size=0 in rrcConnectionSetup, check rb1 set before sending setup complete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9482
diff changeset
  2309
36915221a849 Fix Serialization when list size=0 in rrcConnectionSetup, check rb1 set before sending setup complete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9482
diff changeset
  2310
  // Deserialize RRCConnectionSetup sequence
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2311
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2312
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2313
  // Deserialize rrc-TransactionIdentifier ::=INTEGER (0..3)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2314
  bIterator = DeserializeInteger (&n,0,3,bIterator);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2315
  m_rrcTransactionIdentifier = n;
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2316
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2317
  // Deserialize criticalExtensions choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2318
  int criticalExtensionChoice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2319
  bIterator = DeserializeChoice (2,false,&criticalExtensionChoice,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2320
  if (criticalExtensionChoice == 1)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2321
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2322
      // Deserialize criticalExtensionsFuture
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2323
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2324
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2325
  else if (criticalExtensionChoice == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2326
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2327
      // Deserialize c1
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2328
      int c1;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2329
      bIterator = DeserializeChoice (8,false,&c1,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2330
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2331
      if (c1 > 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2332
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2333
          // Deserialize spareX , X:=7..1
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2334
          bIterator = DeserializeNull (bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2335
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2336
      else if (c1 == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2337
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2338
          // Deserialize rrcConnectionSetup-r8
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2339
          // 1 optional fields, no extension marker.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2340
          bIterator = DeserializeSequence (&bitset1,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2341
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2342
          // Deserialize radioResourceConfigDedicated
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2343
          bIterator = DeserializeRadioResourceConfigDedicated (&m_radioResourceConfigDedicated,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2344
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2345
          if (bitset1[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2346
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2347
              // Deserialize nonCriticalExtension
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2348
              // 2 optional fields, no extension marker.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2349
              bIterator = DeserializeSequence (&bitset2,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2350
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2351
              // Deserialization of lateR8NonCriticalExtension and nonCriticalExtension
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2352
              // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2353
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2354
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2355
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2356
  return GetSerializedSize ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2357
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2358
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2359
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2360
RrcConnectionSetupHeader::SetMessage (LteRrcSap::RrcConnectionSetup msg)
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2361
{
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2362
  m_rrcTransactionIdentifier = msg.rrcTransactionIdentifier;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2363
  m_radioResourceConfigDedicated = msg.radioResourceConfigDedicated;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2364
  m_isDataSerialized = false;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2365
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2366
9482
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  2367
LteRrcSap::RrcConnectionSetup
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2368
RrcConnectionSetupHeader::GetMessage () const
9482
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  2369
{
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2370
  LteRrcSap::RrcConnectionSetup msg;
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2371
  msg.rrcTransactionIdentifier = m_rrcTransactionIdentifier;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2372
  msg.radioResourceConfigDedicated = m_radioResourceConfigDedicated; 
9482
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  2373
  return msg;
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  2374
}
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  2375
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2376
uint8_t
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2377
RrcConnectionSetupHeader::GetRrcTransactionIdentifier () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2378
{
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2379
  return m_rrcTransactionIdentifier;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2380
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2381
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2382
bool
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2383
RrcConnectionSetupHeader::HavePhysicalConfigDedicated () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2384
{
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2385
  return m_radioResourceConfigDedicated.havePhysicalConfigDedicated;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2386
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2387
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2388
std::list<LteRrcSap::SrbToAddMod>
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2389
RrcConnectionSetupHeader::GetSrbToAddModList () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2390
{
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2391
  return m_radioResourceConfigDedicated.srbToAddModList;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2392
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2393
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2394
std::list<LteRrcSap::DrbToAddMod>
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2395
RrcConnectionSetupHeader::GetDrbToAddModList () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2396
{
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2397
  return m_radioResourceConfigDedicated.drbToAddModList;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2398
} 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2399
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2400
std::list<uint8_t>
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2401
RrcConnectionSetupHeader::GetDrbToReleaseList () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2402
{
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2403
  return m_radioResourceConfigDedicated.drbToReleaseList;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2404
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2405
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2406
LteRrcSap::PhysicalConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2407
RrcConnectionSetupHeader::GetPhysicalConfigDedicated () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2408
{
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2409
  return m_radioResourceConfigDedicated.physicalConfigDedicated;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2410
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2411
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2412
LteRrcSap::RadioResourceConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2413
RrcConnectionSetupHeader::GetRadioResourceConfigDedicated () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2414
{
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2415
  return m_radioResourceConfigDedicated;
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2416
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2417
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2418
//////////////////// RrcConnectionSetupCompleteHeader class ////////////////////////
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2419
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2420
RrcConnectionSetupCompleteHeader::RrcConnectionSetupCompleteHeader ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2421
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2422
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2423
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2424
RrcConnectionSetupCompleteHeader::~RrcConnectionSetupCompleteHeader ()
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2425
{
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2426
}
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2427
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2428
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2429
RrcConnectionSetupCompleteHeader::PreSerialize () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2430
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2431
  m_serializationResult = Buffer ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2432
9471
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2433
  // Serialize DCCH message
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2434
  SerializeUlDcchMessage (4);
9471
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2435
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2436
  // Serialize RRCConnectionSetupComplete sequence:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2437
  // no default or optional fields. Extension marker not present.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2438
  SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2439
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2440
  // Serialize rrc-TransactionIdentifier
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2441
  SerializeInteger (m_rrcTransactionIdentifier,0,3);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2442
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2443
  // Serialize criticalExtensions choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2444
  // 2 options, selected 0 (c1)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2445
  SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2446
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2447
  // Choose spare3 NULL
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2448
  SerializeChoice (4,1,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2449
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2450
  // Serialize spare3 NULL
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2451
  SerializeNull ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2452
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2453
  // Finish serialization
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2454
  FinalizeSerialization ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2455
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2456
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2457
uint32_t
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2458
RrcConnectionSetupCompleteHeader::Deserialize (Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2459
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2460
  std::bitset<0> bitset0;
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2461
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2462
  bIterator = DeserializeUlDcchMessage (bIterator);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2463
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2464
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2465
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2466
  int n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2467
  bIterator = DeserializeInteger (&n,0,3,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2468
  m_rrcTransactionIdentifier = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2469
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2470
  bIterator = DeserializeChoice (2,false,&n,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2471
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2472
  if (n == 1)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2473
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2474
      // Deserialize criticalExtensionsFuture
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2475
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2476
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2477
  else if (n == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2478
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2479
      // Deserialize c1
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2480
      int c1Chosen;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2481
      bIterator = DeserializeChoice (4,false,&c1Chosen,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2482
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2483
      if (c1Chosen == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2484
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2485
          // Deserialize rrcConnectionSetupComplete-r8
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2486
          // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2487
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2488
      else
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2489
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2490
          bIterator = DeserializeNull (bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2491
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2492
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2493
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2494
  return GetSerializedSize ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2495
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2496
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2497
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2498
RrcConnectionSetupCompleteHeader::Print (std::ostream &os) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2499
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2500
  os << "rrcTransactionIdentifier: " << (int) m_rrcTransactionIdentifier << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2501
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2502
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2503
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2504
RrcConnectionSetupCompleteHeader::SetMessage (LteRrcSap::RrcConnectionSetupCompleted msg)
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2505
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2506
  m_rrcTransactionIdentifier = msg.rrcTransactionIdentifier;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2507
  m_isDataSerialized = false;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2508
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2509
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2510
uint8_t
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2511
RrcConnectionSetupCompleteHeader::GetRrcTransactionIdentifier () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2512
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2513
  return m_rrcTransactionIdentifier;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2514
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2515
9471
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2516
LteRrcSap::RrcConnectionSetupCompleted
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2517
RrcConnectionSetupCompleteHeader::GetMessage () const
9471
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2518
{
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2519
  LteRrcSap::RrcConnectionSetupCompleted msg;
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2520
  msg.rrcTransactionIdentifier = m_rrcTransactionIdentifier;
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2521
  return msg;
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2522
}
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2523
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2524
//////////////////// RrcConnectionReconfigurationCompleteHeader class ////////////////////////
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2525
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2526
RrcConnectionReconfigurationCompleteHeader::RrcConnectionReconfigurationCompleteHeader ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2527
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2528
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2529
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2530
RrcConnectionReconfigurationCompleteHeader::~RrcConnectionReconfigurationCompleteHeader ()
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2531
{
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2532
}
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2533
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2534
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2535
RrcConnectionReconfigurationCompleteHeader::PreSerialize () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2536
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2537
  m_serializationResult = Buffer ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2538
9471
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2539
  // Serialize DCCH message
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2540
  SerializeUlDcchMessage (2);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2541
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2542
  // Serialize RRCConnectionSetupComplete sequence:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2543
  // no default or optional fields. Extension marker not present.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2544
  SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2545
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2546
  // Serialize rrc-TransactionIdentifier
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2547
  SerializeInteger (m_rrcTransactionIdentifier,0,3);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2548
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2549
  // Serialize criticalExtensions choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2550
  // 2 options, selected 1 (criticalExtensionsFuture)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2551
  SerializeChoice (2,1,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2552
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2553
  // Choose criticalExtensionsFuture
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2554
  SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2555
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2556
  // Finish serialization
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2557
  FinalizeSerialization ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2558
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2559
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2560
uint32_t
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2561
RrcConnectionReconfigurationCompleteHeader::Deserialize (Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2562
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2563
  std::bitset<0> bitset0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2564
  int n;
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2565
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2566
  bIterator = DeserializeUlDcchMessage (bIterator);
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  2567
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
9471
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  2568
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2569
  bIterator = DeserializeInteger (&n,0,3,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2570
  m_rrcTransactionIdentifier = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2571
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2572
  bIterator = DeserializeChoice (2,false,&n,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2573
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2574
  if (n == 1)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2575
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2576
      // Deserialize criticalExtensionsFuture
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2577
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2578
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2579
  else if (n == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2580
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2581
      // Deserialize rrcConnectionReconfigurationComplete-r8
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2582
      // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2583
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2584
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2585
  return GetSerializedSize ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2586
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2587
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2588
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2589
RrcConnectionReconfigurationCompleteHeader::Print (std::ostream &os) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2590
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2591
  os << "rrcTransactionIdentifier: " << (int) m_rrcTransactionIdentifier << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2592
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2593
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2594
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2595
RrcConnectionReconfigurationCompleteHeader::SetMessage (LteRrcSap::RrcConnectionReconfigurationCompleted msg)
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2596
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2597
  m_rrcTransactionIdentifier = msg.rrcTransactionIdentifier;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2598
  m_isDataSerialized = false;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2599
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2600
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2601
LteRrcSap::RrcConnectionReconfigurationCompleted
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2602
RrcConnectionReconfigurationCompleteHeader::GetMessage () const
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2603
{
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2604
  LteRrcSap::RrcConnectionReconfigurationCompleted msg;
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2605
  msg.rrcTransactionIdentifier = m_rrcTransactionIdentifier;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2606
  return msg;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2607
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2608
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2609
uint8_t
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2610
RrcConnectionReconfigurationCompleteHeader::GetRrcTransactionIdentifier () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2611
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2612
  return m_rrcTransactionIdentifier;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2613
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2614
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2615
//////////////////// RrcConnectionReconfigurationHeader class ////////////////////////
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2616
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2617
RrcConnectionReconfigurationHeader::RrcConnectionReconfigurationHeader ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2618
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2619
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2620
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2621
RrcConnectionReconfigurationHeader::~RrcConnectionReconfigurationHeader ()
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2622
{
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2623
}
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  2624
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2625
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2626
RrcConnectionReconfigurationHeader::PreSerialize () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2627
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2628
  m_serializationResult = Buffer ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2629
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2630
  SerializeDlDcchMessage (4);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  2631
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2632
  // Serialize RRCConnectionSetupComplete sequence:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2633
  // no default or optional fields. Extension marker not present.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2634
  SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2635
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2636
  // Serialize rrc-TransactionIdentifier
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2637
  SerializeInteger (m_rrcTransactionIdentifier,0,3);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2638
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2639
  // Serialize criticalExtensions choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2640
  // 2 options, selected 0 (c1)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2641
  SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2642
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2643
  // Serialize c1 choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2644
  // 8 options, selected 0 (rrcConnectionReconfiguration-r8)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2645
  SerializeChoice (8,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2646
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2647
  // Serialize RRCConnectionReconfiguration-r8-IEs sequence:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2648
  // 6 optional fields. Extension marker not present.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2649
  std::bitset<6> options;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2650
  options.set (5,m_haveMeasConfig);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2651
  options.set (4,m_haveMobilityControlInfo);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2652
  options.set (3,0); // No dedicatedInfoNASList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2653
  options.set (2,m_haveRadioResourceConfigDedicated);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2654
  options.set (1,0); // No securityConfigHO
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2655
  options.set (0,0); // No nonCriticalExtension
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2656
  SerializeSequence (options,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2657
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2658
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2659
  if (m_haveMeasConfig)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2660
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2661
      // Serialize MeasConfig sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2662
      // 11 optional fields, extension marker present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2663
      std::bitset<11> measConfigOptional (0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2664
      SerializeSequence (measConfigOptional,true);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2665
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2666
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2667
  if (m_haveMobilityControlInfo)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2668
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2669
      // Serialize MobilityControlInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2670
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2671
      // 4 optional fields, extension marker present.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2672
      std::bitset<4> mobCtrlIntoOptional;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2673
      mobCtrlIntoOptional.set (3,m_mobilityControlInfo.haveCarrierFreq);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2674
      mobCtrlIntoOptional.set (2,m_mobilityControlInfo.haveCarrierBandwidth);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2675
      mobCtrlIntoOptional.set (1,0); // No additionalSpectrumEmission
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2676
      mobCtrlIntoOptional.set (0,m_mobilityControlInfo.haveRachConfigDedicated);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2677
      SerializeSequence (mobCtrlIntoOptional,true);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2678
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2679
      // Serialize targetPhysCellId
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2680
      SerializeInteger (m_mobilityControlInfo.targetPhysCellId,0,503);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2681
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2682
      if (m_mobilityControlInfo.haveCarrierFreq)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2683
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2684
          SerializeSequence (std::bitset<1> (1),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2685
          SerializeInteger (m_mobilityControlInfo.carrierFreq.dlCarrierFreq,0,MAX_EARFCN);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2686
          SerializeInteger (m_mobilityControlInfo.carrierFreq.ulCarrierFreq,0,MAX_EARFCN);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2687
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2688
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2689
      if (m_mobilityControlInfo.haveCarrierBandwidth)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2690
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2691
          SerializeSequence (std::bitset<1> (1),false);
9573
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2692
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2693
          // Serialize dl-Bandwidth
9574
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2694
          switch (m_mobilityControlInfo.carrierBandwidth.dlBandwidth)
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2695
            {
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2696
            case 6:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2697
              SerializeEnum (16,0);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2698
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2699
            case 15:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2700
              SerializeEnum (16,1);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2701
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2702
            case 25:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2703
              SerializeEnum (16,2);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2704
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2705
            case 50:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2706
              SerializeEnum (16,3);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2707
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2708
            case 75:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2709
              SerializeEnum (16,4);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2710
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2711
            case 100:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2712
              SerializeEnum (16,5);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2713
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2714
            default:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2715
              SerializeEnum (16,6);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2716
            }
9573
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2717
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2718
          // Serialize ul-Bandwidth
9574
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2719
          switch (m_mobilityControlInfo.carrierBandwidth.ulBandwidth)
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2720
            {
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2721
            case 6:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2722
              SerializeEnum (16,0);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2723
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2724
            case 15:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2725
              SerializeEnum (16,1);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2726
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2727
            case 25:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2728
              SerializeEnum (16,2);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2729
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2730
            case 50:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2731
              SerializeEnum (16,3);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2732
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2733
            case 75:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2734
              SerializeEnum (16,4);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2735
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2736
            case 100:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2737
              SerializeEnum (16,5);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2738
              break;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2739
            default:
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2740
              SerializeEnum (16,6);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2741
            }
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2742
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2743
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2744
      // Serialize t304
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2745
      SerializeEnum (8,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2746
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2747
      // Serialize newUE-Identitiy
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2748
      SerializeBitstring (std::bitset<16> (m_mobilityControlInfo.newUeIdentity));
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2749
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2750
      // Serialize radioResourceConfigCommon
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2751
      SerializeRadioResourceConfigCommon (m_mobilityControlInfo.radioResourceConfigCommon);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2752
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2753
      if (m_mobilityControlInfo.haveRachConfigDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2754
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2755
          SerializeSequence (std::bitset<0> (),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2756
          SerializeInteger (m_mobilityControlInfo.rachConfigDedicated.raPreambleIndex,0,63);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2757
          SerializeInteger (m_mobilityControlInfo.rachConfigDedicated.raPrachMaskIndex,0,15);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2758
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2759
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2760
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2761
  if (m_haveRadioResourceConfigDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2762
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2763
      // Serialize RadioResourceConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2764
      SerializeRadioResourceConfigDedicated (m_radioResourceConfigDedicated);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2765
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2766
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2767
  // Finish serialization
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2768
  FinalizeSerialization ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2769
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2770
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2771
uint32_t
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2772
RrcConnectionReconfigurationHeader::Deserialize (Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2773
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2774
  std::bitset<0> bitset0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2775
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2776
  bIterator = DeserializeDlDcchMessage (bIterator);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  2777
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2778
  // RRCConnectionReconfiguration sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2779
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2780
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2781
  // rrc-TransactionIdentifier
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2782
  int n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2783
  bIterator = DeserializeInteger (&n,0,3,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2784
  m_rrcTransactionIdentifier = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2785
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2786
  // criticalExtensions
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2787
  int sel;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2788
  bIterator = DeserializeChoice (2,false,&sel,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2789
  if (sel == 1)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2790
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2791
      // criticalExtensionsFuture
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2792
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2793
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2794
  else if (sel == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2795
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2796
      // c1
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2797
      int c1Chosen;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  2798
      bIterator = DeserializeChoice (8,false,&c1Chosen,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2799
      if (c1Chosen > 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2800
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2801
          bIterator = DeserializeNull (bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2802
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2803
      else if (c1Chosen == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2804
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2805
          // rrcConnectionReconfiguration-r8
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2806
          std::bitset<6> rrcConnRecOpts;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2807
          bIterator = DeserializeSequence (&rrcConnRecOpts,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2808
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2809
          m_haveMeasConfig = rrcConnRecOpts[5];
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2810
          if (m_haveMeasConfig)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2811
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2812
              std::bitset<11> bitset11;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2813
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2814
              // measConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2815
              bIterator = DeserializeSequence (&bitset11,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2816
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2817
              if (bitset11[10])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2818
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2819
                  // measObjectToRemoveList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2820
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2821
              if (bitset11[9])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2822
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2823
                  // measObjectToAddModList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2824
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2825
              if (bitset11[8])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2826
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2827
                  // reportConfigToRemoveList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2828
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2829
              if (bitset11[7])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2830
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2831
                  // reportConfigToAddModList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2832
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2833
              if (bitset11[6])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2834
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2835
                  // measIdToRemoveList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2836
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2837
              if (bitset11[5])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2838
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2839
                  // measIdToAddModList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2840
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2841
              if (bitset11[4])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2842
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2843
                  // quantityConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2844
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2845
              if (bitset11[3])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2846
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2847
                  // measGapConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2848
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2849
              if (bitset11[2])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2850
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2851
                  // s-Measure
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2852
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2853
              if (bitset11[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2854
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2855
                  // preRegistrationInfoHRPD
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2856
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2857
              if (bitset11[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2858
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2859
                  // speedStatePars
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2860
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2861
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2862
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2863
          m_haveMobilityControlInfo = rrcConnRecOpts[4];
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2864
          if (m_haveMobilityControlInfo)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2865
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2866
              // mobilityControlInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2867
              std::bitset<4> mobCtrlOpts;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2868
              bIterator = DeserializeSequence (&mobCtrlOpts,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2869
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2870
              // PhysCellId
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2871
              bIterator = DeserializeInteger (&n,0,503,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2872
              m_mobilityControlInfo.targetPhysCellId = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2873
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2874
              // carrierFreq
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2875
              m_mobilityControlInfo.haveCarrierFreq = mobCtrlOpts[3];
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2876
              if (m_mobilityControlInfo.haveCarrierFreq)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2877
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2878
                  std::bitset<1> ulCarrierFreqPresent;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2879
                  bIterator = DeserializeSequence (&ulCarrierFreqPresent,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2880
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2881
                  bIterator = DeserializeInteger (&n,0,MAX_EARFCN,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2882
                  m_mobilityControlInfo.carrierFreq.dlCarrierFreq = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2883
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2884
                  if (ulCarrierFreqPresent[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2885
                    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2886
                      bIterator = DeserializeInteger (&n,0,MAX_EARFCN,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2887
                      m_mobilityControlInfo.carrierFreq.ulCarrierFreq = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2888
                    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2889
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2890
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2891
              // carrierBandwidth
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2892
              m_mobilityControlInfo.haveCarrierBandwidth = mobCtrlOpts[2];
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2893
              if (m_mobilityControlInfo.haveCarrierBandwidth)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2894
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2895
                  std::bitset<1> ulBandwidthPresent;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2896
                  bIterator = DeserializeSequence (&ulBandwidthPresent,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2897
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2898
                  bIterator = DeserializeEnum (16,&n,bIterator);
9574
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2899
                  switch (n)
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2900
                    {
9573
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2901
                    case 0:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2902
                      m_mobilityControlInfo.carrierBandwidth.dlBandwidth = 6;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2903
                      break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2904
                    case 1:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2905
                      m_mobilityControlInfo.carrierBandwidth.dlBandwidth = 15;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2906
                      break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2907
                    case 2:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2908
                      m_mobilityControlInfo.carrierBandwidth.dlBandwidth = 25;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2909
                      break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2910
                    case 3:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2911
                      m_mobilityControlInfo.carrierBandwidth.dlBandwidth = 50;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2912
                      break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2913
                    case 4:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2914
                      m_mobilityControlInfo.carrierBandwidth.dlBandwidth = 75;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2915
                      break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2916
                    case 5:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2917
                      m_mobilityControlInfo.carrierBandwidth.dlBandwidth = 100;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2918
                      break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2919
                    case 6:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2920
                      m_mobilityControlInfo.carrierBandwidth.dlBandwidth = 0;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2921
                      break;
9574
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2922
                    }
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2923
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2924
                  if (ulBandwidthPresent[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2925
                    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2926
                      bIterator = DeserializeEnum (16,&n,bIterator);
9574
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2927
                      switch (n)
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2928
                        {
9573
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2929
                        case 0:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2930
                          m_mobilityControlInfo.carrierBandwidth.ulBandwidth = 6;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2931
                          break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2932
                        case 1:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2933
                          m_mobilityControlInfo.carrierBandwidth.ulBandwidth = 15;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2934
                          break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2935
                        case 2:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2936
                          m_mobilityControlInfo.carrierBandwidth.ulBandwidth = 25;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2937
                          break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2938
                        case 3:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2939
                          m_mobilityControlInfo.carrierBandwidth.ulBandwidth = 50;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2940
                          break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2941
                        case 4:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2942
                          m_mobilityControlInfo.carrierBandwidth.ulBandwidth = 75;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2943
                          break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2944
                        case 5:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2945
                          m_mobilityControlInfo.carrierBandwidth.ulBandwidth = 100;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2946
                          break;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2947
                        case 6:
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2948
                          m_mobilityControlInfo.carrierBandwidth.ulBandwidth = 0;
0243c2781970 Change encoding of ulBandwith, dlBandwith on m_mobilityControlInfo.carrierBandwidth.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9509
diff changeset
  2949
                          break;
9574
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  2950
                        }
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2951
                    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2952
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2953
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2954
              // additionalSpectrumEmission
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2955
              if (mobCtrlOpts[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2956
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2957
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2958
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2959
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2960
              // t304
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2961
              bIterator = DeserializeEnum (8,&n,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2962
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2963
              // newUE-Identity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2964
              std::bitset<16> cRnti;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2965
              bIterator = DeserializeBitstring (&cRnti, bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2966
              m_mobilityControlInfo.newUeIdentity = cRnti.to_ulong ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2967
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2968
              // radioResourceConfigCommon
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  2969
              bIterator = DeserializeRadioResourceConfigCommon (&m_mobilityControlInfo.radioResourceConfigCommon, bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2970
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2971
              m_mobilityControlInfo.haveRachConfigDedicated = mobCtrlOpts[0];
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2972
              if (m_mobilityControlInfo.haveRachConfigDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2973
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2974
                  bIterator = DeserializeSequence (&bitset0, false, bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2975
                  bIterator = DeserializeInteger (&n,0,63, bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2976
                  m_mobilityControlInfo.rachConfigDedicated.raPreambleIndex = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2977
                  bIterator = DeserializeInteger (&n,0,15, bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2978
                  m_mobilityControlInfo.rachConfigDedicated.raPrachMaskIndex = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2979
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2980
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2981
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2982
          // dedicatedInfoNASList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2983
          if (rrcConnRecOpts[3])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2984
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2985
              // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2986
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2987
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2988
          // radioResourceConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2989
          m_haveRadioResourceConfigDedicated = rrcConnRecOpts[2];
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2990
          if (m_haveRadioResourceConfigDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2991
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2992
              bIterator = DeserializeRadioResourceConfigDedicated (&m_radioResourceConfigDedicated,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2993
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2994
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2995
          // securityConfigHO
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2996
          if (rrcConnRecOpts[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2997
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2998
              // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  2999
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3000
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3001
          // nonCriticalExtension
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3002
          if (rrcConnRecOpts[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3003
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3004
              // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3005
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3006
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3007
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3008
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3009
  return GetSerializedSize ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3010
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3011
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3012
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3013
RrcConnectionReconfigurationHeader::Print (std::ostream &os) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3014
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3015
  os << "rrcTransactionIdentifier: " << (int) m_rrcTransactionIdentifier << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3016
  os << "haveMeasConfig: " << m_haveMeasConfig << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3017
  os << "haveMobilityControlInfo: " << m_haveMobilityControlInfo << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3018
  if (m_haveMobilityControlInfo)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3019
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3020
      os << "targetPhysCellId: " << (int)m_mobilityControlInfo.targetPhysCellId << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3021
      os << "haveCarrierFreq: " << m_mobilityControlInfo.haveCarrierFreq << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3022
      if (m_mobilityControlInfo.haveCarrierFreq)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3023
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3024
          os << "  carrierFreq.dlCarrierFreq: " << (int) m_mobilityControlInfo.carrierFreq.dlCarrierFreq << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3025
          os << "  carrierFreq.dlCarrierFreq: " << (int) m_mobilityControlInfo.carrierFreq.ulCarrierFreq << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3026
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3027
      os << "haveCarrierBandwidth: " << m_mobilityControlInfo.haveCarrierBandwidth << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3028
      if (m_mobilityControlInfo.haveCarrierBandwidth)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3029
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3030
          os << "  carrierBandwidth.dlBandwidth: " << (int) m_mobilityControlInfo.carrierBandwidth.dlBandwidth << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3031
          os << "  carrierBandwidth.ulBandwidth: " << (int) m_mobilityControlInfo.carrierBandwidth.ulBandwidth << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3032
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3033
      os << "newUeIdentity: " << (int) m_mobilityControlInfo.newUeIdentity << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3034
      os << "haveRachConfigDedicated: " << m_mobilityControlInfo.haveRachConfigDedicated << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3035
      if (m_mobilityControlInfo.haveRachConfigDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3036
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3037
          os << "raPreambleIndex: " << (int) m_mobilityControlInfo.rachConfigDedicated.raPreambleIndex << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3038
          os << "raPrachMaskIndex: "  << (int) m_mobilityControlInfo.rachConfigDedicated.raPrachMaskIndex << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3039
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3040
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3041
  os << "haveRadioResourceConfigDedicated: " << m_haveRadioResourceConfigDedicated << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3042
  if (m_haveRadioResourceConfigDedicated)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3043
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3044
      RrcAsn1Header::Print (os,m_radioResourceConfigDedicated);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3045
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3046
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3047
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3048
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3049
RrcConnectionReconfigurationHeader::SetMessage (LteRrcSap::RrcConnectionReconfiguration msg)
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3050
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3051
  m_rrcTransactionIdentifier = msg.rrcTransactionIdentifier;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3052
  m_haveMeasConfig = msg.haveMeasConfig;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3053
  m_measConfig = msg.measConfig;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3054
  m_haveMobilityControlInfo = msg.haveMobilityControlInfo;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3055
  m_mobilityControlInfo = msg.mobilityControlInfo;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3056
  m_haveRadioResourceConfigDedicated = msg.haveRadioResourceConfigDedicated;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3057
  m_radioResourceConfigDedicated = msg.radioResourceConfigDedicated;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3058
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3059
  m_isDataSerialized = false;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3060
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3061
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3062
LteRrcSap::RrcConnectionReconfiguration
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3063
RrcConnectionReconfigurationHeader::GetMessage () const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3064
{
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3065
  LteRrcSap::RrcConnectionReconfiguration msg;
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3066
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3067
  msg.rrcTransactionIdentifier = m_rrcTransactionIdentifier;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3068
  msg.haveMeasConfig = m_haveMeasConfig;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3069
  msg.measConfig = m_measConfig;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3070
  msg.haveMobilityControlInfo = m_haveMobilityControlInfo;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3071
  msg.mobilityControlInfo = m_mobilityControlInfo;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3072
  msg.haveRadioResourceConfigDedicated = m_haveRadioResourceConfigDedicated;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3073
  msg.radioResourceConfigDedicated = m_radioResourceConfigDedicated;
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3074
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3075
  return msg;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3076
}
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3077
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3078
uint8_t
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3079
RrcConnectionReconfigurationHeader::GetRrcTransactionIdentifier () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3080
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3081
  return m_rrcTransactionIdentifier;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3082
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3083
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3084
bool
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3085
RrcConnectionReconfigurationHeader::GetHaveMeasConfig ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3086
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3087
  return m_haveMeasConfig;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3088
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3089
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3090
LteRrcSap::MeasConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3091
RrcConnectionReconfigurationHeader::GetMeasConfig ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3092
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3093
  return m_measConfig;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3094
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3095
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3096
bool
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3097
RrcConnectionReconfigurationHeader::GetHaveMobilityControlInfo ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3098
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3099
  return m_haveMobilityControlInfo;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3100
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3101
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3102
LteRrcSap::MobilityControlInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3103
RrcConnectionReconfigurationHeader::GetMobilityControlInfo ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3104
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3105
  return m_mobilityControlInfo;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3106
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3107
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3108
bool
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3109
RrcConnectionReconfigurationHeader::GetHaveRadioResourceConfigDedicated ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3110
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3111
  return m_haveRadioResourceConfigDedicated;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3112
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3113
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3114
LteRrcSap::RadioResourceConfigDedicated
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3115
RrcConnectionReconfigurationHeader::GetRadioResourceConfigDedicated ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3116
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3117
  return m_radioResourceConfigDedicated;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3118
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3119
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3120
bool
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3121
RrcConnectionReconfigurationHeader::HavePhysicalConfigDedicated () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3122
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3123
  return m_radioResourceConfigDedicated.havePhysicalConfigDedicated;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3124
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3125
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3126
std::list<LteRrcSap::SrbToAddMod> 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3127
RrcConnectionReconfigurationHeader::GetSrbToAddModList () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3128
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3129
  return m_radioResourceConfigDedicated.srbToAddModList;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3130
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3131
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3132
std::list<LteRrcSap::DrbToAddMod> 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3133
RrcConnectionReconfigurationHeader::GetDrbToAddModList () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3134
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3135
  return m_radioResourceConfigDedicated.drbToAddModList;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3136
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3137
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3138
std::list<uint8_t> 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3139
RrcConnectionReconfigurationHeader::GetDrbToReleaseList () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3140
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3141
  return m_radioResourceConfigDedicated.drbToReleaseList;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3142
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3143
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3144
LteRrcSap::PhysicalConfigDedicated 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3145
RrcConnectionReconfigurationHeader::GetPhysicalConfigDedicated () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3146
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3147
  return m_radioResourceConfigDedicated.physicalConfigDedicated;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3148
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3149
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3150
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3151
//////////////////// HandoverPreparationInfoHeader class ////////////////////////
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3152
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3153
HandoverPreparationInfoHeader::HandoverPreparationInfoHeader ()
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3154
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3155
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3156
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3157
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3158
HandoverPreparationInfoHeader::PreSerialize () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3159
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3160
  m_serializationResult = Buffer ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3161
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3162
  // Serialize HandoverPreparationInformation sequence:
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3163
  // no default or optional fields. Extension marker not present.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  3164
  SerializeSequence (std::bitset<0> (),false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3165
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3166
  // Serialize criticalExtensions choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3167
  // 2 options, selected 0 (c1)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3168
  SerializeChoice (2,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3169
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3170
  // Serialize c1 choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3171
  // 8 options, selected 0 (handoverPreparationInformation-r8)
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3172
  SerializeChoice (8,0,false);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3173
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3174
  // Serialize HandoverPreparationInformation-r8-IEs sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3175
  // 4 optional fields, no extension marker.
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3176
  std::bitset<4> handoverPrepInfoOpts;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3177
  handoverPrepInfoOpts.set (3,1); // as-Config present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3178
  handoverPrepInfoOpts.set (2,0); // rrm-Config not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3179
  handoverPrepInfoOpts.set (1,0); // as-Context not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3180
  handoverPrepInfoOpts.set (0,0); // nonCriticalExtension not present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3181
  SerializeSequence (handoverPrepInfoOpts,false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3182
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3183
  // Serialize ue-RadioAccessCapabilityInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3184
  SerializeSequenceOf (0,MAX_RAT_CAPABILITIES,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3185
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3186
  // Serialize as-Config
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3187
  SerializeSequence (std::bitset<0> (),true);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3188
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3189
  // Serialize sourceMeasConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3190
  // 11 optional fields, extension marker present
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3191
  std::bitset<11> measConfigOptional (0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3192
  SerializeSequence (measConfigOptional,true);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3193
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3194
  // Serialize sourceRadioResourceConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3195
  SerializeRadioResourceConfigDedicated (m_asConfig.sourceRadioResourceConfig);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3196
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3197
  // Serialize sourceSecurityAlgorithmConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3198
  SerializeSequence (std::bitset<0> (),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3199
  // cipheringAlgorithm
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3200
  SerializeEnum (8,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3201
  // integrityProtAlgorithm
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3202
  SerializeEnum (8,0);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3203
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3204
  // Serialize sourceUE-Identity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3205
  SerializeBitstring (std::bitset<16> (m_asConfig.sourceUeIdentity));
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3206
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3207
  // Serialize sourceMasterInformationBlock
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3208
  SerializeSequence (std::bitset<0> (),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3209
  SerializeEnum (6,m_asConfig.sourceMasterInformationBlock.dlBandwidth); // dl-Bandwidth
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3210
  SerializeSequence (std::bitset<0> (),false); // phich-Config sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3211
  SerializeEnum (2,0); // phich-Duration
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3212
  SerializeEnum (4,0); // phich-Resource
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3213
  SerializeBitstring (std::bitset<8> (m_asConfig.sourceMasterInformationBlock.systemFrameNumber)); // systemFrameNumber
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3214
  SerializeBitstring (std::bitset<10> (321)); // spare
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3215
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3216
  // Serialize sourceSystemInformationBlockType1 sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3217
  SerializeSystemInformationBlockType1 (m_asConfig.sourceSystemInformationBlockType1);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3218
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3219
  // Serialize sourceSystemInformationBlockType2
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  3220
  SerializeSystemInformationBlockType2 (m_asConfig.sourceSystemInformationBlockType2);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3221
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3222
  // Serialize AntennaInfoCommon 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3223
  SerializeSequence (std::bitset<0> (0),false);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3224
  SerializeEnum (4,0); // antennaPortsCount 
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3225
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3226
  // Serialize sourceDlCarrierFreq
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3227
  SerializeInteger (m_asConfig.sourceDlCarrierFreq,0,MAX_EARFCN);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3228
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3229
  // Finish serialization
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3230
  FinalizeSerialization ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3231
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3232
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3233
uint32_t
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3234
HandoverPreparationInfoHeader::Deserialize (Buffer::Iterator bIterator)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3235
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3236
  std::bitset<0> bitset0;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3237
  int n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3238
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3239
  // Deserialize HandoverPreparationInformation sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3240
  // 0 optional fields, no extension marker
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3241
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3242
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3243
  // Deserialize criticalExtensions choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3244
  int criticalExtensionsChosen;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3245
  bIterator = DeserializeChoice (2,false,&criticalExtensionsChosen,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3246
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3247
  if (criticalExtensionsChosen == 1)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3248
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3249
      // Deserialize criticalExtensionsFuture
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3250
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3251
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3252
  else if (criticalExtensionsChosen == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3253
    {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3254
      // Deserialize c1 choice
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3255
      int c1Chosen;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3256
      bIterator = DeserializeChoice (8,false,&c1Chosen,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3257
      if (c1Chosen > 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3258
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3259
          bIterator = DeserializeNull (bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3260
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3261
      else if (c1Chosen == 0)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3262
        {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3263
          // Deserialize handoverPreparationInformation-r8
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3264
          std::bitset<4> handoverPrepInfoOpts;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3265
          bIterator = DeserializeSequence (&handoverPrepInfoOpts,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3266
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3267
          // Deserialize ue-RadioAccessCapabilityInfo
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3268
          bIterator = DeserializeSequenceOf (&n,MAX_RAT_CAPABILITIES,0,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3269
          for (int i = 0; i < n; i++)
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3270
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3271
              // Deserialize UE-CapabilityRAT-Container
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3272
              // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3273
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3274
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3275
          if (handoverPrepInfoOpts[3])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3276
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3277
              // Deserialize as-Config sequence
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3278
              bIterator = DeserializeSequence (&bitset0,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3279
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3280
              // Deserialize sourceMeasConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3281
              std::bitset<11> bitset11;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3282
              bIterator = DeserializeSequence (&bitset11,true,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3283
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3284
              if (bitset11[10]) //measObjectToRemoveList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3285
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3286
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3287
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3288
              if (bitset11[9]) //measObjectToAddModList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3289
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3290
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3291
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3292
              if (bitset11[8]) //reportConfigToRemoveList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3293
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3294
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3295
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3296
              if (bitset11[7]) //reportConfigToAddModList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3297
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3298
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3299
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3300
              if (bitset11[6]) //measIdToRemoveList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3301
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3302
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3303
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3304
              if (bitset11[5]) //measIdToAddModList
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3305
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3306
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3307
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3308
              if (bitset11[4]) //quantityConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3309
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3310
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3311
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3312
              if (bitset11[3]) //measGapConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3313
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3314
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3315
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3316
              if (bitset11[2]) //s-Measure
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3317
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3318
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3319
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3320
              if (bitset11[1]) //preRegistrationInfoHRPD
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3321
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3322
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3323
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3324
              if (bitset11[0]) //speedStatePars
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3325
                {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3326
                  // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3327
                }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3328
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3329
              // Deserialize sourceRadioResourceConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3330
              bIterator = DeserializeRadioResourceConfigDedicated (&m_asConfig.sourceRadioResourceConfig,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3331
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3332
              // Deserialize sourceSecurityAlgorithmConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3333
              bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3334
              bIterator = DeserializeEnum (8,&n,bIterator); // cipheringAlgorithm
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3335
              bIterator = DeserializeEnum (8,&n,bIterator); // integrityProtAlgorithm
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3336
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3337
              // Deserialize sourceUE-Identity
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3338
              std::bitset<16> cRnti;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3339
              bIterator = DeserializeBitstring (&cRnti,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3340
              m_asConfig.sourceUeIdentity = cRnti.to_ulong ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3341
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3342
              // Deserialize sourceMasterInformationBlock
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3343
              bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3344
              bIterator = DeserializeEnum (6,&n,bIterator); // dl-Bandwidth
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3345
              m_asConfig.sourceMasterInformationBlock.dlBandwidth = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3346
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3347
              // phich-Config
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3348
              bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3349
              bIterator = DeserializeEnum (2,&n,bIterator); // phich-Duration
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3350
              bIterator = DeserializeEnum (4,&n,bIterator); // phich-Resource
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3351
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3352
              // systemFrameNumber
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3353
              std::bitset<8> systemFrameNumber;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3354
              bIterator = DeserializeBitstring (&systemFrameNumber,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3355
              m_asConfig.sourceMasterInformationBlock.systemFrameNumber = systemFrameNumber.to_ulong ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3356
              // spare
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3357
              std::bitset<10> spare;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3358
              bIterator = DeserializeBitstring (&spare,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3359
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3360
              // Deserialize sourceSystemInformationBlockType1
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3361
              bIterator = DeserializeSystemInformationBlockType1 (&m_asConfig.sourceSystemInformationBlockType1,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3362
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3363
              // Deserialize sourceSystemInformationBlockType2
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3364
              bIterator = DeserializeSystemInformationBlockType2 (&m_asConfig.sourceSystemInformationBlockType2,bIterator);
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3365
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3366
              // Deserialize antennaInfoCommon
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3367
              bIterator = DeserializeSequence (&bitset0,false,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3368
              bIterator = DeserializeEnum (4,&n,bIterator); // antennaPortsCount
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3369
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3370
              // Deserialize sourceDl-CarrierFreq
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3371
              bIterator = DeserializeInteger (&n,0,MAX_EARFCN,bIterator);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3372
              m_asConfig.sourceDlCarrierFreq = n;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3373
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3374
          if (handoverPrepInfoOpts[2])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3375
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3376
              // Deserialize rrm-Config
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3377
              // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3378
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3379
          if (handoverPrepInfoOpts[1])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3380
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3381
              // Deserialize as-Context
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3382
              // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3383
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3384
          if (handoverPrepInfoOpts[0])
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3385
            {
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3386
              // Deserialize nonCriticalExtension
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3387
              // ...
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3388
            }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3389
        }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3390
    }
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3391
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3392
  return GetSerializedSize ();
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3393
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3394
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3395
void
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3396
HandoverPreparationInfoHeader::Print (std::ostream &os) const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3397
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3398
  RrcAsn1Header::Print (os,m_asConfig.sourceRadioResourceConfig);
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3399
  os << "sourceUeIdentity: " << m_asConfig.sourceUeIdentity << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3400
  os << "dlBandwidth: " << (int)m_asConfig.sourceMasterInformationBlock.dlBandwidth << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3401
  os << "systemFrameNumber: " << (int)m_asConfig.sourceMasterInformationBlock.systemFrameNumber << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3402
  os << "plmnIdentityInfo.plmnIdentity: " << (int) m_asConfig.sourceSystemInformationBlockType1.cellAccessRelatedInfo.plmnIdentityInfo.plmnIdentity << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3403
  os << "cellAccessRelatedInfo.cellIdentity " << (int)m_asConfig.sourceSystemInformationBlockType1.cellAccessRelatedInfo.cellIdentity << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3404
  os << "cellAccessRelatedInfo.csgIndication: " << m_asConfig.sourceSystemInformationBlockType1.cellAccessRelatedInfo.csgIndication << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3405
  os << "cellAccessRelatedInfo.csgIdentity: " << (int)m_asConfig.sourceSystemInformationBlockType1.cellAccessRelatedInfo.csgIdentity << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3406
  os << "sourceDlCarrierFreq: " << m_asConfig.sourceDlCarrierFreq << std::endl;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3407
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3408
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3409
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3410
HandoverPreparationInfoHeader::SetMessage (LteRrcSap::HandoverPreparationInfo msg)
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3411
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3412
  m_asConfig = msg.asConfig;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3413
  m_isDataSerialized = false;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3414
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3415
9492
423e6d79b533 Remove RealHandoverPreparationInfoHeader and use HandoverPreparationInfoHeader instead
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9486
diff changeset
  3416
LteRrcSap::HandoverPreparationInfo
423e6d79b533 Remove RealHandoverPreparationInfoHeader and use HandoverPreparationInfoHeader instead
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9486
diff changeset
  3417
HandoverPreparationInfoHeader::GetMessage () const
423e6d79b533 Remove RealHandoverPreparationInfoHeader and use HandoverPreparationInfoHeader instead
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9486
diff changeset
  3418
{
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3419
  LteRrcSap::HandoverPreparationInfo msg;
9492
423e6d79b533 Remove RealHandoverPreparationInfoHeader and use HandoverPreparationInfoHeader instead
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9486
diff changeset
  3420
  msg.asConfig = m_asConfig;
423e6d79b533 Remove RealHandoverPreparationInfoHeader and use HandoverPreparationInfoHeader instead
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9486
diff changeset
  3421
423e6d79b533 Remove RealHandoverPreparationInfoHeader and use HandoverPreparationInfoHeader instead
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9486
diff changeset
  3422
  return msg;
423e6d79b533 Remove RealHandoverPreparationInfoHeader and use HandoverPreparationInfoHeader instead
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9486
diff changeset
  3423
}
423e6d79b533 Remove RealHandoverPreparationInfoHeader and use HandoverPreparationInfoHeader instead
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9486
diff changeset
  3424
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3425
LteRrcSap::AsConfig
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3426
HandoverPreparationInfoHeader::GetAsConfig () const
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3427
{
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3428
  return m_asConfig;
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3429
}
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3430
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3431
//////////////////// RrcConnectionReestablishmentRequestHeader class ////////////////////////
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3432
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3433
RrcConnectionReestablishmentRequestHeader::RrcConnectionReestablishmentRequestHeader ()
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3434
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3435
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3436
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3437
RrcConnectionReestablishmentRequestHeader::~RrcConnectionReestablishmentRequestHeader ()
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3438
{
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3439
}
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3440
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3441
void
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3442
RrcConnectionReestablishmentRequestHeader::PreSerialize () const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3443
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3444
  m_serializationResult = Buffer ();
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3445
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3446
  SerializeUlCcchMessage (0);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3447
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3448
  // Serialize RrcConnectionReestablishmentReques sequence:
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3449
  // no default or optional fields. Extension marker not present.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  3450
  SerializeSequence (std::bitset<0> (),false);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3451
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3452
  // Serialize criticalExtensions choice
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3453
  // chosen: rrcConnectionReestablishmentRequest-r8
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3454
  SerializeChoice (2,0,false);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3455
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3456
  // Serialize RRCConnectionReestablishmentRequest-r8-IEs sequence
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3457
  // no default or optional fields. Extension marker not present.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  3458
  SerializeSequence (std::bitset<0> (),false);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3459
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3460
  // Serialize ue-Identity
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  3461
  SerializeSequence (std::bitset<0> (),false);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3462
  // Serialize c-RNTI
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3463
  SerializeBitstring (std::bitset<16> (m_ueIdentity.cRnti));
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3464
  // Serialize physCellId
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3465
  SerializeInteger (m_ueIdentity.physCellId,0,503);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3466
  // Serialize shortMAC-I
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3467
  SerializeBitstring (std::bitset<16> (0));
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3468
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3469
  // Serialize ReestablishmentCause
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3470
  switch (m_reestablishmentCause)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3471
    {
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3472
    case LteRrcSap::RECONFIGURATION_FAILURE:
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3473
      SerializeEnum (4,0);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3474
      break;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3475
    case LteRrcSap::HANDOVER_FAILURE:
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3476
      SerializeEnum (4,1);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3477
      break;
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3478
    case LteRrcSap::OTHER_FAILURE:
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3479
      SerializeEnum (4,2);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3480
      break;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3481
    default:
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3482
      SerializeEnum (4,3);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3483
    }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3484
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3485
  // Serialize spare
9618
0ea7f5ea874a Fix rrc header code for optimized build
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9607
diff changeset
  3486
  SerializeBitstring (std::bitset<2> (0));
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3487
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3488
  // Finish serialization
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3489
  FinalizeSerialization ();
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3490
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3491
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3492
uint32_t
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3493
RrcConnectionReestablishmentRequestHeader::Deserialize (Buffer::Iterator bIterator)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3494
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3495
  std::bitset<0> bitset0;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3496
  int n;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3497
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3498
  bIterator = DeserializeUlCcchMessage (bIterator);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3499
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3500
  // Deserialize RrcConnectionReestablishmentRequest sequence
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3501
  // 0 optional fields, no extension marker
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3502
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3503
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3504
  // Deserialize criticalExtensions choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3505
  bIterator = DeserializeChoice (2,false,&n,bIterator);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3506
  if ( n == 1)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3507
    {
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3508
      // Deserialize criticalExtensionsFuture
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3509
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3510
    }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3511
  else if ( n == 0)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3512
    {
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3513
      // Deserialize RRCConnectionReestablishmentRequest-r8-IEs
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3514
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3515
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3516
      // Deserialize ReestabUE-Identity sequence
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3517
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3518
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3519
      // Deserialize c-RNTI
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3520
      std::bitset<16> cRnti;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3521
      bIterator = DeserializeBitstring (&cRnti,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3522
      m_ueIdentity.cRnti = cRnti.to_ulong ();
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3523
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3524
      // Deserialize physCellId
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3525
      int physCellId;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3526
      bIterator = DeserializeInteger (&physCellId,0,503,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3527
      m_ueIdentity.physCellId = physCellId;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3528
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3529
      // Deserialize shortMAC-I
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3530
      std::bitset<16> shortMacI;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3531
      bIterator = DeserializeBitstring (&shortMacI,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3532
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3533
      // Deserialize ReestablishmentCause
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3534
      int reestCs;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3535
      bIterator = DeserializeEnum (4,&reestCs,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3536
      switch (reestCs)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3537
        {
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3538
        case 0:
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3539
          m_reestablishmentCause = LteRrcSap::RECONFIGURATION_FAILURE;
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3540
          break;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3541
        case 1:
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3542
          m_reestablishmentCause = LteRrcSap::HANDOVER_FAILURE;
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3543
          break;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3544
        case 2:
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3545
          m_reestablishmentCause = LteRrcSap::OTHER_FAILURE;
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3546
          break;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3547
        case 3:
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3548
          break;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3549
        }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3550
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3551
      // Deserialize spare
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3552
      std::bitset<2> spare;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3553
      bIterator = DeserializeBitstring (&spare,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3554
    }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3555
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3556
  return GetSerializedSize ();
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3557
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3558
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3559
void
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3560
RrcConnectionReestablishmentRequestHeader::Print (std::ostream &os) const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3561
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3562
  os << "ueIdentity.cRnti: " << (int)m_ueIdentity.cRnti << std::endl;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3563
  os << "ueIdentity.physCellId: " << (int)m_ueIdentity.physCellId << std::endl;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3564
  os << "m_reestablishmentCause: " << m_reestablishmentCause << std::endl;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3565
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3566
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3567
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3568
RrcConnectionReestablishmentRequestHeader::SetMessage (LteRrcSap::RrcConnectionReestablishmentRequest msg)
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3569
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3570
  m_ueIdentity = msg.ueIdentity;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3571
  m_reestablishmentCause = msg.reestablishmentCause;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3572
  m_isDataSerialized = false;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3573
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3574
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3575
LteRrcSap::RrcConnectionReestablishmentRequest
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3576
RrcConnectionReestablishmentRequestHeader::GetMessage () const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3577
{
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3578
  LteRrcSap::RrcConnectionReestablishmentRequest msg;
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3579
  msg.ueIdentity = m_ueIdentity;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3580
  msg.reestablishmentCause = m_reestablishmentCause;
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3581
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3582
  return msg;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3583
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3584
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3585
LteRrcSap::ReestabUeIdentity
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3586
RrcConnectionReestablishmentRequestHeader::GetUeIdentity () const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3587
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3588
  return m_ueIdentity;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3589
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3590
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3591
LteRrcSap::ReestablishmentCause
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3592
RrcConnectionReestablishmentRequestHeader::GetReestablishmentCause () const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3593
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3594
  return m_reestablishmentCause;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3595
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3596
9482
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3597
//////////////////// RrcConnectionReestablishmentHeader class ////////////////////////
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3598
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3599
RrcConnectionReestablishmentHeader::RrcConnectionReestablishmentHeader ()
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3600
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3601
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3602
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3603
RrcConnectionReestablishmentHeader::~RrcConnectionReestablishmentHeader ()
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3604
{
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3605
}
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3606
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3607
void
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3608
RrcConnectionReestablishmentHeader::PreSerialize () const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3609
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3610
  m_serializationResult = Buffer ();
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3611
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3612
  SerializeDlCcchMessage (0);
9482
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3613
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3614
  // Serialize RrcConnectionReestablishment sequence:
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3615
  // no default or optional fields. Extension marker not present.
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3616
  SerializeSequence (std::bitset<0> (),false);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3617
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3618
  // Serialize rrc-TransactionIdentifier
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3619
  SerializeInteger (m_rrcTransactionIdentifier,0,3);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3620
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3621
  // Serialize criticalExtensions choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3622
  SerializeChoice (2,0,false);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3623
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3624
  // Serialize c1 choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3625
  SerializeChoice (8,0,false);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3626
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3627
  // Serialize RRCConnectionReestablishment-r8-IEs sequence
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3628
  // 1 optional field, no extension marker
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3629
  SerializeSequence (std::bitset<1> (0),false);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3630
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3631
  // Serialize radioResourceConfigDedicated
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3632
  SerializeRadioResourceConfigDedicated (m_radioResourceConfigDedicated);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3633
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3634
  // Serialize nextHopChainingCount
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3635
  SerializeInteger (0,0,7);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3636
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3637
  // Finish serialization
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3638
  FinalizeSerialization ();
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3639
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3640
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3641
uint32_t
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3642
RrcConnectionReestablishmentHeader::Deserialize (Buffer::Iterator bIterator)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3643
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3644
  std::bitset<0> bitset0;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3645
  int n;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3646
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3647
  bIterator = DeserializeDlCcchMessage (bIterator);
9482
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3648
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3649
  // Deserialize RrcConnectionReestablishment sequence
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3650
  // 0 optional fields, no extension marker
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3651
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3652
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3653
  // Deserialize rrc-TransactionIdentifier
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3654
  bIterator = DeserializeInteger (&n,0,3,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3655
  m_rrcTransactionIdentifier = n;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3656
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3657
  // Deserialize criticalExtensions choice
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3658
  int criticalExtensionsChoice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3659
  bIterator = DeserializeChoice (2,false,&criticalExtensionsChoice,bIterator);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3660
  if (criticalExtensionsChoice == 1)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3661
    {
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3662
      // Deserialize criticalExtensionsFuture
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3663
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3664
    }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3665
  else if (criticalExtensionsChoice == 0)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3666
    {
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3667
      // Deserialize c1
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3668
      int c1;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3669
      bIterator = DeserializeChoice (8,false,&c1,bIterator);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3670
      if (c1 > 0)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3671
        {
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3672
          bIterator = DeserializeNull (bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3673
        }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3674
      else if (c1 == 0)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3675
        {
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3676
          // Deserialize rrcConnectionReestablishment-r8
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3677
          // 1 optional field
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3678
          std::bitset<1> nonCriticalExtensionPresent;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3679
          bIterator = DeserializeSequence (&nonCriticalExtensionPresent,false,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3680
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3681
          // Deserialize RadioResourceConfigDedicated
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3682
          bIterator = DeserializeRadioResourceConfigDedicated (&m_radioResourceConfigDedicated,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3683
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3684
          // Deserialize nextHopChainingCount
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3685
          bIterator = DeserializeInteger (&n,0,7,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3686
        }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3687
    }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3688
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3689
  return GetSerializedSize ();
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3690
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3691
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3692
void
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3693
RrcConnectionReestablishmentHeader::Print (std::ostream &os) const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3694
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3695
  os << "rrcTransactionIdentifier: " << (int)m_rrcTransactionIdentifier << std::endl;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3696
  os << "RadioResourceConfigDedicated: " << std::endl;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3697
  RrcAsn1Header::Print (os,m_radioResourceConfigDedicated);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3698
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3699
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3700
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3701
RrcConnectionReestablishmentHeader::SetMessage (LteRrcSap::RrcConnectionReestablishment msg)
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3702
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3703
  m_rrcTransactionIdentifier = msg.rrcTransactionIdentifier;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3704
  m_radioResourceConfigDedicated = msg.radioResourceConfigDedicated;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3705
  m_isDataSerialized = false;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3706
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3707
9482
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3708
LteRrcSap::RrcConnectionReestablishment
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3709
RrcConnectionReestablishmentHeader::GetMessage () const
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3710
{
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3711
  LteRrcSap::RrcConnectionReestablishment msg;
9482
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3712
  msg.rrcTransactionIdentifier = m_rrcTransactionIdentifier;
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3713
  msg.radioResourceConfigDedicated = m_radioResourceConfigDedicated;
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3714
  return msg;
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3715
}
f9aafed2874a Implement real RrcConnectionSetup and RrcConnectionReestablishment. Also, associtate rrc header with their direction (UL/DL) and channel (CCCH / BCCH) used, so message type can be discriminated.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9481
diff changeset
  3716
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3717
uint8_t
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3718
RrcConnectionReestablishmentHeader::GetRrcTransactionIdentifier () const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3719
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3720
  return m_rrcTransactionIdentifier;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3721
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3722
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3723
LteRrcSap::RadioResourceConfigDedicated
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3724
RrcConnectionReestablishmentHeader::GetRadioResourceConfigDedicated () const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3725
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3726
  return m_radioResourceConfigDedicated;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3727
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3728
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3729
//////////////////// RrcConnectionReestablishmentCompleteHeader class ////////////////////////
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3730
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3731
RrcConnectionReestablishmentCompleteHeader::RrcConnectionReestablishmentCompleteHeader ()
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3732
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3733
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3734
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3735
void
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3736
RrcConnectionReestablishmentCompleteHeader::PreSerialize () const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3737
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3738
  m_serializationResult = Buffer ();
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3739
9471
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  3740
  // Serialize DCCH message
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3741
  SerializeUlDcchMessage (3);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3742
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3743
  // Serialize RrcConnectionReestablishmentComplete sequence:
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3744
  // no default or optional fields. Extension marker not present.
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3745
  SerializeSequence (std::bitset<0> (),false);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3746
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3747
  // Serialize rrc-TransactionIdentifier
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3748
  SerializeInteger (m_rrcTransactionIdentifier,0,3);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3749
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3750
  // Serialize criticalExtensions choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3751
  SerializeChoice (2,0,false);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3752
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3753
  // Serialize rrcConnectionReestablishmentComplete-r8 sequence
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3754
  // 1 optional field (not present), no extension marker.
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3755
  SerializeSequence (std::bitset<1> (0),false);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3756
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3757
  // Finish serialization
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3758
  FinalizeSerialization ();
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3759
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3760
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3761
uint32_t
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3762
RrcConnectionReestablishmentCompleteHeader::Deserialize (Buffer::Iterator bIterator)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3763
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3764
  std::bitset<0> bitset0;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3765
  int n;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3766
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3767
  bIterator = DeserializeUlDcchMessage (bIterator);
9471
082640d26eea Implement real DoSendRrcConnectionSetupCompleted
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9449
diff changeset
  3768
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3769
  // Deserialize RrcConnectionReestablishmentComplete sequence
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3770
  // 0 optional fields, no extension marker
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3771
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3772
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3773
  // Deserialize rrc-TransactionIdentifier
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3774
  bIterator = DeserializeInteger (&n,0,3,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3775
  m_rrcTransactionIdentifier = n;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3776
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3777
  // Deserialize criticalExtensions choice
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3778
  int criticalExtensionsChoice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3779
  bIterator = DeserializeChoice (2,false,&criticalExtensionsChoice,bIterator);
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3780
  if (criticalExtensionsChoice == 1)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3781
    {
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3782
      // Deserialize criticalExtensionsFuture
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3783
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3784
    }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3785
  else if (criticalExtensionsChoice == 0)
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3786
    {
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3787
      // Deserialize rrcConnectionReestablishmentComplete-r8
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3788
      std::bitset<1> opts;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3789
      bIterator = DeserializeSequence (&opts,false,bIterator);
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3790
      if (opts[0])
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3791
        {
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3792
          // Deserialize RRCConnectionReestablishmentComplete-v920-IEs
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3793
          // ...
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3794
        }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3795
    }
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3796
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3797
  return GetSerializedSize ();
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3798
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3799
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3800
void
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3801
RrcConnectionReestablishmentCompleteHeader::Print (std::ostream &os) const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3802
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3803
  os << "rrcTransactionIdentifier: " << (int)m_rrcTransactionIdentifier << std::endl;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3804
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3805
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3806
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3807
RrcConnectionReestablishmentCompleteHeader::SetMessage (LteRrcSap::RrcConnectionReestablishmentComplete msg)
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3808
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3809
  m_rrcTransactionIdentifier = msg.rrcTransactionIdentifier;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3810
  m_isDataSerialized = false;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3811
}
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3812
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3813
LteRrcSap::RrcConnectionReestablishmentComplete
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  3814
RrcConnectionReestablishmentCompleteHeader::GetMessage () const
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3815
{
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3816
  LteRrcSap::RrcConnectionReestablishmentComplete msg;
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3817
  msg.rrcTransactionIdentifier = m_rrcTransactionIdentifier;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3818
  return msg;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3819
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  3820
9449
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3821
uint8_t
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3822
RrcConnectionReestablishmentCompleteHeader::GetRrcTransactionIdentifier () const
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3823
{
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3824
  return m_rrcTransactionIdentifier;
740c5c3b8070 Rrc header: implementation of RrcConnectionReestablishment, RrcConnectionReestablishmentRequest, RrcConnectionReestablishmentComplete.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9443
diff changeset
  3825
}
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  3826
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3827
//////////////////// RrcConnectionReestablishmentRejectHeader class ////////////////////////
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3828
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3829
RrcConnectionReestablishmentRejectHeader::RrcConnectionReestablishmentRejectHeader ()
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3830
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3831
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3832
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3833
RrcConnectionReestablishmentRejectHeader::~RrcConnectionReestablishmentRejectHeader ()
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3834
{
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3835
}
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3836
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3837
void
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3838
RrcConnectionReestablishmentRejectHeader::PreSerialize () const
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3839
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3840
  m_serializationResult = Buffer ();
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3841
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3842
  // Serialize CCCH message
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3843
  SerializeDlCcchMessage (1);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3844
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3845
  // Serialize RrcConnectionReestablishmentReject sequence:
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3846
  // no default or optional fields. Extension marker not present.
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3847
  SerializeSequence (std::bitset<0> (),false);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3848
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3849
  // Serialize criticalExtensions choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3850
  SerializeChoice (2,0,false);
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3851
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3852
  // Serialize RRCConnectionReestablishmentReject-r8-IEs sequence
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3853
  // 1 optional field (not present), no extension marker.
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3854
  SerializeSequence (std::bitset<1> (0),false);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3855
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3856
  // Finish serialization
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3857
  FinalizeSerialization ();
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3858
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3859
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3860
uint32_t
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3861
RrcConnectionReestablishmentRejectHeader::Deserialize (Buffer::Iterator bIterator)
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3862
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3863
  std::bitset<0> bitset0;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3864
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3865
  bIterator = DeserializeDlCcchMessage (bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3866
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3867
  // Deserialize RrcConnectionReestablishmentReject sequence
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3868
  // 0 optional fields, no extension marker
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3869
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3870
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3871
  // Deserialize criticalExtensions choice
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3872
  int criticalExtensionsChoice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3873
  bIterator = DeserializeChoice (2,false,&criticalExtensionsChoice,bIterator);
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3874
  if (criticalExtensionsChoice == 1)
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3875
    {
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3876
      // Deserialize criticalExtensionsFuture
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3877
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3878
    }
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3879
  else if (criticalExtensionsChoice == 0)
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3880
    {
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3881
      // Deserialize rrcConnectionReestablishmentReject-r8
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3882
      std::bitset<1> opts;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3883
      bIterator = DeserializeSequence (&opts,false,bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3884
      if (opts[0])
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3885
        {
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3886
          // Deserialize RRCConnectionReestablishmentReject-v8a0-IEs
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3887
          // ...
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3888
        }
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3889
    }
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3890
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3891
  return GetSerializedSize ();
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3892
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3893
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3894
void
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3895
RrcConnectionReestablishmentRejectHeader::Print (std::ostream &os) const
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3896
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3897
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3898
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3899
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3900
RrcConnectionReestablishmentRejectHeader::SetMessage (LteRrcSap::RrcConnectionReestablishmentReject msg)
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3901
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3902
  m_rrcConnectionReestablishmentReject = msg;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3903
  m_isDataSerialized = false;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3904
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3905
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3906
LteRrcSap::RrcConnectionReestablishmentReject
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3907
RrcConnectionReestablishmentRejectHeader::GetMessage () const
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3908
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3909
  return m_rrcConnectionReestablishmentReject;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3910
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3911
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3912
//////////////////// RrcConnectionReleaseHeader class ////////////////////////
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3913
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3914
RrcConnectionReleaseHeader::RrcConnectionReleaseHeader ()
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3915
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3916
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3917
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3918
RrcConnectionReleaseHeader::~RrcConnectionReleaseHeader ()
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3919
{
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3920
}
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  3921
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3922
void
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3923
RrcConnectionReleaseHeader::PreSerialize () const
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3924
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3925
  m_serializationResult = Buffer ();
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3926
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3927
  // Serialize DCCH message
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3928
  SerializeDlDcchMessage (5);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3929
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3930
  // Serialize RrcConnectionRelease sequence:
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3931
  // no default or optional fields. Extension marker not present.
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3932
  SerializeSequence (std::bitset<0> (),false);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3933
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3934
  // Serialize rrc-TransactionIdentifier
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3935
  SerializeInteger (m_rrcConnectionRelease.rrcTransactionIdentifier,0,3);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3936
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3937
  // Serialize criticalExtensions choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3938
  SerializeChoice (2,0,false);
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3939
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3940
  // Serialize c1 choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3941
  SerializeChoice (4,0,false);
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3942
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3943
  // Serialize RRCConnectionRelease-r8-IEs sequence
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3944
  // 3 optional field (not present), no extension marker.
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3945
  SerializeSequence (std::bitset<3> (0),false);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3946
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3947
  // Serialize ReleaseCause
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3948
  SerializeEnum (4,1);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3949
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3950
  // Finish serialization
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3951
  FinalizeSerialization ();
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3952
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3953
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3954
uint32_t
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3955
RrcConnectionReleaseHeader::Deserialize (Buffer::Iterator bIterator)
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3956
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3957
  std::bitset<0> bitset0;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3958
  int n;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3959
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3960
  bIterator = DeserializeDlDcchMessage (bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3961
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3962
  // Deserialize RrcConnectionRelease sequence
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3963
  // 0 optional fields, no extension marker
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3964
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3965
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3966
  // Deserialize rrc-TransactionIdentifier
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3967
  bIterator = DeserializeInteger (&n,0,3,bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3968
  m_rrcConnectionRelease.rrcTransactionIdentifier = n;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3969
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3970
  // Deserialize criticalExtensions choice
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3971
  int criticalExtensionsChoice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3972
  bIterator = DeserializeChoice (2,false,&criticalExtensionsChoice,bIterator);
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3973
  if (criticalExtensionsChoice == 1)
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3974
    {
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3975
      // Deserialize criticalExtensionsFuture
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3976
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3977
    }
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3978
  else if (criticalExtensionsChoice == 0)
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3979
    {
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3980
      // Deserialize c1
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3981
      int c1Choice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  3982
      bIterator = DeserializeChoice (4,false,&c1Choice,bIterator);
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3983
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3984
      if (c1Choice == 0)
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3985
        {
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3986
          // Deserialize RRCConnectionRelease-r8-IEs
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3987
          std::bitset<3> opts;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3988
          bIterator = DeserializeSequence (&opts,false,bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3989
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3990
          // Deserialize releaseCause
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3991
          bIterator = DeserializeEnum (4,&n,bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3992
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3993
          if (opts[2])
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3994
            {
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3995
              // Deserialize redirectedCarrierInfo
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3996
              // ...
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3997
            }
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3998
          if (opts[1])
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  3999
            {
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4000
              // Deserialize idleModeMobilityControlInfo
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4001
              // ...
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4002
            }
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4003
          if (opts[0])
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4004
            {
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4005
              // Deserialize nonCriticalExtension
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4006
              // ...
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4007
            }
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4008
        }
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4009
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4010
      else
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4011
        {
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4012
          bIterator = DeserializeNull (bIterator);
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4013
        }
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4014
    }
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4015
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4016
  return GetSerializedSize ();
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4017
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4018
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4019
void
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4020
RrcConnectionReleaseHeader::Print (std::ostream &os) const
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4021
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4022
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4023
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4024
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4025
RrcConnectionReleaseHeader::SetMessage (LteRrcSap::RrcConnectionRelease msg)
9496
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4026
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4027
  m_rrcConnectionRelease = msg;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4028
  m_isDataSerialized = false;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4029
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4030
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4031
LteRrcSap::RrcConnectionRelease
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4032
RrcConnectionReleaseHeader::GetMessage () const
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4033
{
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4034
  return m_rrcConnectionRelease;
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4035
}
13b556ada9cb Implement RrcConnectionReestablishmentReject and RrcConnectionRelease in lte-rrc-header and lte-rrc-protocol-real.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9495
diff changeset
  4036
9509
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4037
//////////////////// RrcConnectionRejectHeader class ////////////////////////
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4038
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4039
RrcConnectionRejectHeader::RrcConnectionRejectHeader ()
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4040
{
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4041
}
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4042
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4043
RrcConnectionRejectHeader::~RrcConnectionRejectHeader ()
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4044
{
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4045
}
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4046
9509
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4047
void
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4048
RrcConnectionRejectHeader::PreSerialize () const
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4049
{
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4050
  m_serializationResult = Buffer ();
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4051
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4052
  // Serialize CCCH message
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4053
  SerializeDlCcchMessage (2);
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4054
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4055
  // Serialize RrcConnectionReject sequence:
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4056
  // no default or optional fields. Extension marker not present.
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4057
  SerializeSequence (std::bitset<0> (),false);
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4058
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4059
  // Serialize criticalExtensions choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4060
  SerializeChoice (2,0,false);
9509
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4061
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4062
  // Serialize c1 choice
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4063
  SerializeChoice (4,0,false);
9574
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4064
9509
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4065
  // Serialize rrcConnectionReject-r8 sequence
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4066
  // 1 optional field (not present), no extension marker.
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4067
  SerializeSequence (std::bitset<1> (0),false);
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4068
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4069
  // Serialize waitTime
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4070
  SerializeInteger (m_rrcConnectionReject.waitTime, 1, 16);
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4071
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4072
  // Finish serialization
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4073
  FinalizeSerialization ();
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4074
}
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4075
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4076
uint32_t
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4077
RrcConnectionRejectHeader::Deserialize (Buffer::Iterator bIterator)
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4078
{
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4079
  std::bitset<0> bitset0;
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4080
  int n;
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4081
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4082
  bIterator = DeserializeDlCcchMessage (bIterator);
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4083
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4084
  // Deserialize RrcConnectionReject sequence
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4085
  // 0 optional fields, no extension marker
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4086
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4087
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4088
  // Deserialize criticalExtensions choice
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4089
  int criticalExtensionsChoice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4090
  bIterator = DeserializeChoice (2,false,&criticalExtensionsChoice,bIterator);
9509
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4091
  if (criticalExtensionsChoice == 1)
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4092
    {
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4093
      // Deserialize criticalExtensionsFuture
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4094
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4095
    }
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4096
  else if (criticalExtensionsChoice == 0)
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4097
    {
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4098
      // Deserialize c1 choice
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4099
      int c1Choice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4100
      bIterator = DeserializeChoice (4,false,&c1Choice,bIterator);
9509
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4101
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4102
      if (c1Choice > 0)
9574
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4103
        {
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4104
          bIterator = DeserializeNull (bIterator);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4105
        }
9509
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4106
      else if (c1Choice == 0)
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4107
        {
9574
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4108
          // Deserialize rrcConnectionReject-r8
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4109
          std::bitset<1> opts;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4110
          bIterator = DeserializeSequence (&opts,false,bIterator);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4111
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4112
          bIterator = DeserializeInteger (&n,1,16,bIterator);
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4113
          m_rrcConnectionReject.waitTime = n;
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4114
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4115
          if (opts[0])
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4116
            {
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4117
              // Deserialize RRCConnectionReject-v8a0-IEs
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4118
              // ...
fe96499dc62a Ns-3 formatting...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9573
diff changeset
  4119
            }
9509
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4120
        }
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4121
    }
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4122
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4123
  return GetSerializedSize ();
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4124
}
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4125
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4126
void
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4127
RrcConnectionRejectHeader::Print (std::ostream &os) const
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4128
{
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4129
  os << "wait time: " << (int)m_rrcConnectionReject.waitTime << std::endl;
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4130
}
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4131
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4132
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4133
RrcConnectionRejectHeader::SetMessage (LteRrcSap::RrcConnectionReject msg)
9509
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4134
{
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4135
  m_rrcConnectionReject = msg;
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4136
  m_isDataSerialized = false;
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4137
}
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4138
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4139
LteRrcSap::RrcConnectionReject
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4140
RrcConnectionRejectHeader::GetMessage () const
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4141
{
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4142
  return m_rrcConnectionReject;
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4143
}
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4144
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4145
//////////////////// MeasurementReportHeader class ////////////////////////
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4146
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4147
MeasurementReportHeader::MeasurementReportHeader ()
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4148
{
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4149
}
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4150
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4151
MeasurementReportHeader::~MeasurementReportHeader ()
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4152
{
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4153
}
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4154
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4155
void
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4156
MeasurementReportHeader::PreSerialize () const
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4157
{
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4158
  m_serializationResult = Buffer ();
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4159
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4160
  // Serialize DCCH message
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4161
  SerializeUlDcchMessage (1);
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4162
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4163
  // Serialize MeasurementReport sequence:
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4164
  // no default or optional fields. Extension marker not present.
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4165
  SerializeSequence (std::bitset<0> (),false);
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4166
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4167
  // Serialize criticalExtensions choice:
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4168
  // c1 chosen
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4169
  SerializeChoice (2,0,false);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4170
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4171
  // Serialize c1 choice
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4172
  // measurementReport-r8 chosen
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4173
  SerializeChoice (8,0,false);
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4174
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4175
  // Serialize MeasurementReport-r8-IEs sequence:
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4176
  // 1 optional fields, not present. Extension marker not present.
9618
0ea7f5ea874a Fix rrc header code for optimized build
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9607
diff changeset
  4177
  SerializeSequence (std::bitset<1> (0),false);
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4178
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4179
  // Serialize measResults
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4180
  SerializeMeasResults (m_measurementReport.measResults);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4181
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4182
  // Finish serialization
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4183
  FinalizeSerialization ();
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4184
}
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4185
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4186
uint32_t
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4187
MeasurementReportHeader::Deserialize (Buffer::Iterator bIterator)
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4188
{
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4189
  std::bitset<0> bitset0;
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4190
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4191
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4192
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4193
  bIterator = DeserializeUlDcchMessage (bIterator);
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4194
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4195
  int criticalExtensionsChoice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4196
  bIterator = DeserializeChoice (2,false,&criticalExtensionsChoice,bIterator);
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4197
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4198
  if (criticalExtensionsChoice == 1)
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4199
    {
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4200
      // Deserialize criticalExtensionsFuture
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4201
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4202
    }
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4203
  else if (criticalExtensionsChoice == 0)
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4204
    {
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4205
      // Deserialize c1
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4206
      int c1Choice;
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4207
      bIterator = DeserializeChoice (8,false,&c1Choice,bIterator);
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4208
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4209
      if (c1Choice > 0)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4210
        {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4211
          bIterator = DeserializeNull (bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4212
        }
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4213
      else
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4214
        {
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4215
          // Deserialize measurementReport-r8
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4216
          std::bitset<1> isNonCriticalExtensionPresent;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4217
          bIterator = DeserializeSequence (&isNonCriticalExtensionPresent,false,bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4218
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4219
          // Deserialize measResults
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4220
          bIterator = DeserializeMeasResults (&m_measurementReport.measResults, bIterator);
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4221
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4222
          if (isNonCriticalExtensionPresent[0])
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4223
            {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4224
              // Deserialize nonCriticalExtension MeasurementReport-v8a0-IEs
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4225
              // ...
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4226
            }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4227
9602
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4228
        }
d3f5d483eb15 Serialize RRC MeasResults IE
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9601
diff changeset
  4229
    }
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4230
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4231
  return GetSerializedSize ();
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4232
}
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4233
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4234
void
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4235
MeasurementReportHeader::Print (std::ostream &os) const
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4236
{
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  4237
  os << "measId = " << (int)m_measurementReport.measResults.measId << std::endl;
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  4238
  os << "rsrpResult = " << (int)m_measurementReport.measResults.rsrpResult << std::endl;
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  4239
  os << "rsrqResult = " << (int)m_measurementReport.measResults.rsrqResult << std::endl;
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  4240
  os << "haveMeasResultNeighCells = " << (int)m_measurementReport.measResults.haveMeasResultNeighCells << std::endl;
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4241
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4242
  if (m_measurementReport.measResults.haveMeasResultNeighCells)
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  4243
    {
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4244
      std::list<LteRrcSap::MeasResultEutra> measResultListEutra = m_measurementReport.measResults.measResultListEutra;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4245
      std::list<LteRrcSap::MeasResultEutra>::iterator it = measResultListEutra.begin ();
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4246
      for (; it != measResultListEutra.end (); it++)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4247
        {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4248
          os << "   physCellId =" << (int) it->physCellId << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4249
          os << "   haveCgiInfo =" << it->haveCgiInfo << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4250
          if (it->haveCgiInfo)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4251
            {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4252
              os << "      plmnIdentity = " << (int) it->cgiInfo.plmnIdentity << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4253
              os << "      cellIdentity = " << (int) it->cgiInfo.cellIdentity << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4254
              os << "      trackingAreaCode = " << (int) it->cgiInfo.trackingAreaCode << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4255
              os << "      havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty () << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4256
              if (!it->cgiInfo.plmnIdentityList.empty ())
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4257
                {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4258
                  for (std::list<uint32_t>::iterator it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.begin (); it2++)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4259
                    {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4260
                      os << "         plmnId : " << *it2 << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4261
                    }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4262
                }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4263
            }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4264
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4265
          os << "   haveRsrpResult =" << it->haveRsrpResult << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4266
          if (it->haveRsrpResult)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4267
            {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4268
              os << "   rsrpResult =" << (int) it->rsrpResult << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4269
            }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4270
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4271
          os << "   haveRsrqResult =" << it->haveRsrqResult << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4272
          if (it->haveRsrqResult)
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4273
            {
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4274
              os << "   rsrqResult =" << (int) it->rsrqResult << std::endl;
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4275
            }
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4276
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4277
        }
9607
043f6a91bace Serialization/Deserialization function for measResults
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9602
diff changeset
  4278
    }
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4279
}
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4280
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4281
void
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4282
MeasurementReportHeader::SetMessage (LteRrcSap::MeasurementReport msg)
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4283
{
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4284
  m_measurementReport = msg;
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4285
  m_isDataSerialized = false;
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4286
}
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4287
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4288
LteRrcSap::MeasurementReport
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4289
MeasurementReportHeader::GetMessage () const
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4290
{
9647
392b69275b78 Implement Nicola's review comments
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9645
diff changeset
  4291
  LteRrcSap::MeasurementReport msg;
9601
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4292
  msg = m_measurementReport;
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4293
  return msg;
869b6ed3ad40 Add MeasurementReport to Send/Rcv functions in real and ideal protocol.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9595
diff changeset
  4294
}
9509
4c25580103bd Add structure and rrc headers for RrcConnectionReject.
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9508
diff changeset
  4295
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4296
///////////////////  RrcUlDcchMessage //////////////////////////////////
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4297
RrcUlDcchMessage::RrcUlDcchMessage () : RrcAsn1Header ()
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4298
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4299
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4300
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4301
RrcUlDcchMessage::~RrcUlDcchMessage ()
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4302
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4303
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4304
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4305
uint32_t
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4306
RrcUlDcchMessage::Deserialize (Buffer::Iterator bIterator)
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4307
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4308
  DeserializeUlDcchMessage (bIterator);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4309
  return 1;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4310
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4311
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4312
void
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4313
RrcUlDcchMessage::Print (std::ostream &os) const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4314
{
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4315
  std::cout << "UL DCCH MSG TYPE: " << m_messageType << std::endl;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4316
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4317
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4318
void
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4319
RrcUlDcchMessage::PreSerialize () const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4320
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4321
  SerializeUlDcchMessage (m_messageType);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4322
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4323
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4324
Buffer::Iterator
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4325
RrcUlDcchMessage::DeserializeUlDcchMessage (Buffer::Iterator bIterator)
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4326
{
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4327
  std::bitset<0> bitset0;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4328
  int n;
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4329
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4330
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4331
  bIterator = DeserializeChoice (2,false,&n,bIterator);
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4332
  if (n == 1)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4333
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4334
      // Deserialize messageClassExtension
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4335
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4336
      m_messageType = -1;
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4337
    }
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4338
  else if (n == 0)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4339
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4340
      // Deserialize c1
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4341
      bIterator = DeserializeChoice (16,false,&m_messageType,bIterator);
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4342
    }
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4343
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4344
  return bIterator;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4345
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4346
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4347
void
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4348
RrcUlDcchMessage::SerializeUlDcchMessage (int messageType) const
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4349
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4350
  SerializeSequence (std::bitset<0> (),false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4351
  // Choose c1
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4352
  SerializeChoice (2,0,false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4353
  // Choose message type
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4354
  SerializeChoice (16,messageType,false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4355
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4356
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4357
///////////////////  RrcDlDcchMessage //////////////////////////////////
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4358
RrcDlDcchMessage::RrcDlDcchMessage () : RrcAsn1Header ()
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4359
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4360
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4361
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4362
RrcDlDcchMessage::~RrcDlDcchMessage ()
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4363
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4364
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4365
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4366
uint32_t
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4367
RrcDlDcchMessage::Deserialize (Buffer::Iterator bIterator)
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4368
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4369
  DeserializeDlDcchMessage (bIterator);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4370
  return 1;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4371
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4372
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4373
void
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4374
RrcDlDcchMessage::Print (std::ostream &os) const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4375
{
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4376
  std::cout << "DL DCCH MSG TYPE: " << m_messageType << std::endl;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4377
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4378
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4379
void
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4380
RrcDlDcchMessage::PreSerialize () const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4381
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4382
  SerializeDlDcchMessage (m_messageType);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4383
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4384
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4385
Buffer::Iterator
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4386
RrcDlDcchMessage::DeserializeDlDcchMessage (Buffer::Iterator bIterator)
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4387
{
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4388
  std::bitset<0> bitset0;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4389
  int n;
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4390
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4391
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4392
  bIterator = DeserializeChoice (2,false,&n,bIterator);
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4393
  if (n == 1)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4394
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4395
      // Deserialize messageClassExtension
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4396
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4397
      m_messageType = -1;
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4398
    }
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4399
  else if (n == 0)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4400
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4401
      // Deserialize c1
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4402
      bIterator = DeserializeChoice (16,false,&m_messageType,bIterator);
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4403
    }
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4404
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4405
  return bIterator;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4406
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4407
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4408
void
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4409
RrcDlDcchMessage::SerializeDlDcchMessage (int messageType) const
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4410
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4411
  SerializeSequence (std::bitset<0> (),false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4412
  // Choose c1
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4413
  SerializeChoice (2,0,false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4414
  // Choose message type
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4415
  SerializeChoice (16,messageType,false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4416
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4417
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4418
///////////////////  RrcUlCcchMessage //////////////////////////////////
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4419
RrcUlCcchMessage::RrcUlCcchMessage () : RrcAsn1Header ()
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4420
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4421
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4422
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4423
RrcUlCcchMessage::~RrcUlCcchMessage ()
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4424
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4425
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4426
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4427
uint32_t
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4428
RrcUlCcchMessage::Deserialize (Buffer::Iterator bIterator)
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4429
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4430
  DeserializeUlCcchMessage (bIterator);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4431
  return 1;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4432
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4433
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4434
void
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4435
RrcUlCcchMessage::Print (std::ostream &os) const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4436
{
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4437
  std::cout << "UL CCCH MSG TYPE: " << m_messageType << std::endl;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4438
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4439
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4440
void
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4441
RrcUlCcchMessage::PreSerialize () const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4442
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4443
  SerializeUlCcchMessage (m_messageType);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4444
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4445
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4446
Buffer::Iterator
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4447
RrcUlCcchMessage::DeserializeUlCcchMessage (Buffer::Iterator bIterator)
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4448
{
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4449
  std::bitset<0> bitset0;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4450
  int n;
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4451
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4452
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4453
  bIterator = DeserializeChoice (2,false,&n,bIterator);
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4454
  if (n == 1)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4455
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4456
      // Deserialize messageClassExtension
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4457
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4458
      m_messageType = -1;
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4459
    }
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4460
  else if (n == 0)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4461
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4462
      // Deserialize c1
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4463
      bIterator = DeserializeChoice (2,false,&m_messageType,bIterator);
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4464
    }
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4465
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4466
  return bIterator;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4467
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4468
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4469
void
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4470
RrcUlCcchMessage::SerializeUlCcchMessage (int messageType) const
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4471
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4472
  SerializeSequence (std::bitset<0> (),false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4473
  // Choose c1
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4474
  SerializeChoice (2,0,false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4475
  // Choose message type
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4476
  SerializeChoice (2,messageType,false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4477
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4478
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4479
///////////////////  RrcDlCcchMessage //////////////////////////////////
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4480
RrcDlCcchMessage::RrcDlCcchMessage () : RrcAsn1Header ()
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4481
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4482
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4483
9648
204d43e200d6 Oxygen documentation of lte-rrc-header.h, implementation of some extra RRC IE's
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9647
diff changeset
  4484
RrcDlCcchMessage::~RrcDlCcchMessage ()
9645
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4485
{
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4486
}
d400090c2f23 From "new" to "Create"...
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9618
diff changeset
  4487
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4488
uint32_t
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4489
RrcDlCcchMessage::Deserialize (Buffer::Iterator bIterator)
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4490
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4491
  DeserializeDlCcchMessage (bIterator);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4492
  return 1;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4493
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4494
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4495
void
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4496
RrcDlCcchMessage::Print (std::ostream &os) const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4497
{
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4498
  std::cout << "DL CCCH MSG TYPE: " << m_messageType << std::endl;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4499
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4500
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4501
void
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4502
RrcDlCcchMessage::PreSerialize () const
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4503
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4504
  SerializeDlCcchMessage (m_messageType);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4505
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4506
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4507
Buffer::Iterator
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4508
RrcDlCcchMessage::DeserializeDlCcchMessage (Buffer::Iterator bIterator)
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4509
{
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4510
  std::bitset<0> bitset0;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4511
  int n;
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4512
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4513
  bIterator = DeserializeSequence (&bitset0,false,bIterator);
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4514
  bIterator = DeserializeChoice (2,false,&n,bIterator);
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4515
  if (n == 1)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4516
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4517
      // Deserialize messageClassExtension
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4518
      bIterator = DeserializeSequence (&bitset0,false,bIterator);
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4519
      m_messageType = -1;
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4520
    }
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4521
  else if (n == 0)
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4522
    {
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4523
      // Deserialize c1
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4524
      bIterator = DeserializeChoice (4,false,&m_messageType,bIterator);
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4525
    }
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4526
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4527
  return bIterator;
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4528
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4529
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4530
void
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4531
RrcDlCcchMessage::SerializeDlCcchMessage (int messageType) const
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4532
{
9495
f8395c64d912 Ns3 formatting
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9492
diff changeset
  4533
  SerializeSequence (std::bitset<0> (),false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4534
  // Choose c1
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4535
  SerializeChoice (2,0,false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4536
  // Choose message type
9650
9b70351a32b3 Add extension marker flag to Serialize/Deserialize Choice
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9648
diff changeset
  4537
  SerializeChoice (4,messageType,false);
9481
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4538
}
b828554155ff Real implementation of ReestablishmentRequest, ReconfigurationCompleteHeader and ReestablishmentComplete
Lluis Parcerisa <parcerisa@gmail.com>
parents: 9471
diff changeset
  4539
9443
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  4540
} // namespace ns3
33e358d8d64d Development of RRC headers based on the RRC SAP
Lluis Parcerisa <parcerisa@gmail.com>
parents:
diff changeset
  4541