/***************************************************************************
                          rrc_nas_sap.h  -
                          -------------------
    copyright            : (C) 2001, 2010 by Eurecom
    created by           : Lionel.Gauthier@eurecom.fr
    modified by          : Michelle.Wetterwald@eurecom.fr
 **************************************************************************
  Definition of RRC FIFOs and SAPs to interface NAS
 **************************************************************************
  FIFOs Operational mode
        FIFO      RRC         NAS
  UE    GC        Write       Read
        Nt        Write       Read
        DC_IN     Read        Write
        DC_OUT    Write       Read
  RG    GC        Read        Write
        Nt        Read        Write
        DC_IN     Read        Write
        DC_OUT    Write       Read
 ***************************************************************************/
#ifndef __RRC_SAP_H__
#define __RRC_SAP_H__

// #define RRC_BASE_STATION       0    // just for test of protocol on a single node (loopback on MAC)
// #define RRC_MOBILE_STATION     1    // just for test of protocol on a single node (loopback on MAC)

#define RRC_DEVICE_UE_GCSAP     "/dev/rtf40"
#define RRC_DEVICE_UE_NTSAP     "/dev/rtf41"
#define RRC_DEVICE_UE_DCSAP_IN  "/dev/rtf42"
#define RRC_DEVICE_UE_DCSAP_OUT "/dev/rtf43"
#define RRC_DEVICE_RG_GCSAP     "/dev/rtf44"
#define RRC_DEVICE_RG_NTSAP     "/dev/rtf45"
#define RRC_DEVICE_RG_DCSAP0_IN  "/dev/rtf46"
#define RRC_DEVICE_RG_DCSAP0_OUT "/dev/rtf47"
#define RRC_DEVICE_RG_DCSAP1_IN  "/dev/rtf48"
#define RRC_DEVICE_RG_DCSAP1_OUT "/dev/rtf49"
#define RRC_DEVICE_RG_DCSAP2_IN  "/dev/rtf50"
#define RRC_DEVICE_RG_DCSAP2_OUT "/dev/rtf51"

#ifndef USER_MODE

#define RRC_SAPI_UE_GCSAP           40
#define RRC_SAPI_UE_NTSAP           41
#define RRC_SAPI_UE_DCSAP_IN        42
#define RRC_SAPI_UE_DCSAP_OUT       43
#define RRC_SAPI_RG_GCSAP           44
#define RRC_SAPI_RG_NTSAP           45
#define RRC_SAPI_RG_DCSAP0_IN       46
#define RRC_SAPI_RG_DCSAP0_OUT      47
#define RRC_SAPI_RG_DCSAP1_IN       48
#define RRC_SAPI_RG_DCSAP1_OUT      49
#define RRC_SAPI_RG_DCSAP2_IN       50
#define RRC_SAPI_RG_DCSAP2_OUT      51

#else  //USER_MODE

#ifdef NODE_MT
#define RRC_SAPI_UE_GCSAP      "./RUE_GC"
#define RRC_SAPI_UE_NTSAP      "./RUE_NT"
#define RRC_SAPI_UE_DCSAP_IN   "./RUE_DCIN"
#define RRC_SAPI_UE_DCSAP_OUT  "./RUE_DCOUT"
#endif //NODE_MT
#ifdef NODE_RG
#define RRC_SAPI_RG_GCSAP       "./RRG_GC"
#define RRC_SAPI_RG_NTSAP       "./RRG_NT"
#define RRC_SAPI_RG_DCSAP0_IN   "./RRG_DCIN0"
#define RRC_SAPI_RG_DCSAP0_OUT  "./RRG_DCOUT0"
#define RRC_SAPI_RG_DCSAP1_IN   "./RRG_DCIN1"
#define RRC_SAPI_RG_DCSAP1_OUT  "./RRG_DCOUT1"
#define RRC_SAPI_RG_DCSAP2_IN   "./RRG_DCIN2"
#define RRC_SAPI_RG_DCSAP2_OUT  "./RRG_DCOUT2"
#endif  //NODE_RG
#endif  //USER_MODE

//#ifdef PDCP_USE_NETLINK
// For netlink, all SAPs are on the same socket
// GC-NT - OUT=UE, IN=RG
// DCx   - OUT/IN = UE + RG
#define RRC_NAS_GC_IN   0
#define RRC_NAS_GC_OUT  1
#define RRC_NAS_NT_IN   2
#define RRC_NAS_NT_OUT  3
#define RRC_NAS_DC0_IN  4
#define RRC_NAS_DC0_OUT 5
#define RRC_NAS_DC1_IN  6
#define RRC_NAS_DC1_OUT 7
#define RRC_NAS_DC2_IN  8
#define RRC_NAS_DC2_OUT 9
// ToDo : continue with parameterization of the value (up to 250 MTs for 1 short int)
//#endif //PDCP_USE_NETLINK

#define NAS_RRCNL_ID 30
#define NL_DEST_RRC_PID 1

#endif