LowerLayer.h 3.73 KB
Newer Older
Lionel Gauthier's avatar
GPLv3  
Lionel Gauthier committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/*******************************************************************************
    OpenAirInterface
    Copyright(c) 1999 - 2014 Eurecom

    OpenAirInterface is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.


    OpenAirInterface is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
Cedric Roux's avatar
 
Cedric Roux committed
15

Lionel Gauthier's avatar
GPLv3  
Lionel Gauthier committed
16 17 18 19 20 21 22 23 24 25 26 27 28 29
    You should have received a copy of the GNU General Public License
    along with OpenAirInterface.The full GNU General Public License is
   included in this distribution in the file called "COPYING". If not,
   see <http://www.gnu.org/licenses/>.

  Contact Information
  OpenAirInterface Admin: openair_admin@eurecom.fr
  OpenAirInterface Tech : openair_tech@eurecom.fr
  OpenAirInterface Dev  : openair4g-devel@eurecom.fr

  Address      : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.

 *******************************************************************************/
/*****************************************************************************
Cedric Roux's avatar
Cedric Roux committed
30
Source      lowerlayer.h
Cedric Roux's avatar
 
Cedric Roux committed
31

Cedric Roux's avatar
Cedric Roux committed
32
Version     0.1
Cedric Roux's avatar
 
Cedric Roux committed
33

Cedric Roux's avatar
Cedric Roux committed
34
Date        2013/06/19
Cedric Roux's avatar
 
Cedric Roux committed
35

Cedric Roux's avatar
Cedric Roux committed
36
Product     NAS stack
Cedric Roux's avatar
 
Cedric Roux committed
37

Cedric Roux's avatar
Cedric Roux committed
38
Subsystem   EPS Mobility Management
Cedric Roux's avatar
 
Cedric Roux committed
39

Cedric Roux's avatar
Cedric Roux committed
40
Author      Frederic Maurel
Cedric Roux's avatar
 
Cedric Roux committed
41

Cedric Roux's avatar
Cedric Roux committed
42 43 44 45 46
Description Defines EMM procedures executed by the Non-Access Stratum
        upon receiving notifications from lower layers so that data
        transfer succeed or failed, or NAS signalling connection is
        released, or ESM unit data has been received from under layer,
        and to request ESM unit data transfer to under layer.
Cedric Roux's avatar
 
Cedric Roux committed
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

*****************************************************************************/
#ifndef __LOWERLAYER_H__
#define __LOWERLAYER_H__

#include "OctetString.h"

/****************************************************************************/
/*********************  G L O B A L    C O N S T A N T S  *******************/
/****************************************************************************/

#ifdef NAS_UE
/*
 * Type of EMM procedure callback function executed whenever data are
 * successfully delivered to the network
 */
Cedric Roux's avatar
Cedric Roux committed
63
typedef int (*lowerlayer_success_callback_t)(void *);
Cedric Roux's avatar
 
Cedric Roux committed
64 65 66 67 68

/*
 * Type of EMM procedure callback function executed when data are not
 * delivered to the network because a lower layer failure occurred
 */
Cedric Roux's avatar
Cedric Roux committed
69
typedef int (*lowerlayer_failure_callback_t)(int, void *);
Cedric Roux's avatar
 
Cedric Roux committed
70 71 72 73 74

/*
 * Type of EMM procedure callback function executed when NAS signalling
 * connection is released
 */
Cedric Roux's avatar
Cedric Roux committed
75
typedef int (*lowerlayer_release_callback_t)(void *);
Cedric Roux's avatar
 
Cedric Roux committed
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
#endif

/****************************************************************************/
/************************  G L O B A L    T Y P E S  ************************/
/****************************************************************************/

/****************************************************************************/
/********************  G L O B A L    V A R I A B L E S  ********************/
/****************************************************************************/

/****************************************************************************/
/******************  E X P O R T E D    F U N C T I O N S  ******************/
/****************************************************************************/

int lowerlayer_success(unsigned int ueid);
int lowerlayer_failure(unsigned int ueid);
int lowerlayer_establish(void);
int lowerlayer_release(int cause);

Cedric Roux's avatar
Cedric Roux committed
95 96
int lowerlayer_data_ind(unsigned int ueid, const OctetString *data);
int lowerlayer_data_req(unsigned int ueid, const OctetString *data);
Cedric Roux's avatar
 
Cedric Roux committed
97 98

#endif /* __LOWERLAYER_H__*/