src/lte/model/epc-s11-sap.h
author Gaurav Sathe <gaurav.sathe@tcs.com>
Thu, 27 Nov 2014 16:01:05 +0100
changeset 11168 d09129217e78
parent 10425 1867d8c25aa7
permissions -rw-r--r--
added release bearer functionality
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     2
/*
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     3
 * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     4
 *
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     8
 *
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    12
 * GNU General Public License for more details.
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    13
 *
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    17
 *
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    18
 * Author: Nicola Baldo <nbaldo@cttc.cat>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    19
 */
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    20
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    21
#ifndef EPC_S11_SAP_H
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    22
#define EPC_S11_SAP_H
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    23
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    24
#include <ns3/address.h>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    25
#include <ns3/ptr.h>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    26
#include <ns3/object.h>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    27
#include <ns3/eps-bearer.h>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    28
#include <ns3/epc-tft.h>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    29
#include <list>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    30
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    31
namespace ns3 {
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    32
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    33
class EpcS11Sap
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    34
{
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    35
public:
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    36
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    37
  virtual ~EpcS11Sap ();
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    38
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    39
  struct GtpcMessage
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    40
  {
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    41
    uint32_t teid;
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    42
  };
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    43
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    44
  /**
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    45
   * Fully-qualified TEID, see 3GPP TS 29.274 section 8.22
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    46
   * 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    47
   */
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    48
  struct Fteid 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    49
  {
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    50
    uint32_t teid;
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    51
    Ipv4Address address;
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    52
  };
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    53
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    54
  /**
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    55
   * TS 29.274 8.21  User Location Information (ULI)
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    56
   * 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    57
   */
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    58
  struct Uli
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    59
  {
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    60
    uint16_t gci;
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    61
  };
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    62
  
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    63
 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    64
};
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    65
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    66
/**
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    67
 * \ingroup lte
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    68
 *
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    69
 * MME side of the S11 Service Access Point (SAP), provides the MME
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    70
 * methods to be called when an S11 message is received by the MME. 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    71
 */
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    72
class EpcS11SapMme : public EpcS11Sap
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    73
{
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    74
public:
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    75
  
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    76
 /**
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    77
   * 3GPP TS 29.274 version 8.3.1 Release 8 section 8.28
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    78
   * 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    79
   */
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    80
  struct BearerContextCreated
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    81
  {
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    82
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    83
    EpcS11Sap::Fteid sgwFteid;
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    84
    uint8_t epsBearerId; 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    85
    EpsBearer bearerLevelQos; 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    86
    Ptr<EpcTft> tft;
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    87
  };
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
    88
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    89
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    90
  /**     
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    91
   * Create Session Response message, see 3GPP TS 29.274 7.2.2
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    92
   */
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    93
  struct CreateSessionResponseMessage : public GtpcMessage
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    94
  {
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    95
    std::list<BearerContextCreated> bearerContextsCreated;
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    96
  };
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    97
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    98
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    99
  /** 
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   100
   * send a Create Session Response message
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   101
   * 
10425
1867d8c25aa7 doxygen warnings for lte module
Budiarto Herman <budiarto.herman@magister.fi>
parents: 9439
diff changeset
   102
   * \param msg the message
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   103
   */
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   104
  virtual void CreateSessionResponse (CreateSessionResponseMessage msg) = 0;
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   105
11168
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   106
  struct BearerContextRemoved
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   107
  {
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   108
    uint8_t epsBearerId;
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   109
  };
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   110
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   111
  /**
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   112
   * Delete Bearer Request message, see 3GPP TS 29.274 Release 9 V9.3.0 section 7.2.9.2
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   113
   */
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   114
  struct DeleteBearerRequestMessage : public GtpcMessage
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   115
  {
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   116
    std::list<BearerContextRemoved> bearerContextsRemoved;
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   117
  };
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   118
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   119
  /**
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   120
    * \brief As per 3GPP TS 29.274 Release 9 V9.3.0, a Delete Bearer Request message shall be sent on the S11 interface by PGW to SGW and from SGW to MME
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   121
    * \param msg the message
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   122
    */
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   123
  virtual void DeleteBearerRequest (DeleteBearerRequestMessage msg) = 0;
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   124
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   125
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   126
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   127
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   128
  /**     
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   129
   * Modify Bearer Response message, see 3GPP TS 29.274 7.2.7
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   130
   */
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   131
  struct ModifyBearerResponseMessage : public GtpcMessage
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   132
  {
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   133
    enum Cause {
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   134
      REQUEST_ACCEPTED = 0,
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   135
      REQUEST_ACCEPTED_PARTIALLY,
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   136
      REQUEST_REJECTED,
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   137
      CONTEXT_NOT_FOUND
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   138
    } cause;
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   139
  };
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   140
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   141
  /** 
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   142
   * send a Modify Bearer Response message
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   143
   * 
10425
1867d8c25aa7 doxygen warnings for lte module
Budiarto Herman <budiarto.herman@magister.fi>
parents: 9439
diff changeset
   144
   * \param msg the message
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   145
   */
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   146
  virtual void ModifyBearerResponse (ModifyBearerResponseMessage msg) = 0;
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   147
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   148
};
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   149
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   150
/**
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   151
 * \ingroup lte
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   152
 *
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   153
 * SGW side of the S11 Service Access Point (SAP), provides the SGW
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   154
 * methods to be called when an S11 message is received by the SGW. 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   155
 */
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   156
class EpcS11SapSgw : public EpcS11Sap
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   157
{
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   158
public:
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   159
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   160
  struct BearerContextToBeCreated
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   161
  {    
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   162
    EpcS11Sap::Fteid sgwFteid;
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   163
    uint8_t epsBearerId; 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   164
    EpsBearer bearerLevelQos; 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   165
    Ptr<EpcTft> tft;
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   166
  };
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   167
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   168
  
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   169
  /**     
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   170
   * Create Session Request message, see 3GPP TS 29.274 7.2.1
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   171
   */
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   172
  struct CreateSessionRequestMessage : public GtpcMessage
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   173
  {
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   174
    uint64_t imsi; 
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   175
    Uli uli; 
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   176
    std::list<BearerContextToBeCreated> bearerContextsToBeCreated;    
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   177
  };
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   178
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   179
  /** 
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   180
   * send a Create Session Request message
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   181
   * 
10425
1867d8c25aa7 doxygen warnings for lte module
Budiarto Herman <budiarto.herman@magister.fi>
parents: 9439
diff changeset
   182
   * \param msg the message
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   183
   */
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   184
  virtual void CreateSessionRequest (CreateSessionRequestMessage msg) = 0;
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   185
11168
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   186
  struct BearerContextToBeRemoved
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   187
  {
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   188
    uint8_t epsBearerId;
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   189
  };
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   190
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   191
  /**
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   192
   * Delete Bearer Command message, see 3GPP TS 29.274 Release 9 V9.3.0 section 7.2.17.1
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   193
   */
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   194
  struct DeleteBearerCommandMessage : public GtpcMessage
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   195
  {
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   196
    std::list<BearerContextToBeRemoved> bearerContextsToBeRemoved;
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   197
  };
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   198
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   199
  /**
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   200
    * \brief As per 3GPP TS 29.274 Release 9 V9.3.0, a Delete Bearer Command message shall be sent on the S11 interface by the MME to the SGW
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   201
    */
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   202
  virtual void DeleteBearerCommand (DeleteBearerCommandMessage msg) = 0;
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   203
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   204
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   205
  struct BearerContextRemovedSgwPgw
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   206
  {
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   207
    uint8_t epsBearerId;
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   208
  };
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   209
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   210
  /**
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   211
   * Delete Bearer Response message, see 3GPP TS 29.274 Release 9 V9.3.0 section 7.2.10.2
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   212
   */
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   213
  struct DeleteBearerResponseMessage : public GtpcMessage
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   214
  {
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   215
    std::list<BearerContextRemovedSgwPgw> bearerContextsRemoved;
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   216
  };
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   217
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   218
  /**
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   219
    * \brief As per 3GPP TS 29.274 Release 9 V9.3.0, a Delete Bearer Command message shall be sent on the S11 interface by the MME to the SGW
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   220
    * \param msg the message
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   221
    */
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   222
  virtual void DeleteBearerResponse (DeleteBearerResponseMessage msg) = 0;
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   223
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   224
  /**     
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   225
   * Modify Bearer Request message, see 3GPP TS 29.274 7.2.7
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   226
   */
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   227
  struct ModifyBearerRequestMessage : public GtpcMessage
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   228
  {
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   229
    Uli uli;
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   230
  };
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   231
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   232
  /** 
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   233
   * send a Modify Bearer Request message
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   234
   * 
10425
1867d8c25aa7 doxygen warnings for lte module
Budiarto Herman <budiarto.herman@magister.fi>
parents: 9439
diff changeset
   235
   * \param msg the message
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   236
   */
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   237
  virtual void ModifyBearerRequest (ModifyBearerRequestMessage msg) = 0;
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   238
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   239
};
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   240
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   241
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   242
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   243
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   244
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   245
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   246
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   247
/**
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   248
 * Template for the implementation of the EpcS11SapMme as a member
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   249
 * of an owner class of type C to which all methods are forwarded
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   250
 * 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   251
 */
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   252
template <class C>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   253
class MemberEpcS11SapMme : public EpcS11SapMme
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   254
{
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   255
public:
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   256
  MemberEpcS11SapMme (C* owner);
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   257
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   258
  // inherited from EpcS11SapMme
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   259
  virtual void CreateSessionResponse (CreateSessionResponseMessage msg);
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   260
  virtual void ModifyBearerResponse (ModifyBearerResponseMessage msg);
11168
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   261
  virtual void DeleteBearerRequest (DeleteBearerRequestMessage msg);
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   262
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   263
private:
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   264
  MemberEpcS11SapMme ();
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   265
  C* m_owner;
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   266
};
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   267
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   268
template <class C>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   269
MemberEpcS11SapMme<C>::MemberEpcS11SapMme (C* owner)
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   270
  : m_owner (owner)
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   271
{
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   272
}
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   273
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   274
template <class C>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   275
MemberEpcS11SapMme<C>::MemberEpcS11SapMme ()
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   276
{
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   277
}
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   278
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   279
template <class C>
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   280
void MemberEpcS11SapMme<C>::CreateSessionResponse (CreateSessionResponseMessage msg)
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   281
{
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   282
  m_owner->DoCreateSessionResponse (msg);
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   283
}
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   284
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   285
template <class C>
11168
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   286
void MemberEpcS11SapMme<C>::DeleteBearerRequest (DeleteBearerRequestMessage msg)
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   287
{
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   288
  m_owner->DoDeleteBearerRequest (msg);
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   289
}
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   290
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   291
template <class C>
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   292
void MemberEpcS11SapMme<C>::ModifyBearerResponse (ModifyBearerResponseMessage msg)
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   293
{
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   294
  m_owner->DoModifyBearerResponse (msg);
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   295
}
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   296
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   297
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   298
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   299
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   300
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   301
/**
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   302
 * Template for the implementation of the EpcS11SapSgw as a member
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   303
 * of an owner class of type C to which all methods are forwarded
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   304
 * 
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   305
 */
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   306
template <class C>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   307
class MemberEpcS11SapSgw : public EpcS11SapSgw
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   308
{
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   309
public:
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   310
  MemberEpcS11SapSgw (C* owner);
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   311
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   312
  // inherited from EpcS11SapSgw
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   313
  virtual void CreateSessionRequest (CreateSessionRequestMessage msg);
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   314
  virtual void ModifyBearerRequest (ModifyBearerRequestMessage msg);
11168
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   315
  virtual void DeleteBearerCommand (DeleteBearerCommandMessage msg);
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   316
  virtual void DeleteBearerResponse (DeleteBearerResponseMessage msg);
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   317
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   318
private:
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   319
  MemberEpcS11SapSgw ();
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   320
  C* m_owner;
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   321
};
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   322
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   323
template <class C>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   324
MemberEpcS11SapSgw<C>::MemberEpcS11SapSgw (C* owner)
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   325
  : m_owner (owner)
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   326
{
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   327
}
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   328
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   329
template <class C>
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   330
MemberEpcS11SapSgw<C>::MemberEpcS11SapSgw ()
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   331
{
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   332
}
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   333
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   334
template <class C>
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   335
void MemberEpcS11SapSgw<C>::CreateSessionRequest (CreateSessionRequestMessage msg)
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   336
{
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   337
  m_owner->DoCreateSessionRequest (msg);
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   338
}
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   339
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   340
template <class C>
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   341
void MemberEpcS11SapSgw<C>::ModifyBearerRequest (ModifyBearerRequestMessage msg)
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   342
{
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   343
  m_owner->DoModifyBearerRequest (msg);
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   344
}
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   345
11168
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   346
template <class C>
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   347
void MemberEpcS11SapSgw<C>::DeleteBearerCommand (DeleteBearerCommandMessage msg)
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   348
{
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   349
  m_owner->DoDeleteBearerCommand (msg);
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   350
}
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   351
11168
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   352
template <class C>
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   353
void MemberEpcS11SapSgw<C>::DeleteBearerResponse (DeleteBearerResponseMessage msg)
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   354
{
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   355
  m_owner->DoDeleteBearerResponse (msg);
d09129217e78 added release bearer functionality
Gaurav Sathe <gaurav.sathe@tcs.com>
parents: 10425
diff changeset
   356
}
9430
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   357
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   358
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   359
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   360
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   361
} //namespace ns3
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   362
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   363
#endif /* EPC_S11_SAP_H */
e8b87593ee5b added MME with simulated S1AP and S11 interfaces
Nicola Baldo <nbaldo@cttc.es>
parents:
diff changeset
   364