#ifndef _MSRECORD_H_INCLUDED_
#define _MSRECORD_H_INCLUDED_

#define RECORD_FOUND 0
#define RECORD_NOT_FOUND 1
#define MAX_SUPPORTED_MS 15

typedef struct
{
    int reliabilityClass;
    int delayClass;
    int precedenceClass;
    int peakBitRate;
    int meanBitRate;
} QoS;

typedef struct
{
    int pdpType;
    // max pdpAddress size 15 bytes
    char pdpAddressValue[15+1];
} PDPAddress;

typedef struct
{
    // max apnNetworkID 63 bytes
    char apnNetworkID[63+1];
} APN;

typedef struct
{
    int isSet;
    QoS qosSubscribed;
    PDPAddress pdpAddress;
    APN apn;
} MSRecord;

typedef struct
{
    int status;
    double attachReqSentTime;
    double detachReqSentTime;
    double activationReqSentTime;
    double deactivationReqSentTime;
} MSStatus;

typedef enum
{
    MSStatus_Detached,
    MSStatus_Attached,
    MSStatus_Activated
} MSStatusType;

#endif
