diff --git a/src/modules/cdp_avp/avp_add.c b/src/modules/cdp_avp/avp_add.c index 41a992d6dc2..f712ce03aed 100644 --- a/src/modules/cdp_avp/avp_add.c +++ b/src/modules/cdp_avp/avp_add.c @@ -55,22 +55,29 @@ extern struct cdp_binds *cdp; * @param data_do * @return */ -inline int cdp_avp_add_new_to_list(AAA_AVP_LIST *list,int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do) +inline int cdp_avp_add_new_to_list(AAA_AVP_LIST *list, int avp_code, + int avp_flags, int avp_vendorid, str data, AVPDataStatus data_do) { - AAA_AVP *avp = cdp_avp_new(avp_code,avp_flags,avp_vendorid,data,data_do); - if (!list){ - LOG(L_ERR,"Failed adding to NULL list AVP with Code [%d] Flags [%d] VendorID [%d] from data of length [%d]!\n", - avp_code,avp_flags,avp_vendorid,data.len); - if (avp) cdp->AAAFreeAVP(&avp); + AAA_AVP *avp = + cdp_avp_new(avp_code, avp_flags, avp_vendorid, data, data_do); + if(!list) { + LOG(L_ERR, + "Failed adding to NULL list AVP with Code [%d] Flags [%d] " + "VendorID [%d] from data of length [%d]!\n", + avp_code, avp_flags, avp_vendorid, data.len); + if(avp) + cdp->AAAFreeAVP(&avp); return 0; } - if (!avp){ - LOG(L_ERR,"Error creating AVP with Code [%d] Flags [%d] VendorID [%d] from data of length [%d]!\n", - avp_code,avp_flags,avp_vendorid,data.len); + if(!avp) { + LOG(L_ERR, + "Error creating AVP with Code [%d] Flags [%d] VendorID [%d] " + "from data of length [%d]!\n", + avp_code, avp_flags, avp_vendorid, data.len); return 0; } - cdp->AAAAddAVPToList(list,avp); - return 1; + cdp->AAAAddAVPToList(list, avp); + return 1; } /** @@ -84,14 +91,18 @@ inline int cdp_avp_add_new_to_list(AAA_AVP_LIST *list,int avp_code,int avp_flags * @param data_do * @return 1 on success or 0 on failure */ -inline int cdp_avp_add_new_to_msg(AAAMessage *msg,int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do) +inline int cdp_avp_add_new_to_msg(AAAMessage *msg, int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do) { - if (!msg){ - LOG(L_ERR,"Failed adding to NULL message AVP with Code [%d] Flags [%d] VendorID [%d] from data of length [%d]!\n", - avp_code,avp_flags,avp_vendorid,data.len); + if(!msg) { + LOG(L_ERR, + "Failed adding to NULL message AVP with Code [%d] Flags [%d] " + "VendorID [%d] from data of length [%d]!\n", + avp_code, avp_flags, avp_vendorid, data.len); return 0; } - return cdp_avp_add_new_to_list(&(msg->avpList),avp_code,avp_flags,avp_vendorid,data,data_do); + return cdp_avp_add_new_to_list( + &(msg->avpList), avp_code, avp_flags, avp_vendorid, data, data_do); } /** @@ -101,19 +112,21 @@ inline int cdp_avp_add_new_to_msg(AAAMessage *msg,int avp_code,int avp_flags,int * @param avp * @return 1 on success or 0 on failure */ -inline int cdp_avp_add_to_list(AAA_AVP_LIST *list,AAA_AVP *avp) +inline int cdp_avp_add_to_list(AAA_AVP_LIST *list, AAA_AVP *avp) { - if (!avp){ - LOG(L_ERR,"Can not add NULL AVP to list!\n"); + if(!avp) { + LOG(L_ERR, "Can not add NULL AVP to list!\n"); return 0; - } - if (!list){ - LOG(L_ERR,"Failed adding to NULL list AVP with Code [%d] Flags [%d] VendorID [%d] from data of length [%d]!\n", - avp->code,avp->flags,avp->vendorId,avp->data.len); + } + if(!list) { + LOG(L_ERR, + "Failed adding to NULL list AVP with Code [%d] Flags [%d] " + "VendorID [%d] from data of length [%d]!\n", + avp->code, avp->flags, avp->vendorId, avp->data.len); return 0; } - cdp->AAAAddAVPToList(list,avp); - return 1; + cdp->AAAAddAVPToList(list, avp); + return 1; } /** @@ -123,12 +136,14 @@ inline int cdp_avp_add_to_list(AAA_AVP_LIST *list,AAA_AVP *avp) * @param avp * @return 1 on success or 0 on failure */ -inline int cdp_avp_add_to_msg(AAAMessage *msg,AAA_AVP *avp) +inline int cdp_avp_add_to_msg(AAAMessage *msg, AAA_AVP *avp) { - if (!msg){ - LOG(L_ERR,"Failed adding to NULL message AVP with Code [%d] Flags [%d] VendorID [%d] from data of length [%d]!\n", - avp->code,avp->flags,avp->vendorId,avp->data.len); + if(!msg) { + LOG(L_ERR, + "Failed adding to NULL message AVP with Code [%d] Flags [%d] " + "VendorID [%d] from data of length [%d]!\n", + avp->code, avp->flags, avp->vendorId, avp->data.len); return 0; } - return cdp_avp_add_to_list(&(msg->avpList),avp); + return cdp_avp_add_to_list(&(msg->avpList), avp); } diff --git a/src/modules/cdp_avp/avp_add.h b/src/modules/cdp_avp/avp_add.h index 9622d2b55bb..395e91f4b33 100644 --- a/src/modules/cdp_avp/avp_add.h +++ b/src/modules/cdp_avp/avp_add.h @@ -43,30 +43,36 @@ #ifndef CDP_AVP_REFERENCE - #include "../cdp/cdp_load.h" +#include "../cdp/cdp_load.h" - int cdp_avp_add_new_to_list(AAA_AVP_LIST *list,int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - typedef int (*cdp_avp_add_new_to_list_f)(AAA_AVP_LIST *list,int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); +int cdp_avp_add_new_to_list(AAA_AVP_LIST *list, int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); +typedef int (*cdp_avp_add_new_to_list_f)(AAA_AVP_LIST *list, int avp_code, + int avp_flags, int avp_vendorid, str data, AVPDataStatus data_do); - int cdp_avp_add_new_to_msg(AAAMessage *msg,int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - typedef int (*cdp_avp_add_new_to_msg_f)(AAAMessage *msg,int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); +int cdp_avp_add_new_to_msg(AAAMessage *msg, int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); +typedef int (*cdp_avp_add_new_to_msg_f)(AAAMessage *msg, int avp_code, + int avp_flags, int avp_vendorid, str data, AVPDataStatus data_do); - int cdp_avp_add_to_list(AAA_AVP_LIST *list,AAA_AVP *avp); - typedef int (*cdp_avp_add_to_list_f)(AAA_AVP_LIST *list,AAA_AVP *avp); +int cdp_avp_add_to_list(AAA_AVP_LIST *list, AAA_AVP *avp); +typedef int (*cdp_avp_add_to_list_f)(AAA_AVP_LIST *list, AAA_AVP *avp); - int cdp_avp_add_to_msg(AAAMessage *msg,AAA_AVP *avp); - typedef int (*cdp_avp_add_to_msg_f)(AAAMessage *msg,AAA_AVP *avp); +int cdp_avp_add_to_msg(AAAMessage *msg, AAA_AVP *avp); +typedef int (*cdp_avp_add_to_msg_f)(AAAMessage *msg, AAA_AVP *avp); #else - - int basic.add_new_to_list(AAA_AVP_LIST *list,int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - int basic.add_new_to_msg(AAAMessage *msg,int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); +int basic.add_new_to_list(AAA_AVP_LIST *list, int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); - int basic.add_to_list(AAA_AVP_LIST *list,AAA_AVP *avp); +int basic.add_new_to_msg(AAAMessage *msg, int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); + +int basic.add_to_list(AAA_AVP_LIST *list, AAA_AVP *avp); + +int basic.add_to_msg(AAAMessage *msg, AAA_AVP *avp); - int basic.add_to_msg(AAAMessage *msg,AAA_AVP *avp); - #endif diff --git a/src/modules/cdp_avp/avp_get.c b/src/modules/cdp_avp/avp_get.c index 1f0d25ba698..dac79523e37 100644 --- a/src/modules/cdp_avp/avp_get.c +++ b/src/modules/cdp_avp/avp_get.c @@ -51,21 +51,31 @@ extern struct cdp_binds *cdp; * @param start_avp - avp where to resume. A null value will trigger a restart of the search. * @return the AAA_AVP* or NULL if not found (anymore) */ -inline AAA_AVP* cdp_avp_get_next_from_list(AAA_AVP_LIST list,int avp_code,int avp_vendor_id,AAA_AVP *start_avp) +inline AAA_AVP *cdp_avp_get_next_from_list( + AAA_AVP_LIST list, int avp_code, int avp_vendor_id, AAA_AVP *start_avp) { AAA_AVP *avp; - if (!start_avp) start_avp = list.head; - else start_avp = start_avp->next; - LOG(L_DBG,"Looking for AVP with code %d vendor id %d startin at avp %p\n", - avp_code,avp_vendor_id,start_avp); - - if (!start_avp){ - LOG(L_DBG,"Failed finding AVP with Code %d and VendorId %d - Empty list or at end of list\n",avp_code,avp_vendor_id); + if(!start_avp) + start_avp = list.head; + else + start_avp = start_avp->next; + LOG(L_DBG, "Looking for AVP with code %d vendor id %d startin at avp %p\n", + avp_code, avp_vendor_id, start_avp); + + if(!start_avp) { + LOG(L_DBG, + "Failed finding AVP with Code %d and VendorId %d - Empty list " + "or at end of list\n", + avp_code, avp_vendor_id); return 0; } - avp = cdp->AAAFindMatchingAVPList(list,start_avp,avp_code,avp_vendor_id,AAA_FORWARD_SEARCH); - if (avp==0){ - LOG(L_DBG,"Failed finding AVP with Code %d and VendorId %d - at end of list\n",avp_code,avp_vendor_id); + avp = cdp->AAAFindMatchingAVPList( + list, start_avp, avp_code, avp_vendor_id, AAA_FORWARD_SEARCH); + if(avp == 0) { + LOG(L_DBG, + "Failed finding AVP with Code %d and VendorId %d - at end of " + "list\n", + avp_code, avp_vendor_id); return 0; } @@ -80,9 +90,11 @@ inline AAA_AVP* cdp_avp_get_next_from_list(AAA_AVP_LIST list,int avp_code,int av * @param start_avp * @return the AAA_AVP* or NULL if not found (anymore) */ -inline AAA_AVP* cdp_avp_get_next_from_msg(AAAMessage *msg,int avp_code,int avp_vendor_id,AAA_AVP *start_avp) +inline AAA_AVP *cdp_avp_get_next_from_msg( + AAAMessage *msg, int avp_code, int avp_vendor_id, AAA_AVP *start_avp) { - return cdp_avp_get_next_from_list(msg->avpList,avp_code,avp_vendor_id,start_avp); + return cdp_avp_get_next_from_list( + msg->avpList, avp_code, avp_vendor_id, start_avp); } /** @@ -92,9 +104,10 @@ inline AAA_AVP* cdp_avp_get_next_from_msg(AAAMessage *msg,int avp_code,int avp_v * @param avp_vendor_id * @return the AAA_AVP* or null if not found */ -inline AAA_AVP* cdp_avp_get_from_list(AAA_AVP_LIST list,int avp_code,int avp_vendor_id) +inline AAA_AVP *cdp_avp_get_from_list( + AAA_AVP_LIST list, int avp_code, int avp_vendor_id) { - return cdp_avp_get_next_from_list(list,avp_code,avp_vendor_id,0); + return cdp_avp_get_next_from_list(list, avp_code, avp_vendor_id, 0); } /** @@ -104,11 +117,15 @@ inline AAA_AVP* cdp_avp_get_from_list(AAA_AVP_LIST list,int avp_code,int avp_ven * @param avp_vendor_id * @return the AAA_AVP* or null if not found */ -inline AAA_AVP* cdp_avp_get_from_msg(AAAMessage *msg,int avp_code,int avp_vendor_id) +inline AAA_AVP *cdp_avp_get_from_msg( + AAAMessage *msg, int avp_code, int avp_vendor_id) { - if (!msg){ - LOG(L_ERR,"Failed finding AVP with Code %d and VendorId %d in NULL message!\n",avp_code,avp_vendor_id); + if(!msg) { + LOG(L_ERR, + "Failed finding AVP with Code %d and VendorId %d in NULL " + "message!\n", + avp_code, avp_vendor_id); return 0; } - return cdp_avp_get_from_list(msg->avpList,avp_code,avp_vendor_id); + return cdp_avp_get_from_list(msg->avpList, avp_code, avp_vendor_id); } diff --git a/src/modules/cdp_avp/avp_get.h b/src/modules/cdp_avp/avp_get.h index a7a22e0d1ab..43cc6086e34 100644 --- a/src/modules/cdp_avp/avp_get.h +++ b/src/modules/cdp_avp/avp_get.h @@ -43,32 +43,41 @@ #ifndef CDP_AVP_REFERENCE - #include "../cdp/cdp_load.h" +#include "../cdp/cdp_load.h" - AAA_AVP* cdp_avp_get_next_from_list(AAA_AVP_LIST list,int avp_code,int avp_vendor_id,AAA_AVP *start_avp); - typedef AAA_AVP* (*cdp_avp_get_next_from_list_f)(AAA_AVP_LIST list,int avp_code,int avp_vendor_id,AAA_AVP *start_avp); - - AAA_AVP* cdp_avp_get_next_from_msg(AAAMessage *msg,int avp_code,int avp_vendor_id,AAA_AVP *start_avp); - typedef AAA_AVP* (*cdp_avp_get_next_from_msg_f)(AAAMessage *msg,int avp_code,int avp_vendor_id,AAA_AVP *start_avp); - - AAA_AVP* cdp_avp_get_from_list(AAA_AVP_LIST list,int avp_code,int avp_vendor_id); - typedef AAA_AVP* (*cdp_avp_get_from_list_f)(AAA_AVP_LIST list,int avp_code,int avp_vendor_id); - - AAA_AVP* cdp_avp_get_from_msg(AAAMessage *msg,int avp_code,int avp_vendor_id); - typedef AAA_AVP* (*cdp_avp_get_from_msg_f)(AAAMessage *msg,int avp_code,int avp_vendor_id); +AAA_AVP *cdp_avp_get_next_from_list( + AAA_AVP_LIST list, int avp_code, int avp_vendor_id, AAA_AVP *start_avp); +typedef AAA_AVP *(*cdp_avp_get_next_from_list_f)( + AAA_AVP_LIST list, int avp_code, int avp_vendor_id, AAA_AVP *start_avp); + +AAA_AVP *cdp_avp_get_next_from_msg( + AAAMessage *msg, int avp_code, int avp_vendor_id, AAA_AVP *start_avp); +typedef AAA_AVP *(*cdp_avp_get_next_from_msg_f)( + AAAMessage *msg, int avp_code, int avp_vendor_id, AAA_AVP *start_avp); + +AAA_AVP *cdp_avp_get_from_list( + AAA_AVP_LIST list, int avp_code, int avp_vendor_id); +typedef AAA_AVP *(*cdp_avp_get_from_list_f)( + AAA_AVP_LIST list, int avp_code, int avp_vendor_id); + +AAA_AVP *cdp_avp_get_from_msg(AAAMessage *msg, int avp_code, int avp_vendor_id); +typedef AAA_AVP *(*cdp_avp_get_from_msg_f)( + AAAMessage *msg, int avp_code, int avp_vendor_id); #else - AAA_AVP* basic.get_next_from_list(AAA_AVP_LIST list,int avp_code,int avp_vendor_id,AAA_AVP *start_avp); +AAA_AVP *basic.get_next_from_list( + AAA_AVP_LIST list, int avp_code, int avp_vendor_id, AAA_AVP *start_avp); - AAA_AVP* basic.get_next_from_msg(AAAMessage *msg,int avp_code,int avp_vendor_id,AAA_AVP *start_avp); +AAA_AVP *basic.get_next_from_msg( + AAAMessage *msg, int avp_code, int avp_vendor_id, AAA_AVP *start_avp); - AAA_AVP* basic.get_from_list(AAA_AVP_LIST list,int avp_code,int avp_vendor_id); +AAA_AVP *basic.get_from_list( + AAA_AVP_LIST list, int avp_code, int avp_vendor_id); - AAA_AVP* basic.get_from_msg(AAAMessage *msg,int avp_code,int avp_vendor_id); +AAA_AVP *basic.get_from_msg(AAAMessage *msg, int avp_code, int avp_vendor_id); #endif - #endif /* __AVP_NEW_H */ diff --git a/src/modules/cdp_avp/avp_get_base_data_format.c b/src/modules/cdp_avp/avp_get_base_data_format.c index 65a1f7722aa..c29b0c2d073 100644 --- a/src/modules/cdp_avp/avp_get_base_data_format.c +++ b/src/modules/cdp_avp/avp_get_base_data_format.c @@ -49,104 +49,115 @@ extern struct cdp_binds *cdp; * */ -inline int cdp_avp_get_OctetString(AAA_AVP *avp,str *data) +inline int cdp_avp_get_OctetString(AAA_AVP *avp, str *data) { - if (data) *data = avp->data; + if(data) + *data = avp->data; return 1; } -inline int cdp_avp_get_Integer32(AAA_AVP *avp,int32_t *data) +inline int cdp_avp_get_Integer32(AAA_AVP *avp, int32_t *data) { - int32_t x=0; - if (avp->data.len<4) { - LOG(L_ERR,"Error decoding Integer32 from data len < 4 bytes!\n"); + int32_t x = 0; + if(avp->data.len < 4) { + LOG(L_ERR, "Error decoding Integer32 from data len < 4 bytes!\n"); return 0; } x = get_4bytes(avp->data.s); - if (data) *data = x; + if(data) + *data = x; return 1; } -inline int cdp_avp_get_Integer64(AAA_AVP *avp,int64_t *data) +inline int cdp_avp_get_Integer64(AAA_AVP *avp, int64_t *data) { - int64_t x=0; + int64_t x = 0; int i; - if (avp->data.len<8) { - LOG(L_ERR,"Error decoding Integer64 from data len < 8 bytes!\n"); + if(avp->data.len < 8) { + LOG(L_ERR, "Error decoding Integer64 from data len < 8 bytes!\n"); return 0; } - for(i=0;i<8;i++) - x = (x*256) + avp->data.s[i]; - if (data) *data = x; - return 1; + for(i = 0; i < 8; i++) + x = (x * 256) + avp->data.s[i]; + if(data) + *data = x; + return 1; } -inline int cdp_avp_get_Unsigned32(AAA_AVP *avp,uint32_t *data) +inline int cdp_avp_get_Unsigned32(AAA_AVP *avp, uint32_t *data) { - if (avp->data.len<4) { - LOG(L_ERR,"Error decoding Unsigned32 from data len < 4 bytes!\n"); + if(avp->data.len < 4) { + LOG(L_ERR, "Error decoding Unsigned32 from data len < 4 bytes!\n"); return 0; } - if (data) *data = ntohl(*((uint32_t*)avp->data.s)); + if(data) + *data = ntohl(*((uint32_t *)avp->data.s)); return 1; } -inline int cdp_avp_get_Unsigned64(AAA_AVP *avp,uint64_t *data) +inline int cdp_avp_get_Unsigned64(AAA_AVP *avp, uint64_t *data) { - uint64_t x=0; + uint64_t x = 0; int i; - if (avp->data.len<8) { - LOG(L_ERR,"Error decoding Unsigned64 from data len < 8 bytes!\n"); + if(avp->data.len < 8) { + LOG(L_ERR, "Error decoding Unsigned64 from data len < 8 bytes!\n"); return 0; } - for(i=0;i<8;i++) - x = (x*256) + avp->data.s[i]; - if (data) *data = x; + for(i = 0; i < 8; i++) + x = (x * 256) + avp->data.s[i]; + if(data) + *data = x; return 1; } -inline int cdp_avp_get_Float32(AAA_AVP *avp,float *data) +inline int cdp_avp_get_Float32(AAA_AVP *avp, float *data) { float x; uint32_t y; - if (avp->data.len<4) { - LOG(L_ERR,"Error decoding Float32 from data len < 4 bytes!\n"); + if(avp->data.len < 4) { + LOG(L_ERR, "Error decoding Float32 from data len < 4 bytes!\n"); return 0; } - y = cdp_avp_get_Unsigned32(avp,(uint32_t*)data);//TODO - check if this is correct - memcpy(&x,&y,sizeof(uint32_t)); + y = cdp_avp_get_Unsigned32( + avp, (uint32_t *)data); //TODO - check if this is correct + memcpy(&x, &y, sizeof(uint32_t)); //*((uint32_t*)&x)=y; - if (data) *data = y; + if(data) + *data = y; return 1; } -inline int cdp_avp_get_Float64(AAA_AVP *avp,double *data) +inline int cdp_avp_get_Float64(AAA_AVP *avp, double *data) { double x; uint64_t y; - if (avp->data.len<8) { - LOG(L_ERR,"Error decoding Float64 from data len < 8 bytes!\n"); + if(avp->data.len < 8) { + LOG(L_ERR, "Error decoding Float64 from data len < 8 bytes!\n"); return 0; } - y = cdp_avp_get_Unsigned64(avp,(uint64_t*)data);//TODO - check if this is correct - memcpy(&x,&y,sizeof(uint64_t)); - if (data) *data = y; + y = cdp_avp_get_Unsigned64( + avp, (uint64_t *)data); //TODO - check if this is correct + memcpy(&x, &y, sizeof(uint64_t)); + if(data) + *data = y; return 1; } -inline int cdp_avp_get_Grouped(AAA_AVP *avp,AAA_AVP_LIST *data) +inline int cdp_avp_get_Grouped(AAA_AVP *avp, AAA_AVP_LIST *data) { - if (data) *data = cdp->AAAUngroupAVPS(avp->data); + if(data) + *data = cdp->AAAUngroupAVPS(avp->data); return 1; } inline void cdp_avp_free_Grouped(AAA_AVP_LIST *data) { - if (data) cdp->AAAFreeAVPList(data); + if(data) + cdp->AAAFreeAVPList(data); } /* @@ -156,89 +167,101 @@ inline void cdp_avp_free_Grouped(AAA_AVP_LIST *data) * */ -inline int cdp_avp_get_Address(AAA_AVP *avp,ip_address *data) +inline int cdp_avp_get_Address(AAA_AVP *avp, ip_address *data) { ip_address x; - bzero(&x,sizeof(ip_address)); - if (avp->data.len<6){ - LOG(L_ERR,"Error decoding Address from AVP data of length %d < 6",avp->data.len); + bzero(&x, sizeof(ip_address)); + if(avp->data.len < 6) { + LOG(L_ERR, "Error decoding Address from AVP data of length %d < 6", + avp->data.len); goto error; } - x.ai_family = (avp->data.s[0]<<8) | avp->data.s[1]; - switch (x.ai_family){ + x.ai_family = (avp->data.s[0] << 8) | avp->data.s[1]; + switch(x.ai_family) { case 1: x.ai_family = AF_INET; - memcpy(&(x.ip.v4.s_addr), avp->data.s+2, 4); + memcpy(&(x.ip.v4.s_addr), avp->data.s + 2, 4); break; case 2: x.ai_family = AF_INET6; - if (avp->data.len<18){ - LOG(L_ERR,"Error decoding Address (AF_INET6) from AVP data of length %d < 16",avp->data.len); + if(avp->data.len < 18) { + LOG(L_ERR, + "Error decoding Address (AF_INET6) from AVP data of " + "length %d < 16", + avp->data.len); goto error; } - memcpy(x.ip.v6.s6_addr,avp->data.s+2,16); + memcpy(x.ip.v6.s6_addr, avp->data.s + 2, 16); } - if (data) *data = x; + if(data) + *data = x; return 1; error: - bzero(&x,sizeof(ip_address)); - if (data) *data = x; + bzero(&x, sizeof(ip_address)); + if(data) + *data = x; return 0; } -inline int cdp_avp_get_Time(AAA_AVP *avp,time_t *data) +inline int cdp_avp_get_Time(AAA_AVP *avp, time_t *data) { - if (avp->data.len<4) { - LOG(L_ERR,"Error decoding Time from data len < 4 bytes!\n"); + if(avp->data.len < 4) { + LOG(L_ERR, "Error decoding Time from data len < 4 bytes!\n"); return 0; } - if (data) *data = ntohl(*((uint32_t*)avp->data.s))-EPOCH_UNIX_TO_EPOCH_NTP; + if(data) + *data = ntohl(*((uint32_t *)avp->data.s)) - EPOCH_UNIX_TO_EPOCH_NTP; return 1; } -inline int cdp_avp_get_UTF8String(AAA_AVP *avp,str *data) +inline int cdp_avp_get_UTF8String(AAA_AVP *avp, str *data) { - if (data) *data = avp->data; + if(data) + *data = avp->data; return 1; } -inline int cdp_avp_get_DiameterIdentity(AAA_AVP *avp,str *data) +inline int cdp_avp_get_DiameterIdentity(AAA_AVP *avp, str *data) { - if (data) *data = avp->data; + if(data) + *data = avp->data; return 1; } -inline int cdp_avp_get_DiameterURI(AAA_AVP *avp,str *data) +inline int cdp_avp_get_DiameterURI(AAA_AVP *avp, str *data) { - if (data) *data = avp->data; + if(data) + *data = avp->data; return 1; } -inline int cdp_avp_get_Enumerated(AAA_AVP *avp,int32_t *data) +inline int cdp_avp_get_Enumerated(AAA_AVP *avp, int32_t *data) { - int32_t x=0; - if (!avp || avp->data.len<4) { - LOG(L_ERR,"Error decoding Enumerated from data len < 4 bytes!\n"); + int32_t x = 0; + if(!avp || avp->data.len < 4) { + LOG(L_ERR, "Error decoding Enumerated from data len < 4 bytes!\n"); return 0; } x = get_4bytes(avp->data.s); - if (data) *data = x; + if(data) + *data = x; return 1; } -inline int cdp_avp_get_IPFilterRule(AAA_AVP *avp,str *data) +inline int cdp_avp_get_IPFilterRule(AAA_AVP *avp, str *data) { - if (data) *data = avp->data; + if(data) + *data = avp->data; return 1; } -inline int cdp_avp_get_QoSFilterRule(AAA_AVP *avp,str *data) +inline int cdp_avp_get_QoSFilterRule(AAA_AVP *avp, str *data) { - if (data) *data = avp->data; + if(data) + *data = avp->data; return 1; } - diff --git a/src/modules/cdp_avp/avp_get_base_data_format.h b/src/modules/cdp_avp/avp_get_base_data_format.h index 63284796860..72ff7a191aa 100644 --- a/src/modules/cdp_avp/avp_get_base_data_format.h +++ b/src/modules/cdp_avp/avp_get_base_data_format.h @@ -41,83 +41,84 @@ #ifndef __AVP_GET_BASE_DATA_FORMAT_H #define __AVP_GET_BASE_DATA_FORMAT_H - #include "../cdp/cdp_load.h" - #include "avp_new_base_data_format.h" +#include "../cdp/cdp_load.h" +#include "avp_new_base_data_format.h" - #define EPOCH_UNIX_TO_EPOCH_NTP 2208988800u // according to http://www.cis.udel.edu/~mills/y2k.html - - /* +#define EPOCH_UNIX_TO_EPOCH_NTP \ + 2208988800u // according to http://www.cis.udel.edu/~mills/y2k.html + +/* * RFC 3588 Basic AVP Data Types * * http://tools.ietf.org/html/rfc3588#section-4.2 * */ - - int cdp_avp_get_OctetString(AAA_AVP *avp,str *data); - typedef int (*cdp_avp_get_OctetString_f)(AAA_AVP *avp,str *data); - - - int cdp_avp_get_Integer32(AAA_AVP *avp,int32_t *data); - typedef int (*cdp_avp_get_Integer32_f)(AAA_AVP *avp,int32_t *data); - - - int cdp_avp_get_Integer64(AAA_AVP *avp,int64_t *data); - typedef int (*cdp_avp_get_Integer64_f)(AAA_AVP *avp,int64_t *data); - - - int cdp_avp_get_Unsigned32(AAA_AVP *avp,uint32_t *data); - typedef int (*cdp_avp_get_Unsigned32_f)(AAA_AVP *avp,uint32_t *data); - - - int cdp_avp_get_Unsigned64(AAA_AVP *avp,uint64_t *data); - typedef int (*cdp_avp_get_Unsigned64_f)(AAA_AVP *avp,uint64_t *data); - - - int cdp_avp_get_Float32(AAA_AVP *avp,float *data); - typedef int (*cdp_avp_get_Float32_f)(AAA_AVP *avp,float *data); - - - int cdp_avp_get_Float64(AAA_AVP *avp,double *data); - typedef int (*cdp_avp_get_Float64_f)(AAA_AVP *avp,double *data); - - - int cdp_avp_get_Grouped(AAA_AVP *avp,AAA_AVP_LIST *data); - typedef int (*cdp_avp_get_Grouped_f)(AAA_AVP *avp,AAA_AVP_LIST *data); - - - void cdp_avp_free_Grouped(AAA_AVP_LIST *list); - typedef void (*cdp_avp_free_Grouped_f)(AAA_AVP_LIST *list); - - /* + +int cdp_avp_get_OctetString(AAA_AVP *avp, str *data); +typedef int (*cdp_avp_get_OctetString_f)(AAA_AVP *avp, str *data); + + +int cdp_avp_get_Integer32(AAA_AVP *avp, int32_t *data); +typedef int (*cdp_avp_get_Integer32_f)(AAA_AVP *avp, int32_t *data); + + +int cdp_avp_get_Integer64(AAA_AVP *avp, int64_t *data); +typedef int (*cdp_avp_get_Integer64_f)(AAA_AVP *avp, int64_t *data); + + +int cdp_avp_get_Unsigned32(AAA_AVP *avp, uint32_t *data); +typedef int (*cdp_avp_get_Unsigned32_f)(AAA_AVP *avp, uint32_t *data); + + +int cdp_avp_get_Unsigned64(AAA_AVP *avp, uint64_t *data); +typedef int (*cdp_avp_get_Unsigned64_f)(AAA_AVP *avp, uint64_t *data); + + +int cdp_avp_get_Float32(AAA_AVP *avp, float *data); +typedef int (*cdp_avp_get_Float32_f)(AAA_AVP *avp, float *data); + + +int cdp_avp_get_Float64(AAA_AVP *avp, double *data); +typedef int (*cdp_avp_get_Float64_f)(AAA_AVP *avp, double *data); + + +int cdp_avp_get_Grouped(AAA_AVP *avp, AAA_AVP_LIST *data); +typedef int (*cdp_avp_get_Grouped_f)(AAA_AVP *avp, AAA_AVP_LIST *data); + + +void cdp_avp_free_Grouped(AAA_AVP_LIST *list); +typedef void (*cdp_avp_free_Grouped_f)(AAA_AVP_LIST *list); + +/* * RFC 3588 Derived AVP Data Formats * * http://tools.ietf.org/html/rfc3588#section-4.3 * */ - - int cdp_avp_get_Address(AAA_AVP *avp,ip_address *data); - typedef int (*cdp_avp_get_Address_f)(AAA_AVP *avp,ip_address *data); - - int cdp_avp_get_Time(AAA_AVP *avp,time_t *data); - typedef int (*cdp_avp_get_Time_f)(AAA_AVP *avp,time_t *data); - - int cdp_avp_get_UTF8String(AAA_AVP *avp,str *data); - typedef int (*cdp_avp_get_UTF8String_f)(AAA_AVP *avp,str *data); - - int cdp_avp_get_DiameterIdentity(AAA_AVP *avp,str *data); - typedef int (*cdp_avp_get_DiameterIdentity_f)(AAA_AVP *avp,str *data); - - int cdp_avp_get_DiameterURI(AAA_AVP *avp,str *data); - typedef int (*cdp_avp_get_DiameterURI_f)(AAA_AVP *avp,str *data); - - int cdp_avp_get_Enumerated(AAA_AVP *avp,int32_t *data); - typedef int (*cdp_avp_get_Enumerated_f)(AAA_AVP *avp,int32_t *data); - - int cdp_avp_get_IPFilterRule(AAA_AVP *avp,str *data); - typedef int (*cdp_avp_get_IPFilterRule_f)(AAA_AVP *avp,str *data); - - int cdp_avp_get_QoSFilterRule(AAA_AVP *avp,str *data); - typedef int (*cdp_avp_get_QoSFilterRule_f)(AAA_AVP *avp,str *data); - + +int cdp_avp_get_Address(AAA_AVP *avp, ip_address *data); +typedef int (*cdp_avp_get_Address_f)(AAA_AVP *avp, ip_address *data); + +int cdp_avp_get_Time(AAA_AVP *avp, time_t *data); +typedef int (*cdp_avp_get_Time_f)(AAA_AVP *avp, time_t *data); + +int cdp_avp_get_UTF8String(AAA_AVP *avp, str *data); +typedef int (*cdp_avp_get_UTF8String_f)(AAA_AVP *avp, str *data); + +int cdp_avp_get_DiameterIdentity(AAA_AVP *avp, str *data); +typedef int (*cdp_avp_get_DiameterIdentity_f)(AAA_AVP *avp, str *data); + +int cdp_avp_get_DiameterURI(AAA_AVP *avp, str *data); +typedef int (*cdp_avp_get_DiameterURI_f)(AAA_AVP *avp, str *data); + +int cdp_avp_get_Enumerated(AAA_AVP *avp, int32_t *data); +typedef int (*cdp_avp_get_Enumerated_f)(AAA_AVP *avp, int32_t *data); + +int cdp_avp_get_IPFilterRule(AAA_AVP *avp, str *data); +typedef int (*cdp_avp_get_IPFilterRule_f)(AAA_AVP *avp, str *data); + +int cdp_avp_get_QoSFilterRule(AAA_AVP *avp, str *data); +typedef int (*cdp_avp_get_QoSFilterRule_f)(AAA_AVP *avp, str *data); + #endif /* __AVP_GET_DATA_FORMAT_H */ diff --git a/src/modules/cdp_avp/avp_new.c b/src/modules/cdp_avp/avp_new.c index 42d22ce33e1..9caad5df5fb 100644 --- a/src/modules/cdp_avp/avp_new.c +++ b/src/modules/cdp_avp/avp_new.c @@ -52,9 +52,11 @@ extern struct cdp_binds *cdp; * @param data_do - what to do with the data next * @return ptr to the new avp or null on error */ -inline AAA_AVP *cdp_avp_new(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do) +inline AAA_AVP *cdp_avp_new(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do) { - if (avp_vendorid!=0) avp_flags |= AAA_AVP_FLAG_VENDOR_SPECIFIC; - return cdp->AAACreateAVP(avp_code,avp_flags,avp_vendorid,data.s,data.len,data_do); + if(avp_vendorid != 0) + avp_flags |= AAA_AVP_FLAG_VENDOR_SPECIFIC; + return cdp->AAACreateAVP( + avp_code, avp_flags, avp_vendorid, data.s, data.len, data_do); } - diff --git a/src/modules/cdp_avp/avp_new.h b/src/modules/cdp_avp/avp_new.h index 6c84c2b9885..eab145a158e 100644 --- a/src/modules/cdp_avp/avp_new.h +++ b/src/modules/cdp_avp/avp_new.h @@ -43,15 +43,18 @@ #ifndef CDP_AVP_REFERENCE - #include "../cdp/cdp_load.h" +#include "../cdp/cdp_load.h" - AAA_AVP* cdp_avp_new(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - typedef AAA_AVP* (*cdp_avp_new_f)(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); +AAA_AVP *cdp_avp_new(int avp_code, int avp_flags, int avp_vendorid, str data, + AVPDataStatus data_do); +typedef AAA_AVP *(*cdp_avp_new_f)(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do); #else - - AAA_AVP* basic.new(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - + +AAA_AVP *basic.new(int avp_code, int avp_flags, int avp_vendorid, str data, + AVPDataStatus data_do); + #endif diff --git a/src/modules/cdp_avp/avp_new_base_data_format.c b/src/modules/cdp_avp/avp_new_base_data_format.c index af34f98640e..0ca4b058d51 100644 --- a/src/modules/cdp_avp/avp_new_base_data_format.c +++ b/src/modules/cdp_avp/avp_new_base_data_format.c @@ -52,66 +52,79 @@ extern struct cdp_binds *cdp; * */ -inline AAA_AVP *cdp_avp_new_OctetString(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do) +inline AAA_AVP *cdp_avp_new_OctetString(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do) { - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,data,data_do); + return cdp_avp_new(avp_code, avp_flags, avp_vendorid, data, data_do); } -inline AAA_AVP *cdp_avp_new_Integer32(int avp_code,int avp_flags,int avp_vendorid,int32_t data) +inline AAA_AVP *cdp_avp_new_Integer32( + int avp_code, int avp_flags, int avp_vendorid, int32_t data) { char x[4]; - str s={x,4}; - set_4bytes(x,data); - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,s,AVP_DUPLICATE_DATA); + str s = {x, 4}; + set_4bytes(x, data); + return cdp_avp_new( + avp_code, avp_flags, avp_vendorid, s, AVP_DUPLICATE_DATA); } -inline AAA_AVP *cdp_avp_new_Integer64(int avp_code,int avp_flags,int avp_vendorid,int64_t data) +inline AAA_AVP *cdp_avp_new_Integer64( + int avp_code, int avp_flags, int avp_vendorid, int64_t data) { char x[8]; - str s={x,8}; + str s = {x, 8}; int i; - for(i=7;i>=0;i--){ - x[i] = data%256; + for(i = 7; i >= 0; i--) { + x[i] = data % 256; data /= 256; - } //TODO - check if this is correct - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,s,AVP_DUPLICATE_DATA); + } //TODO - check if this is correct + return cdp_avp_new( + avp_code, avp_flags, avp_vendorid, s, AVP_DUPLICATE_DATA); } -inline AAA_AVP *cdp_avp_new_Unsigned32(int avp_code,int avp_flags,int avp_vendorid,uint32_t data) +inline AAA_AVP *cdp_avp_new_Unsigned32( + int avp_code, int avp_flags, int avp_vendorid, uint32_t data) { char x[4]; - str s={x,4}; - uint32_t ndata=htonl(data); - memcpy(x,&ndata,sizeof(uint32_t)); + str s = {x, 4}; + uint32_t ndata = htonl(data); + memcpy(x, &ndata, sizeof(uint32_t)); //*((uint32_t*)x) = htonl(data); - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,s,AVP_DUPLICATE_DATA); + return cdp_avp_new( + avp_code, avp_flags, avp_vendorid, s, AVP_DUPLICATE_DATA); } -inline AAA_AVP *cdp_avp_new_Unsigned64(int avp_code,int avp_flags,int avp_vendorid,uint64_t data) +inline AAA_AVP *cdp_avp_new_Unsigned64( + int avp_code, int avp_flags, int avp_vendorid, uint64_t data) { char x[8]; - str s={x,8}; + str s = {x, 8}; int i; - for(i=7;i>=0;i--){ - x[i] = data%256; + for(i = 7; i >= 0; i--) { + x[i] = data % 256; data /= 256; } - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,s,AVP_DUPLICATE_DATA); + return cdp_avp_new( + avp_code, avp_flags, avp_vendorid, s, AVP_DUPLICATE_DATA); } -inline AAA_AVP *cdp_avp_new_Float32(int avp_code,int avp_flags,int avp_vendorid,float data) +inline AAA_AVP *cdp_avp_new_Float32( + int avp_code, int avp_flags, int avp_vendorid, float data) { uint32_t udata; - memcpy(&udata,&data,sizeof(uint32_t)); - return cdp_avp_new_Unsigned32(avp_code,avp_flags,avp_vendorid,udata);//TODO - check if this is correct + memcpy(&udata, &data, sizeof(uint32_t)); + return cdp_avp_new_Unsigned32(avp_code, avp_flags, avp_vendorid, + udata); //TODO - check if this is correct } -inline AAA_AVP *cdp_avp_new_Float64(int avp_code,int avp_flags,int avp_vendorid,double data) +inline AAA_AVP *cdp_avp_new_Float64( + int avp_code, int avp_flags, int avp_vendorid, double data) { uint64_t udata; - memcpy(&udata,&data,sizeof(uint32_t)); - return cdp_avp_new_Unsigned64(avp_code,avp_flags,avp_vendorid,udata);//TODO - check if this is correct + memcpy(&udata, &data, sizeof(uint32_t)); + return cdp_avp_new_Unsigned64(avp_code, avp_flags, avp_vendorid, + udata); //TODO - check if this is correct } /** @@ -123,21 +136,25 @@ inline AAA_AVP *cdp_avp_new_Float64(int avp_code,int avp_flags,int avp_vendorid, * @param list_do - if this is AVP_FREE_DATA then the list will aso be freed * @return */ -inline AAA_AVP *cdp_avp_new_Grouped(int avp_code,int avp_flags,int avp_vendorid,AAA_AVP_LIST *list,AVPDataStatus list_do) +inline AAA_AVP *cdp_avp_new_Grouped(int avp_code, int avp_flags, + int avp_vendorid, AAA_AVP_LIST *list, AVPDataStatus list_do) { str grp; - if (!list){ - LOG(L_ERR,"The AAA_AVP_LIST was NULL!\n"); + if(!list) { + LOG(L_ERR, "The AAA_AVP_LIST was NULL!\n"); return 0; } grp = cdp->AAAGroupAVPS(*list); - if (!grp.len){ - LOG(L_ERR,"The AAA_AVP_LIST provided was empty! (AVP Code %d VendorId %d)\n",avp_code,avp_vendorid); + if(!grp.len) { + LOG(L_ERR, + "The AAA_AVP_LIST provided was empty! (AVP Code %d VendorId " + "%d)\n", + avp_code, avp_vendorid); return 0; } - if (list_do==AVP_FREE_DATA) + if(list_do == AVP_FREE_DATA) cdp->AAAFreeAVPList(list); - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,grp,AVP_FREE_DATA); + return cdp_avp_new(avp_code, avp_flags, avp_vendorid, grp, AVP_FREE_DATA); } /* @@ -147,71 +164,85 @@ inline AAA_AVP *cdp_avp_new_Grouped(int avp_code,int avp_flags,int avp_vendorid, * */ -inline AAA_AVP* cdp_avp_new_Address(int avp_code,int avp_flags,int avp_vendorid,ip_address data) +inline AAA_AVP *cdp_avp_new_Address( + int avp_code, int avp_flags, int avp_vendorid, ip_address data) { char x[18]; str s; s.s = x; s.len = 0; - switch (data.ai_family){ + switch(data.ai_family) { case AF_INET: - x[0]=0; - x[1]=1; - memcpy(x+2, (char*)(&data.ip.v4.s_addr), 4); - s.len=6; + x[0] = 0; + x[1] = 1; + memcpy(x + 2, (char *)(&data.ip.v4.s_addr), 4); + s.len = 6; break; case AF_INET6: - x[0]=0; - x[1]=2; - s.len=18; - memcpy(x+2,data.ip.v6.s6_addr,16); + x[0] = 0; + x[1] = 2; + s.len = 18; + memcpy(x + 2, data.ip.v6.s6_addr, 16); break; default: - LOG(L_ERR,"Unimplemented for ai_family %d! (AVP Code %d Vendor-Id %d)\n",data.ai_family,avp_code,avp_vendorid); + LOG(L_ERR, + "Unimplemented for ai_family %d! (AVP Code %d Vendor-Id " + "%d)\n", + data.ai_family, avp_code, avp_vendorid); return 0; } - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,s,AVP_DUPLICATE_DATA); + return cdp_avp_new( + avp_code, avp_flags, avp_vendorid, s, AVP_DUPLICATE_DATA); } -inline AAA_AVP* cdp_avp_new_Time(int avp_code,int avp_flags,int avp_vendorid,time_t data) +inline AAA_AVP *cdp_avp_new_Time( + int avp_code, int avp_flags, int avp_vendorid, time_t data) { char x[4]; - str s={x,4}; - uint32_t ntime = htonl(data+EPOCH_UNIX_TO_EPOCH_NTP); - memcpy(x,&ntime,sizeof(uint32_t)); - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,s,AVP_DUPLICATE_DATA); + str s = {x, 4}; + uint32_t ntime = htonl(data + EPOCH_UNIX_TO_EPOCH_NTP); + memcpy(x, &ntime, sizeof(uint32_t)); + return cdp_avp_new( + avp_code, avp_flags, avp_vendorid, s, AVP_DUPLICATE_DATA); } -inline AAA_AVP *cdp_avp_new_UTF8String(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do) +inline AAA_AVP *cdp_avp_new_UTF8String(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do) { - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,data,data_do); + return cdp_avp_new(avp_code, avp_flags, avp_vendorid, data, data_do); } -inline AAA_AVP* cdp_avp_new_DiameterIdentity(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do) +inline AAA_AVP *cdp_avp_new_DiameterIdentity(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do) { - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,data,data_do); + return cdp_avp_new(avp_code, avp_flags, avp_vendorid, data, data_do); } -inline AAA_AVP* cdp_avp_new_DiameterURI(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do) +inline AAA_AVP *cdp_avp_new_DiameterURI(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do) { - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,data,data_do); + return cdp_avp_new(avp_code, avp_flags, avp_vendorid, data, data_do); } -inline AAA_AVP* cdp_avp_new_Enumerated(int avp_code,int avp_flags,int avp_vendorid,int32_t data) +inline AAA_AVP *cdp_avp_new_Enumerated( + int avp_code, int avp_flags, int avp_vendorid, int32_t data) { char x[4]; - str s={x,4}; - set_4bytes(x,data); - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,s,AVP_DUPLICATE_DATA); + str s = {x, 4}; + set_4bytes(x, data); + return cdp_avp_new( + avp_code, avp_flags, avp_vendorid, s, AVP_DUPLICATE_DATA); } -inline AAA_AVP* cdp_avp_new_IPFilterRule(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do) +inline AAA_AVP *cdp_avp_new_IPFilterRule(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do) { - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,data,data_do); + return cdp_avp_new(avp_code, avp_flags, avp_vendorid, data, data_do); } -inline AAA_AVP* cdp_avp_new_QoSFilterRule(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do) +inline AAA_AVP *cdp_avp_new_QoSFilterRule(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do) { - return cdp_avp_new(avp_code,avp_flags,avp_vendorid,data,data_do); + return cdp_avp_new(avp_code, avp_flags, avp_vendorid, data, data_do); } diff --git a/src/modules/cdp_avp/avp_new_base_data_format.h b/src/modules/cdp_avp/avp_new_base_data_format.h index e7e7e4496e5..c2c105b5674 100644 --- a/src/modules/cdp_avp/avp_new_base_data_format.h +++ b/src/modules/cdp_avp/avp_new_base_data_format.h @@ -43,131 +43,183 @@ #ifndef CDP_AVP_REFERENCE - #include "../cdp/cdp_load.h" - - #include - #include - - typedef struct { - uint16_t ai_family; - union{ - struct in_addr v4; - struct in6_addr v6; - } ip; - } ip_address; - - typedef struct { - uint8_t prefix; - ip_address addr; - } ip_address_prefix; - - - #define EPOCH_UNIX_TO_EPOCH_NTP 2208988800u // according to http://www.cis.udel.edu/~mills/y2k.html - - - /* +#include "../cdp/cdp_load.h" + +#include +#include + +typedef struct +{ + uint16_t ai_family; + union + { + struct in_addr v4; + struct in6_addr v6; + } ip; +} ip_address; + +typedef struct +{ + uint8_t prefix; + ip_address addr; +} ip_address_prefix; + + +#define EPOCH_UNIX_TO_EPOCH_NTP \ + 2208988800u // according to http://www.cis.udel.edu/~mills/y2k.html + + +/* * RFC 3588 Basic AVP Data Types * * http://tools.ietf.org/html/rfc3588#section-4.2 * */ - - AAA_AVP* cdp_avp_new_OctetString(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - typedef AAA_AVP* (*cdp_avp_new_OctetString_f)(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - - AAA_AVP* cdp_avp_new_Integer32(int avp_code,int avp_flags,int avp_vendorid,int32_t data); - typedef AAA_AVP* (*cdp_avp_new_Integer32_f)(int avp_code,int avp_flags,int avp_vendorid,int32_t data); - - - AAA_AVP* cdp_avp_new_Integer64(int avp_code,int avp_flags,int avp_vendorid,int64_t data); - typedef AAA_AVP* (*cdp_avp_new_Integer64_f)(int avp_code,int avp_flags,int avp_vendorid,int64_t data); - - - AAA_AVP* cdp_avp_new_Unsigned32(int avp_code,int avp_flags,int avp_vendorid,uint32_t data); - typedef AAA_AVP* (*cdp_avp_new_Unsigned32_f)(int avp_code,int avp_flags,int avp_vendorid,uint32_t data); - - - AAA_AVP* cdp_avp_new_Unsigned64(int avp_code,int avp_flags,int avp_vendorid,uint64_t data); - typedef AAA_AVP* (*cdp_avp_new_Unsigned64_f)(int avp_code,int avp_flags,int avp_vendorid,uint64_t data); - - - AAA_AVP* cdp_avp_new_Float32(int avp_code,int avp_flags,int avp_vendorid,float data); - typedef AAA_AVP* (*cdp_avp_new_Float32_f)(int avp_code,int avp_flags,int avp_vendorid,float data); - - - AAA_AVP* cdp_avp_new_Float64(int avp_code,int avp_flags,int avp_vendorid,double data); - typedef AAA_AVP* (*cdp_avp_new_Float64_f)(int avp_code,int avp_flags,int avp_vendorid,double data); - - - AAA_AVP* cdp_avp_new_Grouped(int avp_code,int avp_flags,int avp_vendorid,AAA_AVP_LIST *list,AVPDataStatus data_do); - typedef AAA_AVP* (*cdp_avp_new_Grouped_f)(int avp_code,int avp_flags,int avp_vendorid,AAA_AVP_LIST *list,AVPDataStatus data_do); - - - /* + +AAA_AVP *cdp_avp_new_OctetString(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do); +typedef AAA_AVP *(*cdp_avp_new_OctetString_f)(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); + +AAA_AVP *cdp_avp_new_Integer32( + int avp_code, int avp_flags, int avp_vendorid, int32_t data); +typedef AAA_AVP *(*cdp_avp_new_Integer32_f)( + int avp_code, int avp_flags, int avp_vendorid, int32_t data); + + +AAA_AVP *cdp_avp_new_Integer64( + int avp_code, int avp_flags, int avp_vendorid, int64_t data); +typedef AAA_AVP *(*cdp_avp_new_Integer64_f)( + int avp_code, int avp_flags, int avp_vendorid, int64_t data); + + +AAA_AVP *cdp_avp_new_Unsigned32( + int avp_code, int avp_flags, int avp_vendorid, uint32_t data); +typedef AAA_AVP *(*cdp_avp_new_Unsigned32_f)( + int avp_code, int avp_flags, int avp_vendorid, uint32_t data); + + +AAA_AVP *cdp_avp_new_Unsigned64( + int avp_code, int avp_flags, int avp_vendorid, uint64_t data); +typedef AAA_AVP *(*cdp_avp_new_Unsigned64_f)( + int avp_code, int avp_flags, int avp_vendorid, uint64_t data); + + +AAA_AVP *cdp_avp_new_Float32( + int avp_code, int avp_flags, int avp_vendorid, float data); +typedef AAA_AVP *(*cdp_avp_new_Float32_f)( + int avp_code, int avp_flags, int avp_vendorid, float data); + + +AAA_AVP *cdp_avp_new_Float64( + int avp_code, int avp_flags, int avp_vendorid, double data); +typedef AAA_AVP *(*cdp_avp_new_Float64_f)( + int avp_code, int avp_flags, int avp_vendorid, double data); + + +AAA_AVP *cdp_avp_new_Grouped(int avp_code, int avp_flags, int avp_vendorid, + AAA_AVP_LIST *list, AVPDataStatus data_do); +typedef AAA_AVP *(*cdp_avp_new_Grouped_f)(int avp_code, int avp_flags, + int avp_vendorid, AAA_AVP_LIST *list, AVPDataStatus data_do); + + +/* * RFC 3588 Derived AVP Data Formats * * http://tools.ietf.org/html/rfc3588#section-4.3 * */ - - AAA_AVP* cdp_avp_new_Address(int avp_code,int avp_flags,int avp_vendorid,ip_address data); - typedef AAA_AVP* (*cdp_avp_new_Address_f)(int avp_code,int avp_flags,int avp_vendorid,ip_address data); - - AAA_AVP* cdp_avp_new_Time(int avp_code,int avp_flags,int avp_vendorid,time_t data); - typedef AAA_AVP* (*cdp_avp_new_Time_f)(int avp_code,int avp_flags,int avp_vendorid,time_t data); - - AAA_AVP* cdp_avp_new_UTF8String(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - typedef AAA_AVP* (*cdp_avp_new_UTF8String_f)(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - - AAA_AVP* cdp_avp_new_DiameterIdentity(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - typedef AAA_AVP* (*cdp_avp_new_DiameterIdentity_f)(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - - AAA_AVP* cdp_avp_new_DiameterURI(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - typedef AAA_AVP* (*cdp_avp_new_DiameterURI_f)(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - - AAA_AVP* cdp_avp_new_Enumerated(int avp_code,int avp_flags,int avp_vendorid,int32_t data); - typedef AAA_AVP* (*cdp_avp_new_Enumerated_f)(int avp_code,int avp_flags,int avp_vendorid,int32_t data); - - AAA_AVP* cdp_avp_new_IPFilterRule(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - typedef AAA_AVP* (*cdp_avp_new_IPFilterRule_f)(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - - AAA_AVP* cdp_avp_new_QoSFilterRule(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - typedef AAA_AVP* (*cdp_avp_new_QoSFilterRule_f)(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - + +AAA_AVP *cdp_avp_new_Address( + int avp_code, int avp_flags, int avp_vendorid, ip_address data); +typedef AAA_AVP *(*cdp_avp_new_Address_f)( + int avp_code, int avp_flags, int avp_vendorid, ip_address data); + +AAA_AVP *cdp_avp_new_Time( + int avp_code, int avp_flags, int avp_vendorid, time_t data); +typedef AAA_AVP *(*cdp_avp_new_Time_f)( + int avp_code, int avp_flags, int avp_vendorid, time_t data); + +AAA_AVP *cdp_avp_new_UTF8String(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do); +typedef AAA_AVP *(*cdp_avp_new_UTF8String_f)(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); + +AAA_AVP *cdp_avp_new_DiameterIdentity(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); +typedef AAA_AVP *(*cdp_avp_new_DiameterIdentity_f)(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); + +AAA_AVP *cdp_avp_new_DiameterURI(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do); +typedef AAA_AVP *(*cdp_avp_new_DiameterURI_f)(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); + +AAA_AVP *cdp_avp_new_Enumerated( + int avp_code, int avp_flags, int avp_vendorid, int32_t data); +typedef AAA_AVP *(*cdp_avp_new_Enumerated_f)( + int avp_code, int avp_flags, int avp_vendorid, int32_t data); + +AAA_AVP *cdp_avp_new_IPFilterRule(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do); +typedef AAA_AVP *(*cdp_avp_new_IPFilterRule_f)(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); + +AAA_AVP *cdp_avp_new_QoSFilterRule(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); +typedef AAA_AVP *(*cdp_avp_new_QoSFilterRule_f)(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); + #else - - AAA_AVP* basic.new_OctetString(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - - AAA_AVP* basic.new_Integer32(int avp_code,int avp_flags,int avp_vendorid,int32_t data); - - AAA_AVP* basic.new_Integer64(int avp_code,int avp_flags,int avp_vendorid,int64_t data); - - AAA_AVP* basic.new_Unsigned32(int avp_code,int avp_flags,int avp_vendorid,uint32_t data); - - AAA_AVP* basic.new_Unsigned64(int avp_code,int avp_flags,int avp_vendorid,uint64_t data); - - AAA_AVP* basic.new_Float32(int avp_code,int avp_flags,int avp_vendorid,float data); - - AAA_AVP* basic.new_Float64(int avp_code,int avp_flags,int avp_vendorid,double data); - - AAA_AVP* basic.new_Grouped(int avp_code,int avp_flags,int avp_vendorid,AAA_AVP_LIST *list,AVPDataStatus data_do); - - AAA_AVP* basic.new_Address(int avp_code,int avp_flags,int avp_vendorid,ip_address data); - - AAA_AVP* basic.new_Time(int avp_code,int avp_flags,int avp_vendorid,time_t data); - - AAA_AVP* basic.new_UTF8String(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - - AAA_AVP* basic.new_DiameterIdentity(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - - AAA_AVP* basic.new_DiameterURI(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - - AAA_AVP* basic.new_Enumerated(int avp_code,int avp_flags,int avp_vendorid,int32_t data); - - AAA_AVP* basic.new_IPFilterRule(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); - - AAA_AVP* basic.new_QoSFilterRule(int avp_code,int avp_flags,int avp_vendorid,str data,AVPDataStatus data_do); + +AAA_AVP *basic.new_OctetString(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do); + +AAA_AVP *basic.new_Integer32( + int avp_code, int avp_flags, int avp_vendorid, int32_t data); + +AAA_AVP *basic.new_Integer64( + int avp_code, int avp_flags, int avp_vendorid, int64_t data); + +AAA_AVP *basic.new_Unsigned32( + int avp_code, int avp_flags, int avp_vendorid, uint32_t data); + +AAA_AVP *basic.new_Unsigned64( + int avp_code, int avp_flags, int avp_vendorid, uint64_t data); + +AAA_AVP *basic.new_Float32( + int avp_code, int avp_flags, int avp_vendorid, float data); + +AAA_AVP *basic.new_Float64( + int avp_code, int avp_flags, int avp_vendorid, double data); + +AAA_AVP *basic.new_Grouped(int avp_code, int avp_flags, int avp_vendorid, + AAA_AVP_LIST *list, AVPDataStatus data_do); + +AAA_AVP *basic.new_Address( + int avp_code, int avp_flags, int avp_vendorid, ip_address data); + +AAA_AVP *basic.new_Time( + int avp_code, int avp_flags, int avp_vendorid, time_t data); + +AAA_AVP *basic.new_UTF8String(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do); + +AAA_AVP *basic.new_DiameterIdentity(int avp_code, int avp_flags, + int avp_vendorid, str data, AVPDataStatus data_do); + +AAA_AVP *basic.new_DiameterURI(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do); + +AAA_AVP *basic.new_Enumerated( + int avp_code, int avp_flags, int avp_vendorid, int32_t data); + +AAA_AVP *basic.new_IPFilterRule(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do); + +AAA_AVP *basic.new_QoSFilterRule(int avp_code, int avp_flags, int avp_vendorid, + str data, AVPDataStatus data_do); #endif diff --git a/src/modules/cdp_avp/base.c b/src/modules/cdp_avp/base.c index 99556aed7ed..81f2b6e034e 100644 --- a/src/modules/cdp_avp/base.c +++ b/src/modules/cdp_avp/base.c @@ -55,9 +55,6 @@ extern struct cdp_binds *cdp; #define CDP_AVP_DEFINITION - #include "base.h" +#include "base.h" #undef CDP_AVP_DEFINITION - - - diff --git a/src/modules/cdp_avp/base.h b/src/modules/cdp_avp/base.h index 51ec7ab42ed..6dbd0b984f7 100644 --- a/src/modules/cdp_avp/base.h +++ b/src/modules/cdp_avp/base.h @@ -51,21 +51,22 @@ #undef CDP_AVP_MODULE #define CDP_AVP_MODULE base -#if !defined(CDP_AVP_DECLARATION) && !defined(CDP_AVP_EXPORT) && !defined(CDP_AVP_INIT) && !defined(CDP_AVP_REFERENCE) - #ifndef _CDP_AVP_BASE_H_1 - #define _CDP_AVP_BASE_H_1 +#if !defined(CDP_AVP_DECLARATION) && !defined(CDP_AVP_EXPORT) \ + && !defined(CDP_AVP_INIT) && !defined(CDP_AVP_REFERENCE) +#ifndef _CDP_AVP_BASE_H_1 +#define _CDP_AVP_BASE_H_1 - #include "../cdp/cdp_load.h" +#include "../cdp/cdp_load.h" - #else +#else - /* undo the macros definition if this was re-included */ - #define CDP_AVP_EMPTY_MACROS - #include "macros.h" - #undef CDP_AVP_EMPTY_MACROS +/* undo the macros definition if this was re-included */ +#define CDP_AVP_EMPTY_MACROS +#include "macros.h" +#undef CDP_AVP_EMPTY_MACROS - #endif -#endif //_CDP_AVP_BASE_H_1 +#endif +#endif //_CDP_AVP_BASE_H_1 /* * The list of AVPs must be declared in the following format: @@ -154,127 +155,348 @@ * cdp_avp_get(...) and data_type AAA_AVP_LIST */ -cdp_avp_add (Vendor_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) -cdp_avp_get (Vendor_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Firmware_Revision, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Host_IP_Address, 0, AAA_AVP_FLAG_MANDATORY, Address, ip_address) - -cdp_avp (Supported_Vendor_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (Product_Name, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Disconnect_Cause, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Origin_Host, 0, AAA_AVP_FLAG_MANDATORY, DiameterIdentity, str) - -cdp_avp_ptr (Origin_Realm, 0, AAA_AVP_FLAG_MANDATORY, DiameterIdentity, str) - -cdp_avp_ptr (Destination_Host, 0, AAA_AVP_FLAG_MANDATORY, DiameterIdentity, str) - -cdp_avp_ptr (Destination_Realm, 0, AAA_AVP_FLAG_MANDATORY, DiameterIdentity, str) - -cdp_avp_ptr (Route_Record, 0, AAA_AVP_FLAG_MANDATORY, DiameterIdentity, str) - -cdp_avp_ptr (Proxy_Host, 0, AAA_AVP_FLAG_MANDATORY, DiameterIdentity, str) - -cdp_avp_ptr (Proxy_State, 0, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (Proxy_Info, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Proxy_Info, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Auth_Application_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Acct_Application_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Inband_Security_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_add_ptr (Vendor_Specific_Application_Id,0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Vendor_Specific_Application_Id,0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) -cdp_avp_get3 (Vendor_Specific_Application_Id,0, AAA_AVP_FLAG_MANDATORY, Vendor_Id, uint32_t, Auth_Application_Id, uint32_t, Acct_Application_Id, uint32_t) - -cdp_avp_ptr (Redirect_Host, 0, AAA_AVP_FLAG_MANDATORY, DiameterIdentity, str) - -cdp_avp (Redirect_Host_Usage, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Redirect_Max_Cache_Time, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (E2E_Sequence, 0, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Result_Code, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (Error_Message, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (Error_Reporting_Host, 0, AAA_AVP_FLAG_MANDATORY, DiameterIdentity, str) - -cdp_avp_add_ptr (Failed_AVP, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Failed_AVP, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Experimental_Result_Code, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_add_ptr (Experimental_Result, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Experimental_Result, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) -cdp_avp2 (Experimental_Result, 0, AAA_AVP_FLAG_MANDATORY, Vendor_Id, uint32_t, Experimental_Result_Code, uint32_t) - -cdp_avp (Auth_Request_Type, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Session_Id, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Authorization_Lifetime, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Auth_Grace_Period, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Auth_Session_State, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Re_Auth_Request_Type, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Session_Timeout, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (User_Name, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Termination_Cause, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Origin_State_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Session_Binding, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Session_Server_Failover, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Multi_Round_Time_Out, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (Class, 0, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Event_Timestamp, 0, AAA_AVP_FLAG_MANDATORY, Time, time_t) - -cdp_avp (Accounting_Record_Type, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Acct_Interim_Interval, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Accounting_Record_Number, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (Acct_Session_Id, 0, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (Acct_Multi_Session_Id, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Accounting_Sub_Session_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp (Accounting_Realtime_Required, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (MIP6_Agent_Info, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (MIP6_Agent_Info, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (MIP_Home_Agent_Address, 0, AAA_AVP_FLAG_MANDATORY, Address, ip_address) - -cdp_avp_add_ptr (MIP_Home_Agent_Host, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (MIP_Home_Agent_Host, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (MIP6_Home_Link_Prefix, 0, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (MIP6_Feature_Vector, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp_ptr (Service_Selection, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - +cdp_avp_add(Vendor_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) cdp_avp_get(Vendor_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp(Firmware_Revision, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp(Host_IP_Address, 0, AAA_AVP_FLAG_MANDATORY, Address, + ip_address) + + cdp_avp(Supported_Vendor_Id, 0, AAA_AVP_FLAG_MANDATORY, + Unsigned32, uint32_t) + + cdp_avp_ptr(Product_Name, 0, + AAA_AVP_FLAG_MANDATORY, UTF8String, str) + + cdp_avp(Disconnect_Cause, 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, int32_t) + + cdp_avp_ptr(Origin_Host, 0, + AAA_AVP_FLAG_MANDATORY, + DiameterIdentity, str) + + cdp_avp_ptr( + Origin_Realm, 0, + AAA_AVP_FLAG_MANDATORY, + DiameterIdentity, + str) + + cdp_avp_ptr( + Destination_Host, + 0, + AAA_AVP_FLAG_MANDATORY, + DiameterIdentity, + str) + + cdp_avp_ptr( + Destination_Realm, + 0, + AAA_AVP_FLAG_MANDATORY, + DiameterIdentity, + str) + + cdp_avp_ptr( + Route_Record, + 0, + AAA_AVP_FLAG_MANDATORY, + DiameterIdentity, + str) + + cdp_avp_ptr( + Proxy_Host, + 0, + AAA_AVP_FLAG_MANDATORY, + DiameterIdentity, + str) + + cdp_avp_ptr( + Proxy_State, + 0, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr( + Proxy_Info, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Proxy_Info, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Auth_Application_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Acct_Application_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Inband_Security_Id, 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + Vendor_Specific_Application_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Vendor_Specific_Application_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + cdp_avp_get3( + Vendor_Specific_Application_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + Vendor_Id, + uint32_t, Auth_Application_Id, uint32_t, + Acct_Application_Id, + uint32_t) + + cdp_avp_ptr( + Redirect_Host, + 0, + AAA_AVP_FLAG_MANDATORY, + DiameterIdentity, + str) + + cdp_avp(Redirect_Host_Usage, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Redirect_Max_Cache_Time, 0, AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_ptr( + E2E_Sequence, + 0, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp(Result_Code, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_ptr(Error_Message, 0, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_ptr( + Error_Reporting_Host, + 0, + AAA_AVP_FLAG_MANDATORY, + DiameterIdentity, + str) + + cdp_avp_add_ptr(Failed_AVP, 0, AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Failed_AVP, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Experimental_Result_Code, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + Experimental_Result, + 0, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(Experimental_Result, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + cdp_avp2( + Experimental_Result, + 0, + AAA_AVP_FLAG_MANDATORY, + Vendor_Id, uint32_t, Experimental_Result_Code, + uint32_t) + + cdp_avp(Auth_Request_Type, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr( + Session_Id, 0, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(Authorization_Lifetime, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Auth_Grace_Period, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Auth_Session_State, 0, AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Re_Auth_Request_Type, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Session_Timeout, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_ptr( + User_Name, + 0, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(Termination_Cause, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, int32_t) + + cdp_avp(Origin_State_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Session_Binding, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Session_Server_Failover, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Multi_Round_Time_Out, + 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp_ptr( + Class, + 0, + AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp(Event_Timestamp, 0, AAA_AVP_FLAG_MANDATORY, Time, time_t) + + cdp_avp(Accounting_Record_Type, + 0, + AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp(Acct_Interim_Interval, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) + + cdp_avp(Accounting_Record_Number, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_ptr(Acct_Session_Id, 0, AAA_AVP_FLAG_MANDATORY, OctetString, str) + + cdp_avp_ptr( + Acct_Multi_Session_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + UTF8String, str) + + cdp_avp(Accounting_Sub_Session_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) + + cdp_avp(Accounting_Realtime_Required, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp_add_ptr( + MIP6_Agent_Info, + 0, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + MIP6_Agent_Info, 0, AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(MIP_Home_Agent_Address, + 0, + AAA_AVP_FLAG_MANDATORY, + Address, + ip_address) + + cdp_avp_add_ptr( + MIP_Home_Agent_Host, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST *) cdp_avp_get(MIP_Home_Agent_Host, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + MIP6_Home_Link_Prefix, + 0, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp(MIP6_Feature_Vector, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, + uint64_t) + + cdp_avp_ptr( + Service_Selection, + 0, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) /* @@ -283,7 +505,7 @@ cdp_avp_ptr (Service_Selection, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str #if defined(CDP_AVP_DEFINITION) - /* + /* * Put here your supplimentary definitions. Typically: * * int (param1) @@ -293,57 +515,61 @@ cdp_avp_ptr (Service_Selection, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str * * */ - - int cdp_avp_add_Vendor_Specific_Application_Id_Group(AAA_AVP_LIST *list,uint32_t vendor_id,uint32_t auth_app_id,uint32_t acct_app_id) - { - AAA_AVP_LIST list_grp={0,0}; - if (!cdp_avp_add_Vendor_Id(&list_grp,vendor_id)) goto error; - if (auth_app_id && !cdp_avp_add_Auth_Application_Id(&list_grp,auth_app_id)) goto error; - if (acct_app_id && !cdp_avp_add_Acct_Application_Id(&list_grp,acct_app_id)) goto error; - return cdp_avp_add_to_list(list, - cdp_avp_new_Grouped( - AVP_Vendor_Specific_Application_Id, - AAA_AVP_FLAG_MANDATORY, - 0, - &list_grp, - AVP_FREE_DATA)); - error: - cdp->AAAFreeAVPList(&list_grp); - return 0; - } - - /** + + int cdp_avp_add_Vendor_Specific_Application_Id_Group(AAA_AVP_LIST *list, + uint32_t vendor_id, uint32_t auth_app_id, uint32_t acct_app_id) +{ + AAA_AVP_LIST list_grp = {0, 0}; + if(!cdp_avp_add_Vendor_Id(&list_grp, vendor_id)) + goto error; + if(auth_app_id && !cdp_avp_add_Auth_Application_Id(&list_grp, auth_app_id)) + goto error; + if(acct_app_id && !cdp_avp_add_Acct_Application_Id(&list_grp, acct_app_id)) + goto error; + return cdp_avp_add_to_list( + list, cdp_avp_new_Grouped(AVP_Vendor_Specific_Application_Id, + AAA_AVP_FLAG_MANDATORY, 0, &list_grp, AVP_FREE_DATA)); +error: + cdp->AAAFreeAVPList(&list_grp); + return 0; +} + +/** * http://tools.ietf.org/html/rfc3588#section-6.11 * @param list * @param data * @return */ - int cdp_avp_get_Vendor_Specific_Application_Id_example(AAA_AVP_LIST list,uint32_t *vendor_id,uint32_t *auth_app_id,uint32_t *acct_app_id) - { - AAA_AVP_LIST list_grp={0,0}; - AAA_AVP *avp = cdp_avp_get_from_list(list, - AVP_Vendor_Specific_Application_Id, - 0); - if (!avp) goto error; - cdp_avp_get_Grouped(avp,&list_grp); - if (!cdp_avp_get_Vendor_Id(list_grp,vendor_id,0)) goto error; - cdp_avp_get_Auth_Application_Id(list_grp,auth_app_id,0); - cdp_avp_get_Acct_Application_Id(list_grp,acct_app_id,0); - cdp->AAAFreeAVPList(&list_grp); - return 1; - error: - if (vendor_id) *vendor_id = 0; - if (auth_app_id) *auth_app_id = 0; - if (acct_app_id) *acct_app_id = 0; - cdp->AAAFreeAVPList(&list_grp); - return 0; - } - +int cdp_avp_get_Vendor_Specific_Application_Id_example(AAA_AVP_LIST list, + uint32_t *vendor_id, uint32_t *auth_app_id, uint32_t *acct_app_id) +{ + AAA_AVP_LIST list_grp = {0, 0}; + AAA_AVP *avp = + cdp_avp_get_from_list(list, AVP_Vendor_Specific_Application_Id, 0); + if(!avp) + goto error; + cdp_avp_get_Grouped(avp, &list_grp); + if(!cdp_avp_get_Vendor_Id(list_grp, vendor_id, 0)) + goto error; + cdp_avp_get_Auth_Application_Id(list_grp, auth_app_id, 0); + cdp_avp_get_Acct_Application_Id(list_grp, acct_app_id, 0); + cdp->AAAFreeAVPList(&list_grp); + return 1; +error: + if(vendor_id) + *vendor_id = 0; + if(auth_app_id) + *auth_app_id = 0; + if(acct_app_id) + *acct_app_id = 0; + cdp->AAAFreeAVPList(&list_grp); + return 0; +} #elif defined(CDP_AVP_EXPORT) - /* + /* * Put here your supplimentary exports in the format: * ; * ; @@ -351,14 +577,16 @@ cdp_avp_ptr (Service_Selection, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str * */ - cdp_avp_add_Vendor_Specific_Application_Id_Group_f add_Vendor_Specific_Application_Id_Group; + cdp_avp_add_Vendor_Specific_Application_Id_Group_f + add_Vendor_Specific_Application_Id_Group; + +cdp_avp_get_Vendor_Specific_Application_Id_example_f + get_Vendor_Specific_Application_Id_example; - cdp_avp_get_Vendor_Specific_Application_Id_example_f get_Vendor_Specific_Application_Id_example; - #elif defined(CDP_AVP_INIT) - /* + /* * Put here your supplimentary inits in the format: * , * , @@ -368,31 +596,33 @@ cdp_avp_ptr (Service_Selection, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str * */ - cdp_avp_add_Vendor_Specific_Application_Id_Group, - - cdp_avp_get_Vendor_Specific_Application_Id_example, - + cdp_avp_add_Vendor_Specific_Application_Id_Group, + + cdp_avp_get_Vendor_Specific_Application_Id_example, #elif defined(CDP_AVP_REFERENCE) - /* + /* * Put here what you want to get in the reference. Typically: * * * ... * */ - int CDP_AVP_MODULE.add_Vendor_Specific_Application_Id_Group(AAA_AVP_LIST *list,uint32_t vendor_id,uint32_t auth_app_id,uint32_t acct_app_id); - - int CDP_AVP_MODULE.get_Vendor_Specific_Application_Id_example(AAA_AVP_LIST list,uint32_t *vendor_id,uint32_t *auth_app_id,uint32_t *acct_app_id); - + int CDP_AVP_MODULE.add_Vendor_Specific_Application_Id_Group( + AAA_AVP_LIST *list, uint32_t vendor_id, uint32_t auth_app_id, + uint32_t acct_app_id); + +int CDP_AVP_MODULE.get_Vendor_Specific_Application_Id_example(AAA_AVP_LIST list, + uint32_t *vendor_id, uint32_t *auth_app_id, uint32_t *acct_app_id); + #elif defined(CDP_AVP_EMPTY_MACROS) - - /* this should be left blank */ - + +/* this should be left blank */ + #else - /* +/* * Put here your definitions according to the declarations, exports, init, etc above. Typically: * * int @@ -404,27 +634,30 @@ cdp_avp_ptr (Service_Selection, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str * ... * */ - - #ifndef _CDP_AVP_BASE_H_2 - #define _CDP_AVP_BASE_H_2 - - int cdp_avp_add_Vendor_Specific_Application_Id_Group(AAA_AVP_LIST *list,uint32_t vendor_id,uint32_t auth_app_id,uint32_t acct_app_id); - typedef int (*cdp_avp_add_Vendor_Specific_Application_Id_Group_f)(AAA_AVP_LIST *list,uint32_t vendor_id,uint32_t auth_app_id,uint32_t acct_app_id); - - int cdp_avp_get_Vendor_Specific_Application_Id_example(AAA_AVP_LIST list,uint32_t *vendor_id,uint32_t *auth_app_id,uint32_t *acct_app_id); - typedef int (*cdp_avp_get_Vendor_Specific_Application_Id_example_f)(AAA_AVP_LIST list,uint32_t *vendor_id,uint32_t *auth_app_id,uint32_t *acct_app_id); - - - #endif //_CDP_AVP_BASE_H_2 - -#endif +#ifndef _CDP_AVP_BASE_H_2 +#define _CDP_AVP_BASE_H_2 + int cdp_avp_add_Vendor_Specific_Application_Id_Group( + AAA_AVP_LIST + *list, + uint32_t vendor_id, uint32_t auth_app_id, uint32_t acct_app_id); +typedef int (*cdp_avp_add_Vendor_Specific_Application_Id_Group_f)( + AAA_AVP_LIST *list, uint32_t vendor_id, uint32_t auth_app_id, + uint32_t acct_app_id); -#define CDP_AVP_UNDEF_MACROS - #include "macros.h" -#undef CDP_AVP_UNDEF_MACROS - +int cdp_avp_get_Vendor_Specific_Application_Id_example(AAA_AVP_LIST list, + uint32_t *vendor_id, uint32_t *auth_app_id, uint32_t *acct_app_id); +typedef int (*cdp_avp_get_Vendor_Specific_Application_Id_example_f)( + AAA_AVP_LIST list, uint32_t *vendor_id, uint32_t *auth_app_id, + uint32_t *acct_app_id); +#endif //_CDP_AVP_BASE_H_2 + +#endif + +#define CDP_AVP_UNDEF_MACROS +#include "macros.h" +#undef CDP_AVP_UNDEF_MACROS diff --git a/src/modules/cdp_avp/ccapp.c b/src/modules/cdp_avp/ccapp.c index 473e424508a..973506c6e4b 100644 --- a/src/modules/cdp_avp/ccapp.c +++ b/src/modules/cdp_avp/ccapp.c @@ -55,9 +55,6 @@ extern struct cdp_binds *cdp; #define CDP_AVP_DEFINITION - #include "ccapp.h" +#include "ccapp.h" #undef CDP_AVP_DEFINITION - - - diff --git a/src/modules/cdp_avp/ccapp.h b/src/modules/cdp_avp/ccapp.h index 4584c558c5f..7ddc8d72cc3 100644 --- a/src/modules/cdp_avp/ccapp.h +++ b/src/modules/cdp_avp/ccapp.h @@ -50,21 +50,22 @@ #undef CDP_AVP_MODULE #define CDP_AVP_MODULE ccapp -#if !defined(CDP_AVP_DECLARATION) && !defined(CDP_AVP_EXPORT) && !defined(CDP_AVP_INIT) && !defined(CDP_AVP_REFERENCE) - #ifndef _CDP_AVP_CCAPP_H_1 - #define _CDP_AVP_CCAPP_H_1 +#if !defined(CDP_AVP_DECLARATION) && !defined(CDP_AVP_EXPORT) \ + && !defined(CDP_AVP_INIT) && !defined(CDP_AVP_REFERENCE) +#ifndef _CDP_AVP_CCAPP_H_1 +#define _CDP_AVP_CCAPP_H_1 - #include "../cdp/cdp_load.h" +#include "../cdp/cdp_load.h" - #else +#else - /* undo the macros definition if this was re-included */ - #define CDP_AVP_EMPTY_MACROS - #include "macros.h" - #undef CDP_AVP_EMPTY_MACROS +/* undo the macros definition if this was re-included */ +#define CDP_AVP_EMPTY_MACROS +#include "macros.h" +#undef CDP_AVP_EMPTY_MACROS - #endif -#endif //_CDP_AVP_CCAPP_H_1 +#endif +#endif //_CDP_AVP_CCAPP_H_1 /* * The list of AVPs must be declared in the following format: @@ -154,120 +155,354 @@ */ -cdp_avp_ptr (CC_Correlation_Id, 0, 0, OctetString, str) - -cdp_avp (CC_Input_Octets, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp_add_ptr (CC_Money, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (CC_Money, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (CC_Output_Octets, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp (CC_Request_Number, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (CC_Request_Type, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (CC_Service_Specific_Units, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp (CC_Session_Failover, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (CC_Sub_Session_Id, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp (CC_Time, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (CC_Total_Octets, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp (CC_Unit_Type, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Check_Balance_Result, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (Cost_Information, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Cost_Information, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Cost_Unit, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Credit_Control, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Credit_Control_Failure_Handling,0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Currency_Code, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Direct_Debiting_Failure_Handling,0,AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Exponent, 0, AAA_AVP_FLAG_MANDATORY, Integer32, int32_t) - -cdp_avp (Final_Unit_Action, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (Final_Unit_Indication, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Final_Unit_Indication, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Granted_Service_Unit, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Granted_Service_Unit, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (G_S_U_Pool_Identifier, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_add_ptr (G_S_U_Pool_Reference, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (G_S_U_Pool_Reference, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Multiple_Services_Credit_Control,0,AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Multiple_Services_Credit_Control,0,AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Multiple_Services_Indicator, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Rating_Group, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Redirect_Address_Type, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (Redirect_Server, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Redirect_Server, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Redirect_Server_Address, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Requested_Action, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (Requested_Service_Unit, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Requested_Service_Unit, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Restriction_Filter_Rule, 0, AAA_AVP_FLAG_MANDATORY, IPFilterRule, str) - -cdp_avp_ptr (Service_Context_Id, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Service_Identifier, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_add_ptr (Service_Parameter_Info, 0, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Service_Parameter_Info, 0, 0, Grouped, AAA_AVP_LIST) - -cdp_avp (Service_Parameter_Type, 0, 0, Unsigned32, uint32_t) - -cdp_avp_ptr (Service_Parameter_Value, 0, 0, OctetString, str) - -cdp_avp_add_ptr (Subscription_Id, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Subscription_Id, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Subscription_Id_Data, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Subscription_Id_Type, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Tariff_Change_Usage, 0, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Tariff_Time_Change, 0, AAA_AVP_FLAG_MANDATORY, Time, time_t) - -cdp_avp_add_ptr (Unit_Value, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Unit_Value, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Used_Service_Unit, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Used_Service_Unit, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (User_Equipment_Info, 0, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (User_Equipment_Info, 0, 0, Grouped, AAA_AVP_LIST) - -cdp_avp (User_Equipment_Info_Type, 0, 0, Enumerated, int32_t) - -cdp_avp_ptr (User_Equipment_Info_Value, 0, 0, OctetString, str) - -cdp_avp (Value_Digits, 0, AAA_AVP_FLAG_MANDATORY, Integer64, int64_t) - -cdp_avp (Validity_Time, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) +cdp_avp_ptr(CC_Correlation_Id, 0, 0, OctetString, str) + + cdp_avp(CC_Input_Octets, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, + uint64_t) + + cdp_avp_add_ptr(CC_Money, 0, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST *) + cdp_avp_get(CC_Money, 0, AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST) + + cdp_avp(CC_Output_Octets, 0, + AAA_AVP_FLAG_MANDATORY, Unsigned64, + uint64_t) + + cdp_avp(CC_Request_Number, 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, uint32_t) + + cdp_avp(CC_Request_Type, 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, int32_t) + + cdp_avp(CC_Service_Specific_Units, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned64, + uint64_t) + + cdp_avp(CC_Session_Failover, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(CC_Sub_Session_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned64, + uint64_t) + + cdp_avp(CC_Time, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(CC_Total_Octets, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned64, + uint64_t) + + cdp_avp(CC_Unit_Type, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Check_Balance_Result, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_add_ptr( + Cost_Information, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Cost_Information, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + Cost_Unit, + 0, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(Credit_Control, 0, AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Credit_Control_Failure_Handling, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Currency_Code, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Direct_Debiting_Failure_Handling, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Exponent, 0, + AAA_AVP_FLAG_MANDATORY, + Integer32, + int32_t) + + cdp_avp(Final_Unit_Action, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_add_ptr(Final_Unit_Indication, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get( + Final_Unit_Indication, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + Granted_Service_Unit, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Granted_Service_Unit, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(G_S_U_Pool_Identifier, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + G_S_U_Pool_Reference, 0, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) + cdp_avp_get( + G_S_U_Pool_Reference, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + Multiple_Services_Credit_Control, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Multiple_Services_Credit_Control, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Multiple_Services_Indicator, 0, AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Rating_Group, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Redirect_Address_Type, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_add_ptr( + Redirect_Server, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST *) cdp_avp_get(Redirect_Server, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + Redirect_Server_Address, 0, AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(Requested_Action, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_add_ptr( + Requested_Service_Unit, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) cdp_avp_get(Requested_Service_Unit, 0, AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + Restriction_Filter_Rule, + 0, + AAA_AVP_FLAG_MANDATORY, + IPFilterRule, + str) + + cdp_avp_ptr( + Service_Context_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(Service_Identifier, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr(Service_Parameter_Info, + 0, + 0, + Grouped, AAA_AVP_LIST *) + cdp_avp_get( + Service_Parameter_Info, 0, 0, Grouped, AAA_AVP_LIST) + + cdp_avp(Service_Parameter_Type, + 0, + 0, + Unsigned32, + uint32_t) + + cdp_avp_ptr( + Service_Parameter_Value, + 0, + 0, + OctetString, + str) + + cdp_avp_add_ptr( + Subscription_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Subscription_Id, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + Subscription_Id_Data, + 0, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(Subscription_Id_Type, + 0, + AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp(Tariff_Change_Usage, + 0, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Tariff_Time_Change, 0, AAA_AVP_FLAG_MANDATORY, Time, time_t) + + cdp_avp_add_ptr( + Unit_Value, + 0, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) + cdp_avp_get( + Unit_Value, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + Used_Service_Unit, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Used_Service_Unit, + 0, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + User_Equipment_Info, + 0, + 0, + Grouped, + AAA_AVP_LIST + *) cdp_avp_get(User_Equipment_Info, 0, 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp(User_Equipment_Info_Type, + 0, + 0, + Enumerated, + int32_t) + + cdp_avp_ptr( + User_Equipment_Info_Value, + 0, + 0, + OctetString, + str) + + cdp_avp(Value_Digits, + 0, + AAA_AVP_FLAG_MANDATORY, + Integer64, + int64_t) + + cdp_avp(Validity_Time, + 0, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) /* * From here-on you can define/export/init/declare functions which can not be generate with the macros @@ -275,7 +510,7 @@ cdp_avp (Validity_Time, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) #if defined(CDP_AVP_DEFINITION) - /* + /* * Put here your supplimentary definitions. Typically: * * int (param1) @@ -285,104 +520,120 @@ cdp_avp (Validity_Time, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) * * */ - - int cdp_avp_add_Subscription_Id_Group(AAA_AVP_LIST *list,int32_t type, str data,AVPDataStatus data_do) - { - AAA_AVP_LIST list_grp={0,0}; - if (!cdp_avp_add_Subscription_Id_Type(&list_grp,type)) goto error; - if (!cdp_avp_add_Subscription_Id_Data(&list_grp,data,data_do)) goto error; - return cdp_avp_add_to_list(list, - cdp_avp_new_Grouped( - AVP_Subscription_Id, - AAA_AVP_FLAG_MANDATORY, - 0, - &list_grp, - AVP_FREE_DATA)); - error: - if (data_do==AVP_FREE_DATA && data.s) shm_free(data.s); - cdp->AAAFreeAVPList(&list_grp); - return 0; - } - int cdp_avp_get_Subscription_Id_Group(AAA_AVP_LIST list,int32_t *type,str *data,AAA_AVP **avp_ptr) - { - AAA_AVP_LIST list_grp={0,0}; - AAA_AVP *avp = cdp_avp_get_next_from_list(list, - AVP_Subscription_Id, - 0, - avp_ptr?*avp_ptr:0); - if (avp_ptr) *avp_ptr= avp; - if (!avp) goto error; - if (!cdp_avp_get_Grouped(avp,&list_grp)) goto error; - if (!cdp_avp_get_Subscription_Id_Type(list_grp,type,0)) goto error; - if (!cdp_avp_get_Subscription_Id_Data(list_grp,data,0)) goto error; - cdp->AAAFreeAVPList(&list_grp); - return 1; - error: - if (type) *type = 0; - if (data) {data->s=0;data->len=0;} - cdp->AAAFreeAVPList(&list_grp); - return 0; + int cdp_avp_add_Subscription_Id_Group(AAA_AVP_LIST *list, int32_t type, + str data, AVPDataStatus data_do) +{ + AAA_AVP_LIST list_grp = {0, 0}; + if(!cdp_avp_add_Subscription_Id_Type(&list_grp, type)) + goto error; + if(!cdp_avp_add_Subscription_Id_Data(&list_grp, data, data_do)) + goto error; + return cdp_avp_add_to_list( + list, cdp_avp_new_Grouped(AVP_Subscription_Id, + AAA_AVP_FLAG_MANDATORY, 0, &list_grp, AVP_FREE_DATA)); +error: + if(data_do == AVP_FREE_DATA && data.s) + shm_free(data.s); + cdp->AAAFreeAVPList(&list_grp); + return 0; +} + +int cdp_avp_get_Subscription_Id_Group( + AAA_AVP_LIST list, int32_t *type, str *data, AAA_AVP **avp_ptr) +{ + AAA_AVP_LIST list_grp = {0, 0}; + AAA_AVP *avp = cdp_avp_get_next_from_list( + list, AVP_Subscription_Id, 0, avp_ptr ? *avp_ptr : 0); + if(avp_ptr) + *avp_ptr = avp; + if(!avp) + goto error; + if(!cdp_avp_get_Grouped(avp, &list_grp)) + goto error; + if(!cdp_avp_get_Subscription_Id_Type(list_grp, type, 0)) + goto error; + if(!cdp_avp_get_Subscription_Id_Data(list_grp, data, 0)) + goto error; + cdp->AAAFreeAVPList(&list_grp); + return 1; +error: + if(type) + *type = 0; + if(data) { + data->s = 0; + data->len = 0; } - - - int cdp_avp_add_User_Equipment_Info_Group(AAA_AVP_LIST *list,int32_t type, str data,AVPDataStatus data_do) - { - AAA_AVP_LIST list_grp={0,0}; - if (!cdp_avp_add_User_Equipment_Info_Type(&list_grp,type)) goto error; - if (!cdp_avp_add_User_Equipment_Info_Value(&list_grp,data,data_do)) goto error; - return cdp_avp_add_to_list(list, - cdp_avp_new_Grouped( - AVP_User_Equipment_Info, - AAA_AVP_FLAG_MANDATORY, - 0, - &list_grp, - AVP_FREE_DATA)); - error: - if (data_do==AVP_FREE_DATA && data.s) shm_free(data.s); - cdp->AAAFreeAVPList(&list_grp); - return 0; + cdp->AAAFreeAVPList(&list_grp); + return 0; +} + + +int cdp_avp_add_User_Equipment_Info_Group( + AAA_AVP_LIST *list, int32_t type, str data, AVPDataStatus data_do) +{ + AAA_AVP_LIST list_grp = {0, 0}; + if(!cdp_avp_add_User_Equipment_Info_Type(&list_grp, type)) + goto error; + if(!cdp_avp_add_User_Equipment_Info_Value(&list_grp, data, data_do)) + goto error; + return cdp_avp_add_to_list( + list, cdp_avp_new_Grouped(AVP_User_Equipment_Info, + AAA_AVP_FLAG_MANDATORY, 0, &list_grp, AVP_FREE_DATA)); +error: + if(data_do == AVP_FREE_DATA && data.s) + shm_free(data.s); + cdp->AAAFreeAVPList(&list_grp); + return 0; +} + +int cdp_avp_get_User_Equipment_Info_Group( + AAA_AVP_LIST list, int32_t *type, str *data, AAA_AVP **avp_ptr) +{ + AAA_AVP_LIST list_grp = {0, 0}; + AAA_AVP *avp = cdp_avp_get_next_from_list( + list, AVP_User_Equipment_Info, 0, avp_ptr ? *avp_ptr : 0); + if(avp_ptr) + *avp_ptr = avp; + if(!avp) + goto error; + if(!cdp_avp_get_Grouped(avp, &list_grp)) + goto error; + if(!cdp_avp_get_User_Equipment_Info_Type(list_grp, type, 0)) + goto error; + if(!cdp_avp_get_User_Equipment_Info_Value(list_grp, data, 0)) + goto error; + cdp->AAAFreeAVPList(&list_grp); + return 1; +error: + if(type) + *type = 0; + if(data) { + data->s = 0; + data->len = 0; } + cdp->AAAFreeAVPList(&list_grp); + return 0; +} - int cdp_avp_get_User_Equipment_Info_Group(AAA_AVP_LIST list,int32_t *type,str *data,AAA_AVP **avp_ptr) - { - AAA_AVP_LIST list_grp={0,0}; - AAA_AVP *avp = cdp_avp_get_next_from_list(list, - AVP_User_Equipment_Info, - 0, - avp_ptr?*avp_ptr:0); - if (avp_ptr) *avp_ptr= avp; - if (!avp) goto error; - if (!cdp_avp_get_Grouped(avp,&list_grp)) goto error; - if (!cdp_avp_get_User_Equipment_Info_Type(list_grp,type,0)) goto error; - if (!cdp_avp_get_User_Equipment_Info_Value(list_grp,data,0)) goto error; - cdp->AAAFreeAVPList(&list_grp); - return 1; - error: - if (type) *type = 0; - if (data) {data->s=0;data->len=0;} - cdp->AAAFreeAVPList(&list_grp); - return 0; - } - #elif defined(CDP_AVP_EXPORT) - /* + /* * Put here your supplimentary exports in the format: * ; * ; * ... * */ - cdp_avp_add_Subscription_Id_Group_f add_Subscription_Id_Group; - cdp_avp_get_Subscription_Id_Group_f get_Subscription_Id_Group; - - cdp_avp_add_User_Equipment_Info_Group_f add_User_Equipment_Info_Group; - cdp_avp_get_User_Equipment_Info_Group_f get_User_Equipment_Info_Group; - + cdp_avp_add_Subscription_Id_Group_f add_Subscription_Id_Group; +cdp_avp_get_Subscription_Id_Group_f get_Subscription_Id_Group; + +cdp_avp_add_User_Equipment_Info_Group_f add_User_Equipment_Info_Group; +cdp_avp_get_User_Equipment_Info_Group_f get_User_Equipment_Info_Group; + #elif defined(CDP_AVP_INIT) - /* + /* * Put here your supplimentary inits in the format: * , * , @@ -391,33 +642,37 @@ cdp_avp (Validity_Time, 0, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) * Make sure you keep the same order as in export! * */ - cdp_avp_add_Subscription_Id_Group, - cdp_avp_get_Subscription_Id_Group, + cdp_avp_add_Subscription_Id_Group, + cdp_avp_get_Subscription_Id_Group, + + cdp_avp_add_User_Equipment_Info_Group, + cdp_avp_get_User_Equipment_Info_Group, - cdp_avp_add_User_Equipment_Info_Group, - cdp_avp_get_User_Equipment_Info_Group, - #elif defined(CDP_AVP_REFERENCE) - /* + /* * Put here what you want to get in the reference. Typically: * * * ... * */ -int CDP_AVP_MODULE.add_Subscription_Id_Group(AAA_AVP_LIST *list,int32_t type,str data,AVPDataStatus data_do); -int CDP_AVP_MODULE.get_Subscription_Id_Group(AAA_AVP_LIST list,int32_t *type,str *data,AAA_AVP **avp_ptr); - -int CDP_AVP_MODULE.add_User_Equipment_Info_Group(AAA_AVP_LIST *list,int32_t type,str data,AVPDataStatus data_do); -int CDP_AVP_MODULE.get_User_Equipment_Info_Group(AAA_AVP_LIST list,int32_t *type,str *data,AAA_AVP **avp_ptr); - + int CDP_AVP_MODULE.add_Subscription_Id_Group(AAA_AVP_LIST *list, + int32_t type, str data, AVPDataStatus data_do); +int CDP_AVP_MODULE.get_Subscription_Id_Group( + AAA_AVP_LIST list, int32_t *type, str *data, AAA_AVP **avp_ptr); + +int CDP_AVP_MODULE.add_User_Equipment_Info_Group( + AAA_AVP_LIST *list, int32_t type, str data, AVPDataStatus data_do); +int CDP_AVP_MODULE.get_User_Equipment_Info_Group( + AAA_AVP_LIST list, int32_t *type, str *data, AAA_AVP **avp_ptr); + #elif defined(CDP_AVP_EMPTY_MACROS) - - /* this should be left blank */ - + +/* this should be left blank */ + #else - /* +/* * Put here your definitions according to the declarations, exports, init, etc above. Typically: * * int @@ -430,34 +685,42 @@ int CDP_AVP_MODULE.get_User_Equipment_Info_Group(AAA_AVP_LIST list,int32_t *type * */ - - #ifndef _CDP_AVP_CCAPP_H_2 - #define _CDP_AVP_CCAPP_H_2 - - int cdp_avp_add_Subscription_Id_Group(AAA_AVP_LIST *list,int32_t type, str data,AVPDataStatus data_do); - typedef int (*cdp_avp_add_Subscription_Id_Group_f)(AAA_AVP_LIST *list,int32_t type, str data,AVPDataStatus data_do); +#ifndef _CDP_AVP_CCAPP_H_2 +#define _CDP_AVP_CCAPP_H_2 - int cdp_avp_get_Subscription_Id_Group(AAA_AVP_LIST list,int32_t *type,str *data,AAA_AVP **avp_ptr); - typedef int (*cdp_avp_get_Subscription_Id_Group_f)(AAA_AVP_LIST list,int32_t *type,str *data,AAA_AVP **avp_ptr); - - int cdp_avp_add_User_Equipment_Info_Group(AAA_AVP_LIST *list,int32_t type, str data,AVPDataStatus data_do); - typedef int (*cdp_avp_add_User_Equipment_Info_Group_f)(AAA_AVP_LIST *list,int32_t type, str data,AVPDataStatus data_do); + int cdp_avp_add_Subscription_Id_Group( + AAA_AVP_LIST + *list, + int32_t type, + str data, + AVPDataStatus + data_do); +typedef int (*cdp_avp_add_Subscription_Id_Group_f)( + AAA_AVP_LIST *list, int32_t type, str data, AVPDataStatus data_do); - int cdp_avp_get_User_Equipment_Info_Group(AAA_AVP_LIST list,int32_t *type,str *data,AAA_AVP **avp_ptr); - typedef int (*cdp_avp_get_User_Equipment_Info_Group_f)(AAA_AVP_LIST list,int32_t *type,str *data,AAA_AVP **avp_ptr); - - #endif //_CDP_AVP_CCAPP_H_2 - -#endif +int cdp_avp_get_Subscription_Id_Group( + AAA_AVP_LIST list, int32_t *type, str *data, AAA_AVP **avp_ptr); +typedef int (*cdp_avp_get_Subscription_Id_Group_f)( + AAA_AVP_LIST list, int32_t *type, str *data, AAA_AVP **avp_ptr); +int cdp_avp_add_User_Equipment_Info_Group( + AAA_AVP_LIST *list, int32_t type, str data, AVPDataStatus data_do); +typedef int (*cdp_avp_add_User_Equipment_Info_Group_f)( + AAA_AVP_LIST *list, int32_t type, str data, AVPDataStatus data_do); -#define CDP_AVP_UNDEF_MACROS - #include "macros.h" -#undef CDP_AVP_UNDEF_MACROS - +int cdp_avp_get_User_Equipment_Info_Group( + AAA_AVP_LIST list, int32_t *type, str *data, AAA_AVP **avp_ptr); +typedef int (*cdp_avp_get_User_Equipment_Info_Group_f)( + AAA_AVP_LIST list, int32_t *type, str *data, AAA_AVP **avp_ptr); +#endif //_CDP_AVP_CCAPP_H_2 +#endif + +#define CDP_AVP_UNDEF_MACROS +#include "macros.h" +#undef CDP_AVP_UNDEF_MACROS diff --git a/src/modules/cdp_avp/cdp_avp_mod.c b/src/modules/cdp_avp/cdp_avp_mod.c index 59899fb497f..7531cbc0779 100644 --- a/src/modules/cdp_avp/cdp_avp_mod.c +++ b/src/modules/cdp_avp/cdp_avp_mod.c @@ -48,54 +48,51 @@ MODULE_VERSION #include "../cdp/cdp_load.h" struct cdp_binds *cdp; - -int cdp_avp_init(); -int cdp_avp_child_init(int rank); -void cdp_avp_destroy(); -cdp_avp_bind_t* cdp_avp_get_bind(); - + +int cdp_avp_init(); +int cdp_avp_child_init(int rank); +void cdp_avp_destroy(); +cdp_avp_bind_t *cdp_avp_get_bind(); + static cmd_export_t cdp_avp_cmds[] = { - {"cdp_avp_get_bind", (cmd_function)cdp_avp_get_bind, NO_SCRIPT, 0, 0, 0}, - - { 0, 0, 0, 0, 0, 0 } -}; - + {"cdp_avp_get_bind", (cmd_function)cdp_avp_get_bind, NO_SCRIPT, 0, 0, + 0}, + + {0, 0, 0, 0, 0, 0}}; + /** * Exported SER module interface */ -struct module_exports exports = { - "cdp_avp", - DEFAULT_DLFLAGS, /* dlopen flags */ - cdp_avp_cmds, /**< Exported functions */ - 0, /**< Exported parameters */ - 0, /* RPC method exports */ - 0, /* pseudo-variables exports */ - 0, - cdp_avp_init, /**< Module initialization function */ - cdp_avp_child_init, /**< per-child init function */ - cdp_avp_destroy -}; +struct module_exports exports = {"cdp_avp", DEFAULT_DLFLAGS, /* dlopen flags */ + cdp_avp_cmds, /**< Exported functions */ + 0, /**< Exported parameters */ + 0, /* RPC method exports */ + 0, /* pseudo-variables exports */ + 0, cdp_avp_init, /**< Module initialization function */ + cdp_avp_child_init, /**< per-child init function */ + cdp_avp_destroy}; /** Sample binding */ -cdp_avp_bind_t cdp_avp_bind={ - 0, /* cdp */ - - { /* basic */ +cdp_avp_bind_t cdp_avp_bind = {0, /* cdp */ + + { + /* basic */ cdp_avp_new, - + cdp_avp_add_new_to_list, cdp_avp_add_new_to_msg, cdp_avp_add_to_list, cdp_avp_add_to_msg, - + cdp_avp_get_next_from_list, cdp_avp_get_next_from_msg, cdp_avp_get_from_list, cdp_avp_get_from_msg, }, - - { /* base_data */ + + { + /* base_data */ cdp_avp_new_OctetString, cdp_avp_new_Integer32, cdp_avp_new_Integer64, @@ -104,7 +101,7 @@ cdp_avp_bind_t cdp_avp_bind={ cdp_avp_new_Float32, cdp_avp_new_Float64, cdp_avp_new_Grouped, - + cdp_avp_new_Address, cdp_avp_new_Time, cdp_avp_new_UTF8String, @@ -113,8 +110,8 @@ cdp_avp_bind_t cdp_avp_bind={ cdp_avp_new_Enumerated, cdp_avp_new_IPFilterRule, cdp_avp_new_QoSFilterRule, - - + + cdp_avp_get_OctetString, cdp_avp_get_Integer32, cdp_avp_get_Integer64, @@ -134,38 +131,42 @@ cdp_avp_bind_t cdp_avp_bind={ cdp_avp_get_IPFilterRule, cdp_avp_get_QoSFilterRule, }, - - { /* base */ - - #define CDP_AVP_INIT - #include "base.h" - #undef CDP_AVP_INIT + + { + /* base */ + +#define CDP_AVP_INIT +#include "base.h" +#undef CDP_AVP_INIT + }, + + { + /* ccapp */ +#define CDP_AVP_INIT +#include "ccapp.h" +#undef CDP_AVP_INIT }, - - { /* ccapp */ - #define CDP_AVP_INIT - #include "ccapp.h" - #undef CDP_AVP_INIT + + { + /* nasapp */ +#define CDP_AVP_INIT +#include "nasapp.h" +#undef CDP_AVP_INIT }, - { /* nasapp */ - #define CDP_AVP_INIT - #include "nasapp.h" - #undef CDP_AVP_INIT + { + /* imsapp */ +#define CDP_AVP_INIT +#include "imsapp.h" +#undef CDP_AVP_INIT }, - - { /* imsapp */ - #define CDP_AVP_INIT - #include "imsapp.h" - #undef CDP_AVP_INIT - }, - - { /* epcapp */ - #define CDP_AVP_INIT - #include "epcapp.h" - #undef CDP_AVP_INIT - } -}; + + { + /* epcapp */ +#define CDP_AVP_INIT +#include "epcapp.h" +#undef CDP_AVP_INIT + }}; /** @@ -178,21 +179,23 @@ cdp_avp_bind_t cdp_avp_bind={ */ int cdp_avp_init() { - LOG(L_DBG," Initializing module cdp_avp\n"); + LOG(L_DBG, " Initializing module cdp_avp\n"); load_cdp_f load_cdp; /* bind to the cdp module */ - if (!(load_cdp = (load_cdp_f)find_export("load_cdp",NO_SCRIPT,0))) { - LOG(L_ERR, "ERR"M_NAME":mod_init: Can not import load_cdp. This module requires cdp module\n"); + if(!(load_cdp = (load_cdp_f)find_export("load_cdp", NO_SCRIPT, 0))) { + LOG(L_ERR, "ERR" M_NAME ":mod_init: Can not import load_cdp. This " + "module requires cdp module\n"); goto error; } cdp = pkg_malloc(sizeof(struct cdp_binds)); - if (!cdp) return 0; + if(!cdp) + return 0; /* Load CDP module bindings*/ - if (load_cdp(cdp) == -1) + if(load_cdp(cdp) == -1) goto error; - + cdp_avp_bind.cdp = cdp; - + return 0; error: return -1; @@ -208,13 +211,11 @@ int cdp_avp_init() */ int cdp_avp_child_init(int rank) { - LOG(L_DBG,"Initializing child in module cdp_avp for rank [%d]\n", - rank); + LOG(L_DBG, "Initializing child in module cdp_avp for rank [%d]\n", rank); return 1; } - /** * Module destroy function. * Spould clean-up and do nice shut-down. @@ -222,7 +223,7 @@ int cdp_avp_child_init(int rank) */ void cdp_avp_destroy(void) { - LOG(L_DBG,"Destroying module cdp_avp\n"); + LOG(L_DBG, "Destroying module cdp_avp\n"); pkg_free(cdp); } @@ -232,10 +233,7 @@ void cdp_avp_destroy(void) * functions and data to be used from other processes. * @return the pointer to the binding. */ -cdp_avp_bind_t* cdp_avp_get_bind() +cdp_avp_bind_t *cdp_avp_get_bind() { return &cdp_avp_bind; } - - - diff --git a/src/modules/cdp_avp/cdp_avp_mod.h b/src/modules/cdp_avp/cdp_avp_mod.h index c3b20097653..f97d2c7a0cc 100644 --- a/src/modules/cdp_avp/cdp_avp_mod.h +++ b/src/modules/cdp_avp/cdp_avp_mod.h @@ -42,7 +42,7 @@ #define __CDP_AVP_EXPORT_H #ifndef M_NAME - #define M_NAME "cdp_avp" +#define M_NAME "cdp_avp" #endif #include "../cdp/cdp_load.h" @@ -65,134 +65,142 @@ #include "../../core/sr_module.h" +typedef struct +{ + + cdp_avp_new_f new; + + cdp_avp_add_new_to_list_f add_new_to_list; + cdp_avp_add_new_to_msg_f add_new_to_msg; + cdp_avp_add_to_list_f add_to_list; + cdp_avp_add_to_msg_f add_to_msg; + + cdp_avp_get_next_from_list_f get_next_from_list; + cdp_avp_get_next_from_msg_f get_next_from_msg; + cdp_avp_get_from_list_f get_from_list; + cdp_avp_get_from_msg_f get_from_msg; + +} cdp_avp_bind_basic_t; + +typedef struct +{ + + cdp_avp_new_OctetString_f new_OctetString; + cdp_avp_new_Integer32_f new_Integer32; + cdp_avp_new_Integer64_f new_Integer64; + cdp_avp_new_Unsigned32_f new_Unsigned32; + cdp_avp_new_Unsigned64_f new_Unsigned64; + cdp_avp_new_Float32_f new_Float32; + cdp_avp_new_Float64_f new_Float64; + cdp_avp_new_Grouped_f new_Grouped; + + cdp_avp_new_Address_f new_Address; + cdp_avp_new_Time_f new_Time; + cdp_avp_new_UTF8String_f new_UTF8String; + cdp_avp_new_DiameterIdentity_f new_DiameterIdentity; + cdp_avp_new_DiameterURI_f new_DiameterURI; + cdp_avp_new_Enumerated_f new_Enumerated; + cdp_avp_new_IPFilterRule_f new_IPFilterRule; + cdp_avp_new_QoSFilterRule_f new_QoSFilterRule; + + + cdp_avp_get_OctetString_f get_OctetString; + cdp_avp_get_Integer32_f get_Integer32; + cdp_avp_get_Integer64_f get_Integer64; + cdp_avp_get_Unsigned32_f get_Unsigned32; + cdp_avp_get_Unsigned64_f get_Unsigned64; + cdp_avp_get_Float32_f get_Float32; + cdp_avp_get_Float64_f get_Float64; + cdp_avp_get_Grouped_f get_Grouped; + cdp_avp_free_Grouped_f free_Grouped; + + cdp_avp_get_Address_f get_Address; + cdp_avp_get_Time_f get_Time; + cdp_avp_get_UTF8String_f get_UTF8String; + cdp_avp_get_DiameterIdentity_f get_DiameterIndentity; + cdp_avp_get_DiameterURI_f get_DiameterURI; + cdp_avp_get_Enumerated_f get_Enumerated; + cdp_avp_get_IPFilterRule_f get_IPFilterRule; + cdp_avp_get_QoSFilterRule_f get_QoSFilterRule; -typedef struct { - - cdp_avp_new_f new; - - cdp_avp_add_new_to_list_f add_new_to_list; - cdp_avp_add_new_to_msg_f add_new_to_msg; - cdp_avp_add_to_list_f add_to_list; - cdp_avp_add_to_msg_f add_to_msg; - - cdp_avp_get_next_from_list_f get_next_from_list; - cdp_avp_get_next_from_msg_f get_next_from_msg; - cdp_avp_get_from_list_f get_from_list; - cdp_avp_get_from_msg_f get_from_msg; - -} cdp_avp_bind_basic_t ; - -typedef struct { - - cdp_avp_new_OctetString_f new_OctetString; - cdp_avp_new_Integer32_f new_Integer32; - cdp_avp_new_Integer64_f new_Integer64; - cdp_avp_new_Unsigned32_f new_Unsigned32; - cdp_avp_new_Unsigned64_f new_Unsigned64; - cdp_avp_new_Float32_f new_Float32; - cdp_avp_new_Float64_f new_Float64; - cdp_avp_new_Grouped_f new_Grouped; - - cdp_avp_new_Address_f new_Address; - cdp_avp_new_Time_f new_Time; - cdp_avp_new_UTF8String_f new_UTF8String; - cdp_avp_new_DiameterIdentity_f new_DiameterIdentity; - cdp_avp_new_DiameterURI_f new_DiameterURI; - cdp_avp_new_Enumerated_f new_Enumerated; - cdp_avp_new_IPFilterRule_f new_IPFilterRule; - cdp_avp_new_QoSFilterRule_f new_QoSFilterRule; - - - cdp_avp_get_OctetString_f get_OctetString; - cdp_avp_get_Integer32_f get_Integer32; - cdp_avp_get_Integer64_f get_Integer64; - cdp_avp_get_Unsigned32_f get_Unsigned32; - cdp_avp_get_Unsigned64_f get_Unsigned64; - cdp_avp_get_Float32_f get_Float32; - cdp_avp_get_Float64_f get_Float64; - cdp_avp_get_Grouped_f get_Grouped; - cdp_avp_free_Grouped_f free_Grouped; - - cdp_avp_get_Address_f get_Address; - cdp_avp_get_Time_f get_Time; - cdp_avp_get_UTF8String_f get_UTF8String; - cdp_avp_get_DiameterIdentity_f get_DiameterIndentity; - cdp_avp_get_DiameterURI_f get_DiameterURI; - cdp_avp_get_Enumerated_f get_Enumerated; - cdp_avp_get_IPFilterRule_f get_IPFilterRule; - cdp_avp_get_QoSFilterRule_f get_QoSFilterRule; - } cdp_avp_bind_base_data_format_t; -typedef struct { - - #define CDP_AVP_EXPORT - #include "base.h" - #undef CDP_AVP_EXPORT - +typedef struct +{ + +#define CDP_AVP_EXPORT +#include "base.h" +#undef CDP_AVP_EXPORT + } cdp_avp_bind_base_avp_t; -typedef struct { - - #define CDP_AVP_EXPORT - #include "ccapp.h" - #undef CDP_AVP_EXPORT +typedef struct +{ + +#define CDP_AVP_EXPORT +#include "ccapp.h" +#undef CDP_AVP_EXPORT } cdp_avp_bind_ccapp_avp_t; -typedef struct { +typedef struct +{ + + +#define CDP_AVP_EXPORT +#include "nasapp.h" +#undef CDP_AVP_EXPORT - - #define CDP_AVP_EXPORT - #include "nasapp.h" - #undef CDP_AVP_EXPORT - } cdp_avp_bind_nasapp_avp_t; -typedef struct { - - #define CDP_AVP_EXPORT - #include "imsapp.h" - #undef CDP_AVP_EXPORT +typedef struct +{ + +#define CDP_AVP_EXPORT +#include "imsapp.h" +#undef CDP_AVP_EXPORT } cdp_avp_bind_imsapp_avp_t; -typedef struct { - - #define CDP_AVP_EXPORT - #include "epcapp.h" - #undef CDP_AVP_EXPORT - +typedef struct +{ + +#define CDP_AVP_EXPORT +#include "epcapp.h" +#undef CDP_AVP_EXPORT + } cdp_avp_bind_epcapp_avp_t; -typedef struct { - struct cdp_binds *cdp; - cdp_avp_bind_basic_t basic; +typedef struct +{ + struct cdp_binds *cdp; + cdp_avp_bind_basic_t basic; cdp_avp_bind_base_data_format_t data; - cdp_avp_bind_base_avp_t base; - cdp_avp_bind_ccapp_avp_t ccapp; - cdp_avp_bind_nasapp_avp_t nasapp; - cdp_avp_bind_imsapp_avp_t imsapp; - cdp_avp_bind_epcapp_avp_t epcapp; + cdp_avp_bind_base_avp_t base; + cdp_avp_bind_ccapp_avp_t ccapp; + cdp_avp_bind_nasapp_avp_t nasapp; + cdp_avp_bind_imsapp_avp_t imsapp; + cdp_avp_bind_epcapp_avp_t epcapp; } cdp_avp_bind_t; -typedef cdp_avp_bind_t* (*cdp_avp_get_bind_f)(void); +typedef cdp_avp_bind_t *(*cdp_avp_get_bind_f)(void); -static inline cdp_avp_bind_t * load_cdp_avp() +static inline cdp_avp_bind_t *load_cdp_avp() { - cdp_avp_get_bind_f load_cdp_avp; - + cdp_avp_get_bind_f load_cdp_avp; + /* import the TM auto-loading function */ - load_cdp_avp = (cdp_avp_get_bind_f)find_export("cdp_avp_get_bind", NO_SCRIPT, 0); - - if (load_cdp_avp == NULL) { + load_cdp_avp = + (cdp_avp_get_bind_f)find_export("cdp_avp_get_bind", NO_SCRIPT, 0); + + if(load_cdp_avp == NULL) { LOG(L_WARN, "Cannot import load_cdp function from CDP module\n"); return 0; } - + return (cdp_avp_bind_t *)load_cdp_avp(); } diff --git a/src/modules/cdp_avp/epcapp.c b/src/modules/cdp_avp/epcapp.c index 7ecb6f15c04..5a8ea6823d2 100644 --- a/src/modules/cdp_avp/epcapp.c +++ b/src/modules/cdp_avp/epcapp.c @@ -56,45 +56,37 @@ extern struct cdp_binds *cdp; #define CDP_AVP_DEFINITION - #include "epcapp.h" - int cdp_avp_add_GG_Enforce_Group(AAA_AVP_LIST * avpList, - int32_t type, str id, - ip_address ue_ip, ip_address gg_ip, - uint32_t interval, - AVPDataStatus status){ - - AAA_AVP_LIST avp_list = {0,0}, avp_list2 = {0,0}; - - if(!cdp_avp_add_UE_Locator(&avp_list, ue_ip)) - goto error; +#include "epcapp.h" +int cdp_avp_add_GG_Enforce_Group(AAA_AVP_LIST *avpList, int32_t type, str id, + ip_address ue_ip, ip_address gg_ip, uint32_t interval, + AVPDataStatus status) +{ - if(id.len && id.s){ - if(!cdp_avp_add_Subscription_Id_Group(&avp_list, - type, - id, - AVP_DUPLICATE_DATA)) - goto error; - } + AAA_AVP_LIST avp_list = {0, 0}, avp_list2 = {0, 0}; - if(!cdp_avp_add_UE_Locator_Id_Group(&avp_list2, - &avp_list, AVP_FREE_DATA)) - goto error; + if(!cdp_avp_add_UE_Locator(&avp_list, ue_ip)) + goto error; - if(!cdp_avp_add_GG_IP(&avp_list2, gg_ip)) + if(id.len && id.s) { + if(!cdp_avp_add_Subscription_Id_Group( + &avp_list, type, id, AVP_DUPLICATE_DATA)) goto error; - - if(!cdp_avp_add_GG_Enforce(avpList, &avp_list2,AVP_FREE_DATA)){ - LOG(L_ERR, "could not find the GG_Enforce AVP\n"); - goto error; - } - return 1; - error: - LOG(L_ERR, "error while adding the GG change AVPs\n"); - return 0; } -#undef CDP_AVP_DEFINITION - + if(!cdp_avp_add_UE_Locator_Id_Group(&avp_list2, &avp_list, AVP_FREE_DATA)) + goto error; + if(!cdp_avp_add_GG_IP(&avp_list2, gg_ip)) + goto error; + if(!cdp_avp_add_GG_Enforce(avpList, &avp_list2, AVP_FREE_DATA)) { + LOG(L_ERR, "could not find the GG_Enforce AVP\n"); + goto error; + } + return 1; +error: + LOG(L_ERR, "error while adding the GG change AVPs\n"); + return 0; +} +#undef CDP_AVP_DEFINITION diff --git a/src/modules/cdp_avp/epcapp.h b/src/modules/cdp_avp/epcapp.h index 484164ff647..77203da6a3d 100644 --- a/src/modules/cdp_avp/epcapp.h +++ b/src/modules/cdp_avp/epcapp.h @@ -61,21 +61,22 @@ #undef CDP_AVP_MODULE #define CDP_AVP_MODULE epcapp -#if !defined(CDP_AVP_DECLARATION) && !defined(CDP_AVP_EXPORT) && !defined(CDP_AVP_INIT) && !defined(CDP_AVP_REFERENCE) - #ifndef _CDP_AVP_EPCAPP_H_1 - #define _CDP_AVP_EPCAPP_H_1 +#if !defined(CDP_AVP_DECLARATION) && !defined(CDP_AVP_EXPORT) \ + && !defined(CDP_AVP_INIT) && !defined(CDP_AVP_REFERENCE) +#ifndef _CDP_AVP_EPCAPP_H_1 +#define _CDP_AVP_EPCAPP_H_1 - #include "../cdp/cdp_load.h" +#include "../cdp/cdp_load.h" - #else +#else - /* undo the macros definition if this was re_included */ - #define CDP_AVP_EMPTY_MACROS - #include "macros.h" - #undef CDP_AVP_EMPTY_MACROS +/* undo the macros definition if this was re_included */ +#define CDP_AVP_EMPTY_MACROS +#include "macros.h" +#undef CDP_AVP_EMPTY_MACROS - #endif -#endif //_CDP_AVP_NASAPP_H_1 +#endif +#endif //_CDP_AVP_NASAPP_H_1 /* * The list of AVPs must be declared in the following format: @@ -170,658 +171,1720 @@ * TS 29.212 */ -cdp_avp_add_ptr (Access_Network_Charging_Identifier_Gx, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Access_Network_Charging_Identifier_Gx, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Allocation_Retention_Priority, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Allocation_Retention_Priority, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (AN_GW_Address, EPC_vendor_id_3GPP, 0, Address, ip_address) - -cdp_avp (APN_Aggregate_Max_Bitrate_DL, EPC_vendor_id_3GPP, 0, Unsigned32, uint32_t) - -cdp_avp (APN_Aggregate_Max_Bitrate_UL, EPC_vendor_id_3GPP, 0, Unsigned32, uint32_t) - -cdp_avp (Bearer_Control_Mode, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Bearer_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Bearer_Operation, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Bearer_Usage, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (Charging_Rule_Install, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Charging_Rule_Install, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Charging_Rule_Remove, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Charging_Rule_Remove, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Charging_Rule_Definition, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Charging_Rule_Definition, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Charging_Rule_Base_Name, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (Charging_Rule_Name, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (Charging_Rule_Report, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Charging_Rule_Report, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (CoA_IP_Address, EPC_vendor_id_3GPP, 0, Address, ip_address) - -cdp_avp_add_ptr (CoA_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (CoA_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Default_EPS_Bearer_QoS, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Default_EPS_Bearer_QoS, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Event_Report_Indication, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Event_Report_Indication, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp (Event_Trigger, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (Flow_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Flow_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Flow_Label, EPC_vendor_id_3GPP, 0, OctetString, str) - -cdp_avp (IP_CAN_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Guaranteed_Bitrate_DL, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Guaranteed_Bitrate_UL, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Metering_Method, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Network_Request_Support, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Offline, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Online, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Packet_Filter_Content, EPC_vendor_id_3GPP, 0, IPFilterRule, str) - -cdp_avp_ptr (Packet_Filter_Identifier, EPC_vendor_id_3GPP, 0, OctetString, str) - -cdp_avp_add_ptr (Packet_Filter_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Packet_Filter_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp (Packet_Filter_Operation, EPC_vendor_id_3GPP, 0, Enumerated, int32_t) - -cdp_avp_ptr (PDN_Connection_ID, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Precedence, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Pre_emption_Capability, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Pre_emption_Vulnerability, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Priority_Level, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Reporting_Level, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (PCC_Rule_Status, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Session_Release_Cause, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (QoS_Class_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (QoS_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (QoS_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp (QoS_Negotiation, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (QoS_Rule_Install, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (QoS_Rule_Install, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (QoS_Rule_Remove, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (QoS_Rule_Remove, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (QoS_Rule_Definition, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (QoS_Rule_Definition, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (QoS_Rule_Name, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (QoS_Rule_Report, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (QoS_Rule_Report, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - - -cdp_avp (QoS_Upgrade, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Resource_Allocation_Notification, EPC_vendor_id_3GPP, 0, Enumerated, int32_t) - -cdp_avp (Rule_Failure_Code, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Security_Parameter_Index, EPC_vendor_id_3GPP, 0, OctetString, str) - -cdp_avp_ptr (TFT_Filter, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, IPFilterRule, str) - -cdp_avp_add_ptr (TFT_Packet_Filter_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (TFT_Packet_Filter_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (ToS_Traffic_Class, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (Tunnel_Header_Filter, EPC_vendor_id_3GPP, 0, IPFilterRule, str) - -cdp_avp (Tunnel_Header_Length, EPC_vendor_id_3GPP, 0, Unsigned32, uint32_t) - -cdp_avp_add_ptr (Tunnel_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Tunnel_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp (RAT_Type, EPC_vendor_id_3GPP, 0, Enumerated, int32_t) - -cdp_avp_ptr (TGPP_RAT_Type, EPC_vendor_id_3GPP, 0, OctetString, str) - -cdp_avp (Revalidation_Time, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Time, time_t) - -cdp_avp (Rule_Activation_Time, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Time, time_t) - -cdp_avp (Rule_DeActivation_Time, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Time, time_t) - -cdp_avp (Session_Linking_Indicator, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -/* +cdp_avp_add_ptr(Access_Network_Charging_Identifier_Gx, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) + cdp_avp_get(Access_Network_Charging_Identifier_Gx, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + + cdp_avp_add_ptr(Allocation_Retention_Priority, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST *) + cdp_avp_get(Allocation_Retention_Priority, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST) + + cdp_avp(AN_GW_Address, EPC_vendor_id_3GPP, 0, + Address, ip_address) + + cdp_avp(APN_Aggregate_Max_Bitrate_DL, + EPC_vendor_id_3GPP, 0, + Unsigned32, uint32_t) + + cdp_avp(APN_Aggregate_Max_Bitrate_UL, + EPC_vendor_id_3GPP, 0, + Unsigned32, uint32_t) + + cdp_avp(Bearer_Control_Mode, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr( + Bearer_Identifier, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp(Bearer_Operation, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Bearer_Usage, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_add_ptr( + Charging_Rule_Install, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Charging_Rule_Install, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + Charging_Rule_Remove, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Charging_Rule_Remove, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + Charging_Rule_Definition, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get(Charging_Rule_Definition, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + Charging_Rule_Base_Name, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_ptr( + Charging_Rule_Name, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr( + Charging_Rule_Report, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get(Charging_Rule_Report, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(CoA_IP_Address, + EPC_vendor_id_3GPP, + 0, + Address, + ip_address) + + cdp_avp_add_ptr( + CoA_Information, + EPC_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + CoA_Information, + EPC_vendor_id_3GPP, 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + Default_EPS_Bearer_QoS, + EPC_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Default_EPS_Bearer_QoS, + EPC_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + Event_Report_Indication, + EPC_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Event_Report_Indication, + EPC_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Event_Trigger, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_add_ptr( + Flow_Information, EPC_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST *) cdp_avp_get(Flow_Information, + EPC_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + Flow_Label, + EPC_vendor_id_3GPP, + 0, + OctetString, + str) + + cdp_avp(IP_CAN_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Guaranteed_Bitrate_DL, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) + + cdp_avp(Guaranteed_Bitrate_UL, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Metering_Method, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Network_Request_Support, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Offline, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Online, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr( + Packet_Filter_Content, + EPC_vendor_id_3GPP, + 0, + IPFilterRule, + str) + + cdp_avp_ptr( + Packet_Filter_Identifier, + EPC_vendor_id_3GPP, + 0, + OctetString, + str) + + cdp_avp_add_ptr( + Packet_Filter_Information, EPC_vendor_id_3GPP, 0, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Packet_Filter_Information, + EPC_vendor_id_3GPP, 0, Grouped, + AAA_AVP_LIST) + + cdp_avp(Packet_Filter_Operation, + EPC_vendor_id_3GPP, + 0, + Enumerated, + int32_t) + + cdp_avp_ptr( + PDN_Connection_ID, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp(Precedence, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Pre_emption_Capability, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Pre_emption_Vulnerability, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Priority_Level, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) + + cdp_avp(Reporting_Level, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp(PCC_Rule_Status, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp(Session_Release_Cause, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp(QoS_Class_Identifier, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp_add_ptr( + QoS_Information, + EPC_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + QoS_Information, + EPC_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp(QoS_Negotiation, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_add_ptr( + QoS_Rule_Install, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(QoS_Rule_Install, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + QoS_Rule_Remove, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(QoS_Rule_Remove, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + + cdp_avp_add_ptr( + QoS_Rule_Definition, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST *) cdp_avp_get(QoS_Rule_Definition, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + QoS_Rule_Name, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr(QoS_Rule_Report, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(QoS_Rule_Report, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + + cdp_avp(QoS_Upgrade, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Resource_Allocation_Notification, + EPC_vendor_id_3GPP, + 0, + Enumerated, + int32_t) + + cdp_avp(Rule_Failure_Code, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp_ptr(Security_Parameter_Index, EPC_vendor_id_3GPP, 0, OctetString, + str) + + cdp_avp_ptr( + TFT_Filter, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + IPFilterRule, + str) + + cdp_avp_add_ptr( + TFT_Packet_Filter_Information, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) + cdp_avp_get( + TFT_Packet_Filter_Information, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + ToS_Traffic_Class, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + Tunnel_Header_Filter, + EPC_vendor_id_3GPP, + 0, + IPFilterRule, + str) + + cdp_avp(Tunnel_Header_Length, + EPC_vendor_id_3GPP, + 0, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + Tunnel_Information, + EPC_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST + *) cdp_avp_get(Tunnel_Information, EPC_vendor_id_3GPP, 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp(RAT_Type, + EPC_vendor_id_3GPP, + 0, + Enumerated, + int32_t) + + cdp_avp_ptr( + TGPP_RAT_Type, EPC_vendor_id_3GPP, 0, OctetString, + str) + + cdp_avp(Revalidation_Time, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Time, + time_t) + + cdp_avp(Rule_Activation_Time, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Time, + time_t) + + cdp_avp(Rule_DeActivation_Time, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Time, + time_t) + + cdp_avp(Session_Linking_Indicator, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + /* * TS 29.061 Gi/SGi */ -cdp_avp_ptr (3GPP_Charging_Id, EPC_vendor_id_3GPP, 0, OctetString, str) + cdp_avp_ptr(3GPP_Charging_Id, EPC_vendor_id_3GPP, 0, OctetString, str) -cdp_avp_ptr (3GPP_SGSN_Address, EPC_vendor_id_3GPP, 0, OctetString, str) + cdp_avp_ptr(3GPP_SGSN_Address, EPC_vendor_id_3GPP, 0, + OctetString, str) -cdp_avp_ptr (3GPP_SGSN_IPv6_Address, EPC_vendor_id_3GPP, 0, OctetString, str) + cdp_avp_ptr(3GPP_SGSN_IPv6_Address, EPC_vendor_id_3GPP, + 0, OctetString, str) -cdp_avp_ptr (3GPP_SGSN_MCC_MNC, EPC_vendor_id_3GPP, 0, UTF8String, str) + cdp_avp_ptr(3GPP_SGSN_MCC_MNC, + EPC_vendor_id_3GPP, 0, UTF8String, str) -cdp_avp_ptr (3GPP_User_Location_Info, EPC_vendor_id_3GPP, 0, OctetString, str) + cdp_avp_ptr(3GPP_User_Location_Info, + EPC_vendor_id_3GPP, 0, + OctetString, str) -cdp_avp_ptr (RAI, EPC_vendor_id_3GPP, 0, UTF8String, str) + cdp_avp_ptr(RAI, + EPC_vendor_id_3GPP, 0, + UTF8String, str) -cdp_avp_ptr (3GPP_MS_TimeZone, EPC_vendor_id_3GPP, 0, OctetString, str) + cdp_avp_ptr( + 3GPP_MS_TimeZone, + EPC_vendor_id_3GPP, + 0, OctetString, + str) -cdp_avp (3GPP_PDP_Type, EPC_vendor_id_3GPP, 0, Enumerated, int32_t) + cdp_avp(3GPP_PDP_Type, + EPC_vendor_id_3GPP, + 0, + Enumerated, + int32_t) -/* + /* * TS 29.214 Rx */ -cdp_avp (Abort_Cause, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Access_Network_Charging_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, ip_address) - -cdp_avp_add_ptr (Access_Network_Charging_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Access_Network_Charging_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Access_Network_Charging_Identifier_Value,EPC_vendor_id_3GPP,AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (Acceptable_Service_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Acceptable_Service_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (AF_Application_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (AF_Charging_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (Codec_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (Flow_Description, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, IPFilterRule, str) - -cdp_avp (Flow_Number, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_add_ptr (Flows, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Flows, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Flow_Status, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Flow_Usage, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Service_URN, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Specific_Action, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Max_Requested_Bandwidth_DL, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Max_Requested_Bandwidth_UL, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_add_ptr (Media_Component_Description, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Media_Component_Description, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Media_Component_Number, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_add_ptr (Media_Sub_Component, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Media_Sub_Component, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Media_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (RR_Bandwidth, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (RS_Bandwidth, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Service_Info_Status, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (SIP_Forking_Indication, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - - -/* + cdp_avp(Abort_Cause, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Enumerated, int32_t) + + cdp_avp(Access_Network_Charging_Address, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Address, ip_address) + + cdp_avp_add_ptr(Access_Network_Charging_Identifier, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) cdp_avp_get(Access_Network_Charging_Identifier, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST) + + cdp_avp_ptr( + Access_Network_Charging_Identifier_Value, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp_add_ptr(Acceptable_Service_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST + *) cdp_avp_get(Acceptable_Service_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + AF_Application_Identifier, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, str) + + cdp_avp_ptr( + AF_Charging_Identifier, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + Codec_Data, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + Flow_Description, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + IPFilterRule, + str) + + cdp_avp(Flow_Number, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + Flows, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Flows, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Flow_Status, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Flow_Usage, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr(Service_URN, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp(Specific_Action, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Max_Requested_Bandwidth_DL, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Max_Requested_Bandwidth_UL, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + Media_Component_Description, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST *) + cdp_avp_get( + Media_Component_Description, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Media_Component_Number, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + Media_Sub_Component, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) + cdp_avp_get( + Media_Sub_Component, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Media_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(RR_Bandwidth, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(RS_Bandwidth, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Service_Info_Status, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp(SIP_Forking_Indication, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + + /* * TS 29.272 * http://www.3gpp.org/ftp/Specs/html-info/29272.htm */ -cdp_avp_add_ptr (Subscription_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Subscription_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Terminal_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Terminal_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (IMEI, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (Software_Version, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (QoS_Subscribed, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (ULR_Flags, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (ULA_Flags, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (Visited_PLMN_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (Requested_EUTRAN_Authentication_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Requested_EUTRAN_Authentication_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Requested_UTRAN_GERAN_Authentication_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Requested_UTRAN_GERAN_Authentication_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Number_Of_Requested_Vectors, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (Re_Synchronization_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Immediate_Response_Preferred, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_add_ptr (Authentication_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Authentication_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (E_UTRAN_Vector, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (E_UTRAN_Vector, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (UTRAN_Vector, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (UTRAN_Vector, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (GERAN_Vector, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (GERAN_Vector, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Network_Access_Mode, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (HPLMN_ODB, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Item_Number, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Cancellation_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (DSR_Flags, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (DSA_Flags, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Context_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Subscriber_Status, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Operator_Determined_Barring, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Access_Restriction_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (APN_OI_Replacement, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (All_APN_Configurations_Included_Indicator, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (APN_Configuration_Profile, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (APN_Configuration_Profile, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (APN_Configuration, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (APN_Configuration, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (EPS_Subscribed_QoS_Profile, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (EPS_Subscribed_QoS_Profile, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (VPLMN_Dynamic_Address_Allowed, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (STN_SR, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Alert_Reason, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (AMBR, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_add2 (AMBR, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Max_Requested_Bandwidth_UL, uint32_t, Max_Requested_Bandwidth_DL, uint32_t) -cdp_avp_get (AMBR, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) -cdp_avp_get2 (AMBR, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Max_Requested_Bandwidth_UL, uint32_t, Max_Requested_Bandwidth_DL, uint32_t) - -cdp_avp_add_ptr (CSG_Subscription_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (CSG_Subscription_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (CSG_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (PDN_Gw_Allocation_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Expiration_Date, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Time, time_t) - -cdp_avp (RAT_Frequency_Selection_Priority_ID, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (IDA_Flags, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (PUA_Flags, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (NOR_Flags, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (User_Id, EPC_vendor_id_3GPP, 0, UTF8String, str) - -cdp_avp (Equipment_Status, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Regional_Subscription_Zone_Code, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (RAND, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (XRES, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (AUTN, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (KASME, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Trace_Collection_Entity, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, ip_address) - -cdp_avp_ptr (Kc, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (SRES, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (PDN_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Roaming_Restricted_Due_To_Unsupported_Feature, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (Trace_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Trace_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Trace_Reference, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Trace_Depth, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Trace_NE_Type_List, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (Trace_Interface_List, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (Trace_Event_List, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (OMC_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (GPRS_Subscription_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (GPRS_Subscription_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Complete_Data_List_Included_Indicator, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (PDP_Context, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (PDP_Context, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (PDP_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (3GPP2_MEID, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (Specific_APN_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Specific_APN_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (LCS_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (LCS_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (GMLC_Number, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (LCS_Privacy_Exception, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (LCS_Privacy_Exception, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (SS_Code, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (SS_Status, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (SS_Status, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Notification_To_UE_User, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (External_Client, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (External_Client, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Client_Identity, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (GMLC_Restriction, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (PLMN_Client, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (Service_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Service_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Sevice_Type_Identity, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_add_ptr (MO_LR, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (MO_LR, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Teleservice_List, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Teleservice_List, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (TS_Code, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (Call_Barring_Infor_List, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Call_Barring_Infor_List, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (SGSN_Number, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (IDR_Flags, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (ICS_Indicator, EPC_vendor_id_3GPP, 0, Enumerated, int32_t) - -cdp_avp (IMS_Voice_Over_PS_Sessions_Supported, EPC_vendor_id_3GPP, 0, Enumerated, int32_t) - -cdp_avp (Homogenous_Support_of_IMS_Over_PS_Sessions, EPC_vendor_id_3GPP, 0, Enumerated, int32_t) - -cdp_avp (Last_UE_Activity_Time, EPC_vendor_id_3GPP, 0, Time, time_t) - - - -cdp_avp (PDN_Gw_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, ip_address) - - -cdp_avp_ptr (PDN_Gw_Name, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (PDN_Gw_Identity, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (PDN_Gw_Identity, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - - -/* + cdp_avp_add_ptr(Subscription_Data, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST *) cdp_avp_get(Subscription_Data, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr(Terminal_Information, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST *) cdp_avp_get(Terminal_Information, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr(IMEI, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, UTF8String, str) + + cdp_avp_ptr(Software_Version, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, UTF8String, str) + + cdp_avp_ptr(QoS_Subscribed, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, str) + + cdp_avp(ULR_Flags, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, uint32_t) + + cdp_avp(ULA_Flags, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_ptr( + Visited_PLMN_Id, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr( + Requested_EUTRAN_Authentication_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Requested_EUTRAN_Authentication_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + Requested_UTRAN_GERAN_Authentication_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Requested_UTRAN_GERAN_Authentication_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Number_Of_Requested_Vectors, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_ptr( + Re_Synchronization_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp(Immediate_Response_Preferred, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + Authentication_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Authentication_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + E_UTRAN_Vector, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + E_UTRAN_Vector, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + UTRAN_Vector, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + UTRAN_Vector, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + + cdp_avp_add_ptr( + GERAN_Vector, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + GERAN_Vector, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp(Network_Access_Mode, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp(HPLMN_ODB, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp(Item_Number, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp(Cancellation_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp(DSR_Flags, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) + + cdp_avp(DSA_Flags, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp(Context_Identifier, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp(Subscriber_Status, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp(Operator_Determined_Barring, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp(Access_Restriction_Data, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp_ptr( + APN_OI_Replacement, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, UTF8String, + str) + + cdp_avp(All_APN_Configurations_Included_Indicator, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp_add_ptr(APN_Configuration_Profile, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get( + APN_Configuration_Profile, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + APN_Configuration, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + APN_Configuration, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + + cdp_avp_add_ptr( + EPS_Subscribed_QoS_Profile, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + EPS_Subscribed_QoS_Profile, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp(VPLMN_Dynamic_Address_Allowed, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp_ptr( + STN_SR, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp(Alert_Reason, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp_add_ptr( + AMBR, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_add2(AMBR, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Max_Requested_Bandwidth_UL, uint32_t, Max_Requested_Bandwidth_DL, + uint32_t) + cdp_avp_get( + AMBR, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + cdp_avp_get2( + AMBR, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Max_Requested_Bandwidth_UL, uint32_t, + Max_Requested_Bandwidth_DL, + uint32_t) + + cdp_avp_add_ptr( + CSG_Subscription_Data, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(CSG_Subscription_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp(CSG_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) + + cdp_avp(PDN_Gw_Allocation_Type, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp(Expiration_Date, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Time, + time_t) + + cdp_avp(RAT_Frequency_Selection_Priority_ID, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) + + cdp_avp(IDA_Flags, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) + + cdp_avp(PUA_Flags, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) + + cdp_avp(NOR_Flags, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) + + cdp_avp_ptr( + User_Id, + EPC_vendor_id_3GPP, + 0, + UTF8String, + str) + + cdp_avp(Equipment_Status, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp_ptr( + Regional_Subscription_Zone_Code, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) + + cdp_avp_ptr( + RAND, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp_ptr( + XRES, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp_ptr( + AUTN, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp_ptr( + KASME, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp(Trace_Collection_Entity, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, + ip_address) + + cdp_avp_ptr( + Kc, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp_ptr( + SRES, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp(PDN_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp(Roaming_Restricted_Due_To_Unsupported_Feature, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp_add_ptr( + Trace_Data, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) + cdp_avp_get( + Trace_Data, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + Trace_Reference, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp(Trace_Depth, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, int32_t) + + cdp_avp_ptr( + Trace_NE_Type_List, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + Trace_Interface_List, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + Trace_Event_List, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + OMC_Id, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr( + GPRS_Subscription_Data, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + GPRS_Subscription_Data, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp(Complete_Data_List_Included_Indicator, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp_add_ptr( + PDP_Context, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) cdp_avp_get(PDP_Context, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + PDP_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + 3GPP2_MEID, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr( + Specific_APN_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Specific_APN_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr(LCS_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(LCS_Info, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + GMLC_Number, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr( + LCS_Privacy_Exception, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + LCS_Privacy_Exception, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + SS_Code, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) + + cdp_avp_add_ptr( + SS_Status, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) + cdp_avp_get( + SS_Status, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Notification_To_UE_User, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_add_ptr( + External_Client, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(External_Client, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + + cdp_avp_ptr( + Client_Identity, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp(GMLC_Restriction, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(PLMN_Client, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + + cdp_avp_add_ptr( + Service_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(Service_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Sevice_Type_Identity, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + MO_LR, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + MO_LR, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + Teleservice_List, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(Teleservice_List, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + + cdp_avp_ptr( + TS_Code, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) + + cdp_avp_add_ptr( + Call_Barring_Infor_List, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(Call_Barring_Infor_List, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + SGSN_Number, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp(IDR_Flags, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(ICS_Indicator, + EPC_vendor_id_3GPP, 0, Enumerated, + int32_t) + + cdp_avp(IMS_Voice_Over_PS_Sessions_Supported, + EPC_vendor_id_3GPP, + 0, + Enumerated, + int32_t) + + cdp_avp(Homogenous_Support_of_IMS_Over_PS_Sessions, + EPC_vendor_id_3GPP, 0, Enumerated, int32_t) + + cdp_avp(Last_UE_Activity_Time, + EPC_vendor_id_3GPP, + 0, + Time, + time_t) + + + cdp_avp(PDN_Gw_Address, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, + ip_address) + + + cdp_avp_ptr( + PDN_Gw_Name, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr( + PDN_Gw_Identity, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(PDN_Gw_Identity, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + + /* * TS 29.173 * http://www.3gpp.org/ftp/Specs/html-info/29173.htm */ -cdp_avp (GMLC_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, ip_address) - + cdp_avp(GMLC_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Address, ip_address) -/* + /* * TS 32.299 * http://www.3gpp.org/ftp/Specs/html-info/32299.htm */ -cdp_avp_add_ptr (AF_Correlation_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (AF_Correlation_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Application_Provided_Called_Party_Address,EPC_vendor_id_3GPP,AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (Application_Server, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (Application_Server_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Application_Server_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Authorized_QoS, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (Called_Asserted_Identity, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (Called_Party_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (Calling_Party_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Cause_Code, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Integer32, int32_t) - -cdp_avp_ptr (Content_Disposition, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Content_Length, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Content_Size, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (Content_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (Early_Media_Description, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Early_Media_Description, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Event, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (Event_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Event_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Expires, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (GGSN_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, ip_address) - -cdp_avp_ptr (IMS_Charging_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (IMS_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (IMS_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Local_Sequence_Number, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_add_ptr (PS_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (PS_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Service_Data_Container, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Service_Data_Container, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Inter_Operator_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Inter_Operator_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Media_Initiator_Flag, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Media_Initiator_Party, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (Message_Body, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Message_Body, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Node_Functionality, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Originating_IOI, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Originator, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Outgoing_Session_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Role_Of_Node, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Requested_Party_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (SDP_Answer_TimeStamp, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Time, time_t) - -cdp_avp_add_ptr (SDP_Media_Component, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (SDP_Media_Component, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (SDP_Media_Description, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (SDP_Media_Name, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (SDP_Offer_TimeStamp, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Time, time_t) - -cdp_avp_ptr (SDP_Session_Description, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (SDP_TimeStamps, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (SDP_TimeStamps, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (SDP_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Served_Party_IP_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, ip_address) - -cdp_avp_ptr (Service_ID, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (Service_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Service_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Service_Specific_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (Service_Specific_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Service_Specific_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Service_Specific_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (SGSN_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, ip_address) - -cdp_avp_ptr (SIP_Method, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (SIP_Request_Timestamp_Fraction, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (SIP_Request_Timestamp, EPC_vendor_id_3GPP, 0, Time, time_t) - -cdp_avp (SIP_Response_Timestamp_Fraction, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (SIP_Response_Timestamp, EPC_vendor_id_3GPP, 0, Time, time_t) - -cdp_avp_ptr (Terminating_IOI, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp (Time_First_Usage, EPC_vendor_id_3GPP, 0, Time, time_t) -cdp_avp (Time_Last_Usage, EPC_vendor_id_3GPP, 0, Time, time_t) -cdp_avp (Time_Usage, EPC_vendor_id_3GPP, 0, Time, time_t) - -cdp_avp_add_ptr (Time_Stamps, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Time_Stamps, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (User_Session_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (Trunk_Group_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Trunk_Group_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - - -cdp_avp_ptr (Incoming_Trunk_Group_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (Outgoing_Trunk_Group_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - - - -/* + cdp_avp_add_ptr(AF_Correlation_Information, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) + cdp_avp_get(AF_Correlation_Information, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + + cdp_avp_ptr(Application_Provided_Called_Party_Address, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + UTF8String, str) + + cdp_avp_ptr(Application_Server, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, UTF8String, str) + + cdp_avp_add_ptr( + Application_Server_Information, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST *) + cdp_avp_get( + Application_Server_Information, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST) + + cdp_avp_ptr( + Authorized_QoS, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, str) + + cdp_avp_ptr( + Called_Asserted_Identity, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_ptr( + Called_Party_Address, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_ptr( + Calling_Party_Address, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(Cause_Code, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Integer32, + int32_t) + + cdp_avp_ptr( + Content_Disposition, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(Content_Length, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Content_Size, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_ptr( + Content_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_add_ptr( + Early_Media_Description, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) cdp_avp_get(Early_Media_Description, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr(Event, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) + + cdp_avp_add_ptr( + Event_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) cdp_avp_get(Event_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Expires, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(GGSN_Address, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Address, + ip_address) + + cdp_avp_ptr( + IMS_Charging_Identifier, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_add_ptr(IMS_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get( + IMS_Information, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Local_Sequence_Number, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + PS_Information, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST + *) cdp_avp_get(PS_Information, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr(Service_Data_Container, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get( + Service_Data_Container, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr(Inter_Operator_Identifier, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get( + Inter_Operator_Identifier, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Media_Initiator_Flag, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp_ptr( + Media_Initiator_Party, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_add_ptr( + Message_Body, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Message_Body, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Node_Functionality, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr( + Originating_IOI, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(Originator, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr(Outgoing_Session_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) + + cdp_avp(Role_Of_Node, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr( + Requested_Party_Address, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(SDP_Answer_TimeStamp, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Time, time_t) + + cdp_avp_add_ptr( + SDP_Media_Component, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) cdp_avp_get(SDP_Media_Component, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + SDP_Media_Description, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_ptr(SDP_Media_Name, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) + + cdp_avp(SDP_Offer_TimeStamp, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Time, + time_t) + + cdp_avp_ptr( + SDP_Session_Description, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_add_ptr( + SDP_TimeStamps, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST *) cdp_avp_get(SDP_TimeStamps, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(SDP_Type, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Served_Party_IP_Address, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Address, ip_address) + + cdp_avp_ptr( + Service_ID, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_add_ptr( + Service_Information, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(Service_Information, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + Service_Specific_Data, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_add_ptr( + Service_Specific_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(Service_Specific_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + + cdp_avp(Service_Specific_Type, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp(SGSN_Address, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, + ip_address) + + cdp_avp_ptr( + SIP_Method, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(SIP_Request_Timestamp_Fraction, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp(SIP_Request_Timestamp, + EPC_vendor_id_3GPP, + 0, + Time, + time_t) + + cdp_avp(SIP_Response_Timestamp_Fraction, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(SIP_Response_Timestamp, + EPC_vendor_id_3GPP, + 0, + Time, + time_t) + + cdp_avp_ptr( + Terminating_IOI, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp(Time_First_Usage, + EPC_vendor_id_3GPP, + 0, + Time, + time_t) + cdp_avp(Time_Last_Usage, + EPC_vendor_id_3GPP, + 0, + Time, + time_t) + cdp_avp(Time_Usage, + EPC_vendor_id_3GPP, 0, Time, time_t) + + cdp_avp_add_ptr( + Time_Stamps, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(Time_Stamps, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + User_Session_Id, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) + + cdp_avp_add_ptr(Trunk_Group_Id, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Trunk_Group_Id, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + + cdp_avp_ptr( + Incoming_Trunk_Group_Id, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, UTF8String, str) + + cdp_avp_ptr( + Outgoing_Trunk_Group_Id, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, UTF8String, + str) + + + /* * http://tools.ietf.org/html/rfc5778#section-6.2 */ -cdp_avp_ptr (QoS_Profile_Name, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) + cdp_avp_ptr(QoS_Profile_Name, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, UTF8String, str) -/* + /* * Generic Gateway related AVPs */ -cdp_avp_add_ptr (GG_Enforce, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) + cdp_avp_add_ptr(GG_Enforce, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST *) -cdp_avp_get (GG_Enforce, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + cdp_avp_get(GG_Enforce, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) -cdp_avp (GG_IP, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, ip_address) + cdp_avp(GG_IP, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Address, ip_address) -cdp_avp (UE_Locator, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Address, ip_address) + cdp_avp(UE_Locator, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Address, + ip_address) -cdp_avp_add_ptr (UE_Locator_Id_Group, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) + cdp_avp_add_ptr(UE_Locator_Id_Group, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST *) -cdp_avp_get (UE_Locator_Id_Group, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + cdp_avp_get(UE_Locator_Id_Group, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST) -/* + /* * 3GPP TS 29.273 EPS AAA * http://www.3gpp.org/ftp/Specs/html-info/29273.htm */ -cdp_avp_add_ptr (Non_3GPP_User_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Non_3GPP_User_Data, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + cdp_avp_add_ptr(Non_3GPP_User_Data, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST *) cdp_avp_get(Non_3GPP_User_Data, + EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST) -cdp_avp (Non_3GPP_IP_Access, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + cdp_avp(Non_3GPP_IP_Access, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) -cdp_avp (Non_3GPP_IP_Access_APN, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) + cdp_avp(Non_3GPP_IP_Access_APN, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) -cdp_avp_ptr (ANID, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) + cdp_avp_ptr(ANID, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, UTF8String, str) -cdp_avp_add_ptr (Trace_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Trace_Info, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + cdp_avp_add_ptr(Trace_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST *) + cdp_avp_get(Trace_Info, + EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST) -/* + /* * 3GPP TS 29.234 * http://www.3gpp.org/ftp/Specs/html-info/29234.htm */ -cdp_avp_ptr (3GPP_AAA_Server_Name, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, DiameterIdentity, str) + cdp_avp_ptr(3GPP_AAA_Server_Name, EPC_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, DiameterIdentity, str) /* @@ -832,7 +1895,8 @@ cdp_avp_ptr (3GPP_AAA_Server_Name, EPC_vendor_id_3GPP, AAA_AVP_FLAG_MANDATO #define CDP_AVP_NAME(avp_name) AVP_ETSI_##avp_name -cdp_avp (Reservation_Priority, IMS_vendor_id_ETSI, 0, Unsigned32, uint32_t) + cdp_avp(Reservation_Priority, IMS_vendor_id_ETSI, 0, Unsigned32, + uint32_t) #undef CDP_AVP_NAME @@ -845,7 +1909,7 @@ cdp_avp (Reservation_Priority, IMS_vendor_id_ETSI, 0, Unsigned32, u #if defined(CDP_AVP_DEFINITION) - /* +/* * Put here your supplimentary definitions. Typically: * * int (param1) @@ -857,10 +1921,9 @@ cdp_avp (Reservation_Priority, IMS_vendor_id_ETSI, 0, Unsigned32, u */ - #elif defined(CDP_AVP_EXPORT) - /* + /* * Put here your supplementary exports in the format: * ; * ; @@ -868,10 +1931,10 @@ cdp_avp (Reservation_Priority, IMS_vendor_id_ETSI, 0, Unsigned32, u * */ - cdp_avp_add_GG_Enforce_Group_f add_GG_Enforce_Group; + cdp_avp_add_GG_Enforce_Group_f add_GG_Enforce_Group; #elif defined(CDP_AVP_INIT) - /* + /* * Put here your supplementary inits in the format: * , * , @@ -881,9 +1944,9 @@ cdp_avp (Reservation_Priority, IMS_vendor_id_ETSI, 0, Unsigned32, u * */ - cdp_avp_add_GG_Enforce_Group, + cdp_avp_add_GG_Enforce_Group, #elif defined(CDP_AVP_REFERENCE) - /* + /* * Put here what you want to get in the reference. Typically: * * @@ -891,15 +1954,16 @@ cdp_avp (Reservation_Priority, IMS_vendor_id_ETSI, 0, Unsigned32, u * */ - int CDP_AVP_MODULE.add_GG_Enforce_Group(AAA_AVP_LIST * avpList, str imsi, ip_address ue_ip, ip_address gg_ip, AVPDataStatus status); - + int CDP_AVP_MODULE.add_GG_Enforce_Group(AAA_AVP_LIST *avpList, str imsi, + ip_address ue_ip, ip_address gg_ip, AVPDataStatus status); + #elif defined(CDP_AVP_EMPTY_MACROS) - - /* this should be left blank */ - + +/* this should be left blank */ + #else - /* +/* * Put here your definitions according to the declarations, exports, init, etc above. Typically: * * int @@ -912,28 +1976,24 @@ cdp_avp (Reservation_Priority, IMS_vendor_id_ETSI, 0, Unsigned32, u * */ - - #ifndef _CDP_AVP_EPCAPP_H_2 - #define _CDP_AVP_EPCAPP_H_2 - int cdp_avp_add_GG_Enforce_Group(AAA_AVP_LIST * avpList, int32_t type, str id, - ip_address ue_ip, ip_address gg_ip, uint32_t interval, - AVPDataStatus status); - typedef int (*cdp_avp_add_GG_Enforce_Group_f) (AAA_AVP_LIST * avpList, int32_t type, str id, - ip_address ue_ip, ip_address gg_ip, uint32_t interval, - AVPDataStatus status); +#ifndef _CDP_AVP_EPCAPP_H_2 +#define _CDP_AVP_EPCAPP_H_2 + int cdp_avp_add_GG_Enforce_Group(AAA_AVP_LIST *avpList, + int32_t type, str id, ip_address ue_ip, + ip_address gg_ip, uint32_t interval, + AVPDataStatus status); +typedef int (*cdp_avp_add_GG_Enforce_Group_f)(AAA_AVP_LIST *avpList, + int32_t type, str id, ip_address ue_ip, ip_address gg_ip, + uint32_t interval, AVPDataStatus status); - #endif //_CDP_AVP_EPCAPP_H_2 - -#endif +#endif //_CDP_AVP_EPCAPP_H_2 + +#endif #define CDP_AVP_UNDEF_MACROS - #include "macros.h" +#include "macros.h" #undef CDP_AVP_UNDEF_MACROS - - - - diff --git a/src/modules/cdp_avp/get_reference.h b/src/modules/cdp_avp/get_reference.h index 31b18631e5f..68de722e289 100644 --- a/src/modules/cdp_avp/get_reference.h +++ b/src/modules/cdp_avp/get_reference.h @@ -48,7 +48,7 @@ * * \author Dragos Vingarzan dragos dot vingarzan -at- fokus dot fraunhofer dot de * - */ + */ #undef CDP_AVP_REFERENCE #define CDP_AVP_REFERENCE @@ -66,4 +66,3 @@ #include "ccapp.h" #include "imsapp.h" #include "epcapp.h" - diff --git a/src/modules/cdp_avp/imsapp.c b/src/modules/cdp_avp/imsapp.c index 1ef2543c33d..8b601bc4c56 100644 --- a/src/modules/cdp_avp/imsapp.c +++ b/src/modules/cdp_avp/imsapp.c @@ -56,9 +56,6 @@ extern struct cdp_binds *cdp; #define CDP_AVP_DEFINITION - #include "imsapp.h" +#include "imsapp.h" #undef CDP_AVP_DEFINITION - - - diff --git a/src/modules/cdp_avp/imsapp.h b/src/modules/cdp_avp/imsapp.h index 1eabb711e7c..03279201742 100644 --- a/src/modules/cdp_avp/imsapp.h +++ b/src/modules/cdp_avp/imsapp.h @@ -58,21 +58,22 @@ #undef CDP_AVP_MODULE #define CDP_AVP_MODULE imsapp -#if !defined(CDP_AVP_DECLARATION) && !defined(CDP_AVP_EXPORT) && !defined(CDP_AVP_INIT) && !defined(CDP_AVP_REFERENCE) - #ifndef _CDP_AVP_IMSAPP_H_1 - #define _CDP_AVP_IMSAPP_H_1 +#if !defined(CDP_AVP_DECLARATION) && !defined(CDP_AVP_EXPORT) \ + && !defined(CDP_AVP_INIT) && !defined(CDP_AVP_REFERENCE) +#ifndef _CDP_AVP_IMSAPP_H_1 +#define _CDP_AVP_IMSAPP_H_1 - #include "../cdp/cdp_load.h" +#include "../cdp/cdp_load.h" - #else +#else - /* undo the macros definition if this was re-included */ - #define CDP_AVP_EMPTY_MACROS - #include "macros.h" - #undef CDP_AVP_EMPTY_MACROS +/* undo the macros definition if this was re-included */ +#define CDP_AVP_EMPTY_MACROS +#include "macros.h" +#undef CDP_AVP_EMPTY_MACROS - #endif -#endif //_CDP_AVP_NASAPP_H_1 +#endif +#endif //_CDP_AVP_NASAPP_H_1 /* * The list of AVPs must be declared in the following format: @@ -163,117 +164,353 @@ #undef CDP_AVP_NAME #define CDP_AVP_NAME(avp_name) AVP_IMS_##avp_name -cdp_avp_ptr (Visited_Network_Identifier, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (Public_Identity, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (Server_Name, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (Server_Capabilities, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Server_Capabilities, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Mandatory_Capability, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Optional_Capability, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (User_Data_Cx, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (SIP_Number_Auth_Items, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp_ptr (SIP_Authentication_Scheme, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_ptr (SIP_Authenticate, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (SIP_Authorization, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (SIP_Authentication_Context, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (SIP_Auth_Data_Item, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (SIP_Auth_Data_Item, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (SIP_Item_Number, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Unsigned32, uint32_t) - -cdp_avp (Server_Assignment_Type, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_add_ptr (Deregistration_Reason, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Deregistration_Reason, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp (Reason_Code, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Reason_Info, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, UTF8String, str) - -cdp_avp_add_ptr (Charging_Information, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Charging_Information, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Primary_Event_Charging_Function_Name,IMS_vendor_id_3GPP,AAA_AVP_FLAG_MANDATORY,DiameterURI, str) - -cdp_avp_ptr (Secondary_Event_Charging_Function_Name,IMS_vendor_id_3GPP,AAA_AVP_FLAG_MANDATORY,DiameterURI, str) - -cdp_avp_ptr (Primary_Charging_Collection_Function_Name,IMS_vendor_id_3GPP,AAA_AVP_FLAG_MANDATORY,DiameterURI,str) - -cdp_avp_ptr (Secondary_Charging_Collection_Function_Name,IMS_vendor_id_3GPP,AAA_AVP_FLAG_MANDATORY,DiameterURI, str) - -cdp_avp (User_Authorization_Type, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (User_Data_Already_Available, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Confidentiality_Key, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (Integrity_Key, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (Supported_Features, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_add3 (Supported_Features, IMS_vendor_id_3GPP, 0, Vendor_Id, uint32_t, Feature_List_ID, uint32_t, Feature_List, uint32_t) -cdp_avp_get (Supported_Features, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) -cdp_avp_get3 (Supported_Features, IMS_vendor_id_3GPP, 0, Vendor_Id, uint32_t, Feature_List_ID, uint32_t, Feature_List, uint32_t) - -cdp_avp (Feature_List_ID, IMS_vendor_id_3GPP, 0, Unsigned32, uint32_t) - -cdp_avp (Feature_List, IMS_vendor_id_3GPP, 0, Unsigned32, uint32_t) - -cdp_avp_add_ptr (Supported_Applications, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Supported_Applications, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (Associated_Identities, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Associated_Identities, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp (Originating_Request, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Wildcarded_PSI, IMS_vendor_id_3GPP, 0, UTF8String, str) - -cdp_avp_add_ptr (SIP_Digest_Authenticate, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (SIP_Digest_Authenticate, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Wildcarded_IMPU, IMS_vendor_id_3GPP, 0, UTF8String, str) - -cdp_avp (UAR_Flags, IMS_vendor_id_3GPP, 0, Unsigned32, uint32_t) - -cdp_avp (Loose_Route_Indication, IMS_vendor_id_3GPP, 0, Enumerated, int32_t) - -cdp_avp_add_ptr (SCSCF_Restoration_Info, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (SCSCF_Restoration_Info, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Path, IMS_vendor_id_3GPP, 0, OctetString, str) - -cdp_avp_ptr (Contact, IMS_vendor_id_3GPP, 0, OctetString, str) - -cdp_avp_add_ptr (Subscription_Info, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Subscription_Info, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (From_SIP_Header, IMS_vendor_id_3GPP, 0, OctetString, str) - -cdp_avp_ptr (To_SIP_Header, IMS_vendor_id_3GPP, 0, OctetString, str) - -cdp_avp_ptr (Record_Route, IMS_vendor_id_3GPP, 0, OctetString, str) - -cdp_avp_add_ptr (Associated_Registered_Identities,IMS_vendor_id_3GPP,0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Associated_Registered_Identities,IMS_vendor_id_3GPP,0, Grouped, AAA_AVP_LIST) - -cdp_avp (Multiple_Registration_Indication,IMS_vendor_id_3GPP,0, Enumerated, int32_t) - -cdp_avp_add_ptr (Restoration_Info, IMS_vendor_id_3GPP,0, Grouped, AAA_AVP_LIST*) -cdp_avp_get (Restoration_Info, IMS_vendor_id_3GPP,0, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (Access_Network_Information, IMS_vendor_id_3GPP, 0, UTF8String, str) +cdp_avp_ptr(Visited_Network_Identifier, IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, OctetString, str) + + cdp_avp_ptr(Public_Identity, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + UTF8String, str) + + cdp_avp_ptr(Server_Name, IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, UTF8String, str) + + cdp_avp_add_ptr(Server_Capabilities, IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST *) cdp_avp_get(Server_Capabilities, + IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST) + + cdp_avp(Mandatory_Capability, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Unsigned32, + uint32_t) + + cdp_avp(Optional_Capability, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, uint32_t) + + cdp_avp_ptr(User_Data_Cx, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, str) + + cdp_avp(SIP_Number_Auth_Items, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp_ptr( + SIP_Authentication_Scheme, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_ptr( + SIP_Authenticate, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + SIP_Authorization, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + SIP_Authentication_Context, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr( + SIP_Auth_Data_Item, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + SIP_Auth_Data_Item, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(SIP_Item_Number, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Unsigned32, + uint32_t) + + cdp_avp(Server_Assignment_Type, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_add_ptr(Deregistration_Reason, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) + cdp_avp_get( + Deregistration_Reason, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Reason_Code, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr( + Reason_Info, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + UTF8String, + str) + + cdp_avp_add_ptr( + Charging_Information, + IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Charging_Information, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + Primary_Event_Charging_Function_Name, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + DiameterURI, + str) + + cdp_avp_ptr( + Secondary_Event_Charging_Function_Name, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + DiameterURI, + str) + + cdp_avp_ptr( + Primary_Charging_Collection_Function_Name, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + DiameterURI, + str) + + cdp_avp_ptr( + Secondary_Charging_Collection_Function_Name, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, DiameterURI, str) + + cdp_avp(User_Authorization_Type, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(User_Data_Already_Available, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr( + Confidentiality_Key, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + Integrity_Key, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr( + Supported_Features, + IMS_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_add3( + Supported_Features, IMS_vendor_id_3GPP, 0, Vendor_Id, uint32_t, + Feature_List_ID, + uint32_t, + Feature_List, + uint32_t) cdp_avp_get(Supported_Features, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) + cdp_avp_get3( + Supported_Features, + IMS_vendor_id_3GPP, + 0, + Vendor_Id, uint32_t, Feature_List_ID, uint32_t, Feature_List, uint32_t) + + cdp_avp(Feature_List_ID, + IMS_vendor_id_3GPP, + 0, + Unsigned32, + uint32_t) + + cdp_avp(Feature_List, + IMS_vendor_id_3GPP, + 0, + Unsigned32, + uint32_t) + + cdp_avp_add_ptr( + Supported_Applications, + IMS_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Supported_Applications, + IMS_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + Associated_Identities, + IMS_vendor_id_3GPP, 0, Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Associated_Identities, + IMS_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Originating_Request, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr(Wildcarded_PSI, IMS_vendor_id_3GPP, 0, + UTF8String, + str) + + cdp_avp_add_ptr(SIP_Digest_Authenticate, IMS_vendor_id_3GPP, 0, Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + SIP_Digest_Authenticate, + IMS_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + Wildcarded_IMPU, + IMS_vendor_id_3GPP, + 0, + UTF8String, + str) + + cdp_avp(UAR_Flags, + IMS_vendor_id_3GPP, + 0, + Unsigned32, + uint32_t) + + cdp_avp(Loose_Route_Indication, + IMS_vendor_id_3GPP, + 0, + Enumerated, + int32_t) + + cdp_avp_add_ptr( + SCSCF_Restoration_Info, + IMS_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + SCSCF_Restoration_Info, IMS_vendor_id_3GPP, 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr(Path, IMS_vendor_id_3GPP, 0, OctetString, + str) + + cdp_avp_ptr( + Contact, + IMS_vendor_id_3GPP, 0, OctetString, + str) + + cdp_avp_add_ptr( + Subscription_Info, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST *) + cdp_avp_get(Subscription_Info, + IMS_vendor_id_3GPP, + 0, Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + From_SIP_Header, + IMS_vendor_id_3GPP, 0, OctetString, + str) + + cdp_avp_ptr( + To_SIP_Header, + IMS_vendor_id_3GPP, + 0, + OctetString, + str) + + cdp_avp_ptr( + Record_Route, + IMS_vendor_id_3GPP, + 0, + OctetString, + str) + + cdp_avp_add_ptr( + Associated_Registered_Identities, + IMS_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + Associated_Registered_Identities, + IMS_vendor_id_3GPP, 0, + Grouped, + AAA_AVP_LIST) + + cdp_avp(Multiple_Registration_Indication, + IMS_vendor_id_3GPP, + 0, + Enumerated, + int32_t) + + cdp_avp_add_ptr( + Restoration_Info, + IMS_vendor_id_3GPP, + 0, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get(Restoration_Info, IMS_vendor_id_3GPP, 0, Grouped, AAA_AVP_LIST) + + cdp_avp_ptr(Access_Network_Information, + IMS_vendor_id_3GPP, 0, UTF8String, + str) /* @@ -283,52 +520,158 @@ cdp_avp_ptr (Access_Network_Information, IMS_vendor_id_3GPP, 0, UTF #undef CDP_AVP_NAME #define CDP_AVP_NAME(avp_name) AVP_##avp_name -cdp_avp_ptr (ETSI_Line_Identifier, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_add_ptr (ETSI_SIP_Authenticate, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (ETSI_SIP_Authenticate, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (ETSI_SIP_Authorization, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (ETSI_SIP_Authorization, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_add_ptr (ETSI_SIP_Authentication_Info, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (ETSI_SIP_Authentication_Info, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (ETSI_Digest_Realm, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Nonce, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Domain, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Opaque, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Stale, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Algorithm, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_QoP, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_HA1, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Auth_Param, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Username, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_URI, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Response, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_CNonce, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Nonce_Count, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Method, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Entity_Body_Hash, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Nextnonce, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (ETSI_Digest_Response_Auth, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) + cdp_avp_ptr( + ETSI_Line_Identifier, + IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_add_ptr( + ETSI_SIP_Authenticate, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + ETSI_SIP_Authenticate, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) + + cdp_avp_add_ptr( + ETSI_SIP_Authorization, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + ETSI_SIP_Authorization, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_add_ptr( + ETSI_SIP_Authentication_Info, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + ETSI_SIP_Authentication_Info, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + ETSI_Digest_Realm, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) + + cdp_avp_ptr( + ETSI_Digest_Nonce, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Domain, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Opaque, + IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Stale, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Algorithm, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_QoP, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_HA1, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Auth_Param, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Username, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_URI, + IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, OctetString, str) + + cdp_avp_ptr(ETSI_Digest_Response, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_CNonce, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Nonce_Count, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Method, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Entity_Body_Hash, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Nextnonce, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + ETSI_Digest_Response_Auth, + IMS_vendor_id_ETSI, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) /* @@ -338,20 +681,46 @@ cdp_avp_ptr (ETSI_Digest_Response_Auth, IMS_vendor_id_ETSI, AAA_AVP_FLAG_MANDA #undef CDP_AVP_NAME #define CDP_AVP_NAME(avp_name) AVP_##avp_name -cdp_avp_add_ptr (CableLabs_SIP_Digest_Authenticate,IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (CableLabs_SIP_Digest_Authenticate,IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (CableLabs_Digest_Realm, IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, OctetString,str) - -cdp_avp_ptr (CableLabs_Digest_Domain, IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, OctetString,str) - -cdp_avp_ptr (CableLabs_Digest_Algorithm, IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, OctetString,str) - -cdp_avp_ptr (CableLabs_Digest_QoP, IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, OctetString,str) - -cdp_avp_ptr (CableLabs_Digest_HA1, IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, OctetString,str) - -cdp_avp_ptr (CableLabs_Digest_Auth_Param, IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, OctetString,str) + cdp_avp_add_ptr( + CableLabs_SIP_Digest_Authenticate, IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, Grouped, + AAA_AVP_LIST + *) + cdp_avp_get( + CableLabs_SIP_Digest_Authenticate, IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, + Grouped, + AAA_AVP_LIST) + + cdp_avp_ptr( + CableLabs_Digest_Realm, IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, OctetString, + str) + + cdp_avp_ptr( + CableLabs_Digest_Domain, + IMS_vendor_id_CableLabs, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + CableLabs_Digest_Algorithm, + IMS_vendor_id_CableLabs, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + CableLabs_Digest_QoP, + IMS_vendor_id_CableLabs, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp_ptr( + CableLabs_Digest_HA1, IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, OctetString, str) + + cdp_avp_ptr( + CableLabs_Digest_Auth_Param, + IMS_vendor_id_CableLabs, AAA_AVP_FLAG_MANDATORY, OctetString, str) /* * TS 29.329 @@ -360,48 +729,81 @@ cdp_avp_ptr (CableLabs_Digest_Auth_Param, IMS_vendor_id_CableLabs, AAA_AVP_FLAG #undef CDP_AVP_NAME #define CDP_AVP_NAME(avp_name) AVP_IMS_##avp_name -cdp_avp_add_ptr (User_Identity, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST*) -cdp_avp_get (User_Identity, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST) - -cdp_avp_ptr (MSISDN, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp_ptr (User_Data_Sh, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Data_Reference, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp_ptr (Service_Indication, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - -cdp_avp (Subs_Req_Type, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Requested_Domain, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Current_Location, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Identity_Set, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, int32_t) - -cdp_avp (Expiry_Time, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Time, time_t) - -cdp_avp (Send_Data_Indication, IMS_vendor_id_3GPP, 0, Enumerated, int32_t) - -cdp_avp_ptr (DSAI_Tag, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) - - + cdp_avp_add_ptr( + User_Identity, IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, Grouped, AAA_AVP_LIST *) cdp_avp_get(User_Identity, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Grouped, AAA_AVP_LIST) + + cdp_avp_ptr( + MSISDN, + IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetString, str) + + cdp_avp_ptr( + User_Data_Sh, IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, str) + + cdp_avp(Data_Reference, IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp_ptr( + Service_Indication, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) + + cdp_avp(Subs_Req_Type, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Requested_Domain, + IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Enumerated, + int32_t) + + cdp_avp(Current_Location, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Identity_Set, + IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + Enumerated, + int32_t) + + cdp_avp(Expiry_Time, + IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, Time, + time_t) + + cdp_avp(Send_Data_Indication, IMS_vendor_id_3GPP, 0, + Enumerated, + int32_t) + + cdp_avp_ptr(DSAI_Tag, IMS_vendor_id_3GPP, + AAA_AVP_FLAG_MANDATORY, + OctetString, + str) #undef CDP_AVP_NAME #define CDP_AVP_NAME(avp_name) AVP_##avp_name - - - /* * From here-on you can define/export/init/declare functions which can not be generate with the macros */ #if defined(CDP_AVP_DEFINITION) - /* +/* * Put here your supplementary definitions. Typically: * * int (param1) @@ -415,7 +817,7 @@ cdp_avp_ptr (DSAI_Tag, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetS #elif defined(CDP_AVP_EXPORT) - /* +/* * Put here your supplimentary exports in the format: * ; * ; @@ -426,7 +828,7 @@ cdp_avp_ptr (DSAI_Tag, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetS #elif defined(CDP_AVP_INIT) - /* +/* * Put here your supplementary inits in the format: * , * , @@ -438,7 +840,7 @@ cdp_avp_ptr (DSAI_Tag, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetS #elif defined(CDP_AVP_REFERENCE) - /* +/* * Put here what you want to get in the reference. Typically: * * @@ -446,14 +848,14 @@ cdp_avp_ptr (DSAI_Tag, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetS * */ - + #elif defined(CDP_AVP_EMPTY_MACROS) - - /* this should be left blank */ - + +/* this should be left blank */ + #else - /* +/* * Put here your definitions according to the declarations, exports, init, etc above. Typically: * * int @@ -466,23 +868,16 @@ cdp_avp_ptr (DSAI_Tag, IMS_vendor_id_3GPP, AAA_AVP_FLAG_MANDATORY, OctetS * */ - - #ifndef _CDP_AVP_IMSAPP_H_2 - #define _CDP_AVP_IMSAPP_H_2 +#ifndef _CDP_AVP_IMSAPP_H_2 +#define _CDP_AVP_IMSAPP_H_2 +#endif //_CDP_AVP_IMSAPP_H_2 - #endif //_CDP_AVP_IMSAPP_H_2 - #endif - #define CDP_AVP_UNDEF_MACROS - #include "macros.h" +#include "macros.h" #undef CDP_AVP_UNDEF_MACROS - - - - diff --git a/src/modules/cdp_avp/macros.h b/src/modules/cdp_avp/macros.h index 9d10a2b888d..d2e4871ef60 100644 --- a/src/modules/cdp_avp/macros.h +++ b/src/modules/cdp_avp/macros.h @@ -39,7 +39,7 @@ */ #ifndef CDP_AVP_MODULE - #define CDP_AVP_MODULE cdp_avp +#define CDP_AVP_MODULE cdp_avp #endif #undef CDP_AVP_NAME @@ -48,393 +48,451 @@ #if defined(CDP_AVP_UNDEF_MACROS) - #undef cdp_avp_add - #undef cdp_avp_add_ptr - #undef cdp_avp_add2 - #undef cdp_avp_add3 +#undef cdp_avp_add +#undef cdp_avp_add_ptr +#undef cdp_avp_add2 +#undef cdp_avp_add3 - #undef cdp_avp_get - #undef cdp_avp_get2 - #undef cdp_avp_get3 +#undef cdp_avp_get +#undef cdp_avp_get2 +#undef cdp_avp_get3 - #undef cdp_avp - #undef cdp_avp_ptr - #undef cdp_avp2 - #undef cdp_avp3 +#undef cdp_avp +#undef cdp_avp_ptr +#undef cdp_avp2 +#undef cdp_avp3 #elif defined(CDP_AVP_DEFINITION) - /* +/* * This is the definition of the function, so this needs to generate the .c file */ - - #define cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type)\ - int cdp_avp_add_##avp_name(AAA_AVP_LIST *list,data_type data) \ - { \ - return cdp_avp_add_to_list(list, \ - cdp_avp_new_##avp_type( \ - CDP_AVP_NAME(avp_name), \ - flags, \ - vendor_id, \ - data)); \ - } - #define cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - int cdp_avp_add_##avp_name(AAA_AVP_LIST *list,data_type data,AVPDataStatus data_do) \ - { \ - return cdp_avp_add_to_list(list, \ - cdp_avp_new_##avp_type( \ - CDP_AVP_NAME(avp_name), \ - flags, \ - vendor_id, \ - data, \ - data_do)); \ +#define cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) \ + int cdp_avp_add_##avp_name(AAA_AVP_LIST *list, data_type data) \ + { \ + return cdp_avp_add_to_list( \ + list, cdp_avp_new_##avp_type(CDP_AVP_NAME(avp_name), flags, \ + vendor_id, data)); \ } - #define cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - int cdp_avp_add_##avp_name##_Group(AAA_AVP_LIST *list,data_type_1 avp_name_1,data_type_2 avp_name_2) \ - { \ - AAA_AVP_LIST list_grp={0,0}; \ - if (!cdp_avp_add_##avp_name_1(&list_grp,avp_name_1)|| \ - !cdp_avp_add_##avp_name_2(&list_grp,avp_name_2)) { \ - cdp->AAAFreeAVPList(&list_grp); \ - return 0; \ - } \ - return cdp_avp_add_to_list(list, \ - cdp_avp_new_Grouped( \ - CDP_AVP_NAME(avp_name), \ - flags, \ - vendor_id, \ - &list_grp, \ - AVP_FREE_DATA)); \ +#define cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + int cdp_avp_add_##avp_name( \ + AAA_AVP_LIST *list, data_type data, AVPDataStatus data_do) \ + { \ + return cdp_avp_add_to_list( \ + list, cdp_avp_new_##avp_type(CDP_AVP_NAME(avp_name), flags, \ + vendor_id, data, data_do)); \ } - #define cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - int cdp_avp_add_##avp_name##_Group(AAA_AVP_LIST *list,data_type_1 avp_name_1,data_type_2 avp_name_2,data_type_3 avp_name_3) \ - { \ - AAA_AVP_LIST list_grp={0,0}; \ - if (!cdp_avp_add_##avp_name_1(&list_grp,avp_name_1)|| \ - !cdp_avp_add_##avp_name_2(&list_grp,avp_name_2)|| \ - !cdp_avp_add_##avp_name_3(&list_grp,avp_name_3)) { \ - cdp->AAAFreeAVPList(&list_grp); \ - return 0; \ - } \ - return cdp_avp_add_to_list(list, \ - cdp_avp_new_Grouped( \ - CDP_AVP_NAME(avp_name), \ - flags, \ - vendor_id, \ - &list_grp, \ - AVP_FREE_DATA)); \ +#define cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + int cdp_avp_add_##avp_name##_Group(AAA_AVP_LIST *list, \ + data_type_1 avp_name_1, data_type_2 avp_name_2) \ + { \ + AAA_AVP_LIST list_grp = {0, 0}; \ + if(!cdp_avp_add_##avp_name_1(&list_grp, avp_name_1) \ + || !cdp_avp_add_##avp_name_2(&list_grp, avp_name_2)) { \ + cdp->AAAFreeAVPList(&list_grp); \ + return 0; \ + } \ + return cdp_avp_add_to_list( \ + list, cdp_avp_new_Grouped(CDP_AVP_NAME(avp_name), flags, \ + vendor_id, &list_grp, AVP_FREE_DATA)); \ } +#define cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + int cdp_avp_add_##avp_name##_Group(AAA_AVP_LIST *list, \ + data_type_1 avp_name_1, data_type_2 avp_name_2, \ + data_type_3 avp_name_3) \ + { \ + AAA_AVP_LIST list_grp = {0, 0}; \ + if(!cdp_avp_add_##avp_name_1(&list_grp, avp_name_1) \ + || !cdp_avp_add_##avp_name_2(&list_grp, avp_name_2) \ + || !cdp_avp_add_##avp_name_3(&list_grp, avp_name_3)) { \ + cdp->AAAFreeAVPList(&list_grp); \ + return 0; \ + } \ + return cdp_avp_add_to_list( \ + list, cdp_avp_new_Grouped(CDP_AVP_NAME(avp_name), flags, \ + vendor_id, &list_grp, AVP_FREE_DATA)); \ + } +#define cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) \ + int cdp_avp_get_##avp_name( \ + AAA_AVP_LIST list, data_type *data, AAA_AVP **avp_ptr) \ + { \ + AAA_AVP *avp = cdp_avp_get_next_from_list(list, \ + CDP_AVP_NAME(avp_name), vendor_id, avp_ptr ? *avp_ptr : 0); \ + if(avp_ptr) \ + *avp_ptr = avp; \ + if(!avp) { \ + if(data) \ + bzero(data, sizeof(data_type)); \ + return 0; \ + } \ + return cdp_avp_get_##avp_type(avp, data); \ + } - - #define cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) \ - int cdp_avp_get_##avp_name(AAA_AVP_LIST list,data_type *data,AAA_AVP **avp_ptr) \ - { \ - AAA_AVP *avp = cdp_avp_get_next_from_list(list, \ - CDP_AVP_NAME(avp_name), \ - vendor_id, \ - avp_ptr?*avp_ptr:0); \ - if (avp_ptr) *avp_ptr = avp; \ - if (!avp) { \ - if (data) bzero(data,sizeof(data_type)); \ - return 0; \ - } \ - return cdp_avp_get_##avp_type(avp,data); \ +#define cdp_avp_get2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + int cdp_avp_get_##avp_name##_Group(AAA_AVP_LIST list, \ + data_type_1 *avp_name_1, data_type_2 *avp_name_2, \ + AAA_AVP **avp_ptr) \ + { \ + int cnt = 0; \ + AAA_AVP_LIST list_grp = {0, 0}; \ + AAA_AVP *avp = cdp_avp_get_next_from_list(list, \ + CDP_AVP_NAME(avp_name), vendor_id, avp_ptr ? *avp_ptr : 0); \ + if(avp_ptr) \ + *avp_ptr = avp; \ + if(!avp || !cdp_avp_get_Grouped(avp, &list_grp)) { \ + if(avp_name_1) \ + bzero(avp_name_1, sizeof(data_type_1)); \ + if(avp_name_2) \ + bzero(avp_name_2, sizeof(data_type_2)); \ + return 0; \ + } \ + cnt += cdp_avp_get_##avp_name_1(list_grp, avp_name_1, 0); \ + cnt += cdp_avp_get_##avp_name_2(list_grp, avp_name_2, 0); \ + cdp->AAAFreeAVPList(&list_grp); \ + return cnt; \ } - - #define cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - int cdp_avp_get_##avp_name##_Group(AAA_AVP_LIST list,data_type_1 *avp_name_1,data_type_2 *avp_name_2,AAA_AVP **avp_ptr) \ - { \ - int cnt=0; \ - AAA_AVP_LIST list_grp={0,0}; \ - AAA_AVP *avp = cdp_avp_get_next_from_list(list, \ - CDP_AVP_NAME(avp_name), \ - vendor_id, \ - avp_ptr?*avp_ptr:0); \ - if (avp_ptr) *avp_ptr = avp; \ - if (!avp||!cdp_avp_get_Grouped(avp,&list_grp)) { \ - if (avp_name_1) bzero(avp_name_1,sizeof(data_type_1)); \ - if (avp_name_2) bzero(avp_name_2,sizeof(data_type_2)); \ - return 0; \ - } \ - cnt += cdp_avp_get_##avp_name_1(list_grp,avp_name_1,0); \ - cnt += cdp_avp_get_##avp_name_2(list_grp,avp_name_2,0); \ - cdp->AAAFreeAVPList(&list_grp); \ - return cnt; \ - } - - #define cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - int cdp_avp_get_##avp_name##_Group(AAA_AVP_LIST list,data_type_1 *avp_name_1,data_type_2 *avp_name_2,data_type_3 *avp_name_3,AAA_AVP **avp_ptr) \ - { \ - int cnt=0; \ - AAA_AVP_LIST list_grp={0,0}; \ - AAA_AVP *avp = cdp_avp_get_next_from_list(list, \ - CDP_AVP_NAME(avp_name), \ - vendor_id, \ - avp_ptr?*avp_ptr:0); \ - if (avp_ptr) *avp_ptr = avp; \ - if (!avp||!cdp_avp_get_Grouped(avp,&list_grp)) { \ - if (avp_name_1) bzero(avp_name_1,sizeof(data_type_1)); \ - if (avp_name_2) bzero(avp_name_2,sizeof(data_type_2)); \ - if (avp_name_3) bzero(avp_name_3,sizeof(data_type_3)); \ - return 0; \ - } \ - cnt += cdp_avp_get_##avp_name_1(list_grp,avp_name_1,0); \ - cnt += cdp_avp_get_##avp_name_2(list_grp,avp_name_2,0); \ - cnt += cdp_avp_get_##avp_name_3(list_grp,avp_name_3,0); \ - cdp->AAAFreeAVPList(&list_grp); \ - return cnt; \ +#define cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + int cdp_avp_get_##avp_name##_Group(AAA_AVP_LIST list, \ + data_type_1 *avp_name_1, data_type_2 *avp_name_2, \ + data_type_3 *avp_name_3, AAA_AVP **avp_ptr) \ + { \ + int cnt = 0; \ + AAA_AVP_LIST list_grp = {0, 0}; \ + AAA_AVP *avp = cdp_avp_get_next_from_list(list, \ + CDP_AVP_NAME(avp_name), vendor_id, avp_ptr ? *avp_ptr : 0); \ + if(avp_ptr) \ + *avp_ptr = avp; \ + if(!avp || !cdp_avp_get_Grouped(avp, &list_grp)) { \ + if(avp_name_1) \ + bzero(avp_name_1, sizeof(data_type_1)); \ + if(avp_name_2) \ + bzero(avp_name_2, sizeof(data_type_2)); \ + if(avp_name_3) \ + bzero(avp_name_3, sizeof(data_type_3)); \ + return 0; \ + } \ + cnt += cdp_avp_get_##avp_name_1(list_grp, avp_name_1, 0); \ + cnt += cdp_avp_get_##avp_name_2(list_grp, avp_name_2, 0); \ + cnt += cdp_avp_get_##avp_name_3(list_grp, avp_name_3, 0); \ + cdp->AAAFreeAVPList(&list_grp); \ + return cnt; \ } - #define cdp_avp(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) +#define cdp_avp(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) - #define cdp_avp_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) +#define cdp_avp_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) - #define cdp_avp2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) - - #define cdp_avp3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) +#define cdp_avp2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) cdp_avp_get2(avp_name, vendor_id, flags, \ + avp_name_1, data_type_1, avp_name_2, data_type_2) + +#define cdp_avp3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) #elif defined(CDP_AVP_EXPORT) - /* +/* * This is the export of the functions in the module, so this needs to generate the cdp_avp_mod.h lists */ - - - #define cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add_##avp_name##_f add_##avp_name; - - #define cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add_##avp_name##_f add_##avp_name; - - #define cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_add_##avp_name##_Group_f add_##avp_name##_Group; - - #define cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_add_##avp_name##_Group_f add_##avp_name##_Group; - - - - #define cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_get_##avp_name##_f get_##avp_name; - - #define cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_get_##avp_name##_Group_f get_##avp_name##_Group; - - #define cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_get_##avp_name##_Group_f get_##avp_name##_Group; - - - - - #define cdp_avp(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) - - #define cdp_avp_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) - - #define cdp_avp2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) - - #define cdp_avp3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) + + +#define cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add_##avp_name##_f add_##avp_name; + +#define cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add_##avp_name##_f add_##avp_name; + +#define cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + cdp_avp_add_##avp_name##_Group_f add_##avp_name##_Group; + +#define cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_add_##avp_name##_Group_f add_##avp_name##_Group; + + +#define cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_get_##avp_name##_f get_##avp_name; + +#define cdp_avp_get2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + cdp_avp_get_##avp_name##_Group_f get_##avp_name##_Group; + +#define cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_get_##avp_name##_Group_f get_##avp_name##_Group; + + +#define cdp_avp(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) + +#define cdp_avp_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) + +#define cdp_avp2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) cdp_avp_get2(avp_name, vendor_id, flags, \ + avp_name_1, data_type_1, avp_name_2, data_type_2) + +#define cdp_avp3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) #elif defined(CDP_AVP_INIT) - /* +/* * This is the initialization of the exported binding in the module, so this needs to generate the list of functions */ - #define cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add_##avp_name, +#define cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add_##avp_name, - #define cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add_##avp_name, +#define cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add_##avp_name, - #define cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_add_##avp_name##_Group, - - #define cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_add_##avp_name##_Group, +#define cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + cdp_avp_add_##avp_name##_Group, +#define cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_add_##avp_name##_Group, - #define cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_get_##avp_name, +#define cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_get_##avp_name, - #define cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_get_##avp_name##_Group, - - #define cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_get_##avp_name##_Group, +#define cdp_avp_get2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + cdp_avp_get_##avp_name##_Group, +#define cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_get_##avp_name##_Group, +#define cdp_avp(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) - #define cdp_avp(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) - - #define cdp_avp_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) - - #define cdp_avp2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) - - #define cdp_avp3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) +#define cdp_avp_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) + +#define cdp_avp2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) cdp_avp_get2(avp_name, vendor_id, flags, \ + avp_name_1, data_type_1, avp_name_2, data_type_2) + +#define cdp_avp3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) #elif defined(CDP_AVP_REFERENCE) - /* +/* * This is for generating a function reference for documentation */ - #define cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type) \ - int CDP_AVP_MODULE.add_##avp_name(AAA_AVP_LIST *list,data_type data); - - #define cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - int CDP_AVP_MODULE.add_##avp_name(AAA_AVP_LIST *list,data_type data,AVPDataStatus data_do); - - #define cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - int CDP_AVP_MODULE.add_##avp_name##_Group(AAA_AVP_LIST *list,data_type_1 avp_name_1,data_type_2 avp_name_2); - - #define cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - int CDP_AVP_MODULE.add_##avp_name##_Group(AAA_AVP_LIST *list,data_type_1 avp_name_1,data_type_2 avp_name_2,data_type_3 avp_name_3); - - - - #define cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) \ - int CDP_AVP_MODULE.get_##avp_name(AAA_AVP_LIST list,data_type *data,AAA_AVP **avp_ptr); - - #define cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - int CDP_AVP_MODULE.get_##avp_name##_Group(AAA_AVP_LIST list,data_type_1 *avp_name_1,data_type_2 *avp_name_2,AAA_AVP **avp_ptr); - - #define cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - int CDP_AVP_MODULE.get_##avp_name##_Group(AAA_AVP_LIST list,data_type_1 *avp_name_1,data_type_2 *avp_name_2,data_type_3 *avp_name_3,AAA_AVP **avp_ptr); - - - - - - #define cdp_avp(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type) \ - |cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) - - - #define cdp_avp_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - |cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) - - #define cdp_avp2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - |cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) - - #define cdp_avp3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - |cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) - +#define cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) \ + int CDP_AVP_MODULE.add_##avp_name(AAA_AVP_LIST *list, data_type data); + +#define cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + int CDP_AVP_MODULE.add_##avp_name( \ + AAA_AVP_LIST *list, data_type data, AVPDataStatus data_do); + +#define cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + int CDP_AVP_MODULE.add_##avp_name##_Group(AAA_AVP_LIST *list, \ + data_type_1 avp_name_1, data_type_2 avp_name_2); + +#define cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + int CDP_AVP_MODULE.add_##avp_name##_Group(AAA_AVP_LIST *list, \ + data_type_1 avp_name_1, data_type_2 avp_name_2, \ + data_type_3 avp_name_3); + + +#define cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) \ + int CDP_AVP_MODULE.get_##avp_name( \ + AAA_AVP_LIST list, data_type *data, AAA_AVP **avp_ptr); + +#define cdp_avp_get2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + int CDP_AVP_MODULE.get_##avp_name##_Group(AAA_AVP_LIST list, \ + data_type_1 *avp_name_1, data_type_2 *avp_name_2, \ + AAA_AVP **avp_ptr); + +#define cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + int CDP_AVP_MODULE.get_##avp_name##_Group(AAA_AVP_LIST list, \ + data_type_1 *avp_name_1, data_type_2 *avp_name_2, \ + data_type_3 *avp_name_3, AAA_AVP **avp_ptr); + + +#define cdp_avp(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) \ + | cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) + + +#define cdp_avp_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + | cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) + +#define cdp_avp2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + | cdp_avp_get2(avp_name, vendor_id, flags, avp_name_1, \ + data_type_1, avp_name_2, data_type_2) + +#define cdp_avp3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + | cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, \ + data_type_1, avp_name_2, data_type_2, avp_name_3, \ + data_type_3) + #elif defined(CDP_AVP_EMPTY_MACROS) - /* +/* * This is for ensuring that the templates won't actually output anything */ - #define cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type) - #define cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) - #define cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) - #define cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) - +#define cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) +#define cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) +#define cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) +#define cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) + +#define cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) +#define cdp_avp_get2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) +#define cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) - #define cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) - #define cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) - #define cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) +#define cdp_avp(avp_name, vendor_id, flags, avp_type, data_type) +#define cdp_avp_ptr(avp_name, vendor_id, flags, avp_type, data_type) +#define cdp_avp2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) +#define cdp_avp3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) - #define cdp_avp(avp_name,vendor_id,flags,avp_type,data_type) - #define cdp_avp_ptr(avp_name,vendor_id,flags,avp_type,data_type) - #define cdp_avp2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) - #define cdp_avp3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) - #else - /* +/* * This is the declaration of the functions, so this needs to generate the normal .h header file */ - #define cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type) \ - int cdp_avp_add_##avp_name(AAA_AVP_LIST *list,data_type data); \ - typedef int (*cdp_avp_add_##avp_name##_f)(AAA_AVP_LIST *list,data_type data); - - #define cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - int cdp_avp_add_##avp_name(AAA_AVP_LIST *list,data_type data,AVPDataStatus data_do); \ - typedef int (*cdp_avp_add_##avp_name##_f)(AAA_AVP_LIST *list,data_type data,AVPDataStatus data_do); - - #define cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - int cdp_avp_add_##avp_name##_Group(AAA_AVP_LIST *list,data_type_1 avp_name_1,data_type_2 avp_name_2); \ - typedef int (*cdp_avp_add_##avp_name##_Group_f)(AAA_AVP_LIST *list,data_type_1 avp_name_1,data_type_2 avp_name_2); - - #define cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - int cdp_avp_add_##avp_name##_Group(AAA_AVP_LIST *list,data_type_1 avp_name_1,data_type_2 avp_name_2,data_type_3 avp_name_3); \ - typedef int (*cdp_avp_add_##avp_name##_Group_f)(AAA_AVP_LIST *list,data_type_1 avp_name_1,data_type_2 avp_name_2,data_type_3 avp_name_3); - - - - #define cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) \ - int cdp_avp_get_##avp_name(AAA_AVP_LIST list,data_type *data,AAA_AVP **avp_ptr); \ - typedef int (*cdp_avp_get_##avp_name##_f)(AAA_AVP_LIST list,data_type *data,AAA_AVP **avp_ptr); - - #define cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - int cdp_avp_get_##avp_name##_Group(AAA_AVP_LIST list,data_type_1 *avp_name_1,data_type_2 *avp_name_2,AAA_AVP **avp_ptr); \ - typedef int (*cdp_avp_get_##avp_name##_Group_f)(AAA_AVP_LIST list,data_type_1 *avp_name_1,data_type_2 *avp_name_2,AAA_AVP **avp_ptr); - - #define cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - int cdp_avp_get_##avp_name##_Group(AAA_AVP_LIST list,data_type_1 *avp_name_1,data_type_2 *avp_name_2,data_type_3 *avp_name_3,AAA_AVP **avp_ptr); \ - typedef int (*cdp_avp_get_##avp_name##_Group_f)(AAA_AVP_LIST list,data_type_1 *avp_name_1,data_type_2 *avp_name_2,data_type_3 *avp_name_3,AAA_AVP **avp_ptr); - - - - - #define cdp_avp(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) - - #define cdp_avp_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_add_ptr(avp_name,vendor_id,flags,avp_type,data_type) \ - cdp_avp_get(avp_name,vendor_id,flags,avp_type,data_type) - - #define cdp_avp2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_add2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) \ - cdp_avp_get2(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2) - - #define cdp_avp3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_add3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) \ - cdp_avp_get3(avp_name,vendor_id,flags,avp_name_1,data_type_1,avp_name_2,data_type_2,avp_name_3,data_type_3) +#define cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) \ + int cdp_avp_add_##avp_name(AAA_AVP_LIST *list, data_type data); \ + typedef int (*cdp_avp_add_##avp_name##_f)( \ + AAA_AVP_LIST * list, data_type data); + +#define cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + int cdp_avp_add_##avp_name( \ + AAA_AVP_LIST *list, data_type data, AVPDataStatus data_do); \ + typedef int (*cdp_avp_add_##avp_name##_f)( \ + AAA_AVP_LIST * list, data_type data, AVPDataStatus data_do); + +#define cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + int cdp_avp_add_##avp_name##_Group(AAA_AVP_LIST *list, \ + data_type_1 avp_name_1, data_type_2 avp_name_2); \ + typedef int (*cdp_avp_add_##avp_name##_Group_f)(AAA_AVP_LIST * list, \ + data_type_1 avp_name_1, data_type_2 avp_name_2); + +#define cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + int cdp_avp_add_##avp_name##_Group(AAA_AVP_LIST *list, \ + data_type_1 avp_name_1, data_type_2 avp_name_2, \ + data_type_3 avp_name_3); \ + typedef int (*cdp_avp_add_##avp_name##_Group_f)(AAA_AVP_LIST * list, \ + data_type_1 avp_name_1, data_type_2 avp_name_2, \ + data_type_3 avp_name_3); + + +#define cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) \ + int cdp_avp_get_##avp_name( \ + AAA_AVP_LIST list, data_type *data, AAA_AVP **avp_ptr); \ + typedef int (*cdp_avp_get_##avp_name##_f)( \ + AAA_AVP_LIST list, data_type * data, AAA_AVP * *avp_ptr); + +#define cdp_avp_get2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + int cdp_avp_get_##avp_name##_Group(AAA_AVP_LIST list, \ + data_type_1 *avp_name_1, data_type_2 *avp_name_2, \ + AAA_AVP **avp_ptr); \ + typedef int (*cdp_avp_get_##avp_name##_Group_f)(AAA_AVP_LIST list, \ + data_type_1 * avp_name_1, data_type_2 * avp_name_2, \ + AAA_AVP * *avp_ptr); + +#define cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + int cdp_avp_get_##avp_name##_Group(AAA_AVP_LIST list, \ + data_type_1 *avp_name_1, data_type_2 *avp_name_2, \ + data_type_3 *avp_name_3, AAA_AVP **avp_ptr); \ + typedef int (*cdp_avp_get_##avp_name##_Group_f)(AAA_AVP_LIST list, \ + data_type_1 * avp_name_1, data_type_2 * avp_name_2, \ + data_type_3 * avp_name_3, AAA_AVP * *avp_ptr); + + +#define cdp_avp(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) + +#define cdp_avp_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_add_ptr(avp_name, vendor_id, flags, avp_type, data_type) \ + cdp_avp_get(avp_name, vendor_id, flags, avp_type, data_type) + +#define cdp_avp2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) \ + cdp_avp_add2(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2) cdp_avp_get2(avp_name, vendor_id, flags, \ + avp_name_1, data_type_1, avp_name_2, data_type_2) + +#define cdp_avp3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_add3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) \ + cdp_avp_get3(avp_name, vendor_id, flags, avp_name_1, data_type_1, \ + avp_name_2, data_type_2, avp_name_3, data_type_3) #endif - - diff --git a/src/modules/cdp_avp/nasapp.c b/src/modules/cdp_avp/nasapp.c index 6413dc72c0a..e33a5fd301b 100644 --- a/src/modules/cdp_avp/nasapp.c +++ b/src/modules/cdp_avp/nasapp.c @@ -55,9 +55,6 @@ extern struct cdp_binds *cdp; #define CDP_AVP_DEFINITION - #include "nasapp.h" +#include "nasapp.h" #undef CDP_AVP_DEFINITION - - - diff --git a/src/modules/cdp_avp/nasapp.h b/src/modules/cdp_avp/nasapp.h index 4d8eada50d3..f8678b1ae4e 100644 --- a/src/modules/cdp_avp/nasapp.h +++ b/src/modules/cdp_avp/nasapp.h @@ -50,21 +50,22 @@ #undef CDP_AVP_MODULE #define CDP_AVP_MODULE nasapp -#if !defined(CDP_AVP_DECLARATION) && !defined(CDP_AVP_EXPORT) && !defined(CDP_AVP_INIT) && !defined(CDP_AVP_REFERENCE) - #ifndef _CDP_AVP_NASAPP_H_1 - #define _CDP_AVP_NASAPP_H_1 +#if !defined(CDP_AVP_DECLARATION) && !defined(CDP_AVP_EXPORT) \ + && !defined(CDP_AVP_INIT) && !defined(CDP_AVP_REFERENCE) +#ifndef _CDP_AVP_NASAPP_H_1 +#define _CDP_AVP_NASAPP_H_1 - #include "../cdp/cdp_load.h" +#include "../cdp/cdp_load.h" - #else +#else - /* undo the macros definition if this was re-included */ - #define CDP_AVP_EMPTY_MACROS - #include "macros.h" - #undef CDP_AVP_EMPTY_MACROS +/* undo the macros definition if this was re-included */ +#define CDP_AVP_EMPTY_MACROS +#include "macros.h" +#undef CDP_AVP_EMPTY_MACROS - #endif -#endif //_CDP_AVP_NASAPP_H_1 +#endif +#endif //_CDP_AVP_NASAPP_H_1 /* * The list of AVPs must be declared in the following format: @@ -154,22 +155,25 @@ */ -cdp_avp (Accounting_Input_Octets, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp (Accounting_Input_Packets, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp (Accounting_Output_Octets, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp (Accounting_Output_Packets, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) - -cdp_avp_ptr (Filter_Id, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) +cdp_avp(Accounting_Input_Octets, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, + uint64_t) + cdp_avp(Accounting_Input_Packets, 0, AAA_AVP_FLAG_MANDATORY, Unsigned64, + uint64_t) + cdp_avp(Accounting_Output_Octets, 0, AAA_AVP_FLAG_MANDATORY, + Unsigned64, uint64_t) -cdp_avp_ptr (Called_Station_Id, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str) + cdp_avp(Accounting_Output_Packets, 0, + AAA_AVP_FLAG_MANDATORY, Unsigned64, uint64_t) + cdp_avp_ptr(Filter_Id, 0, + AAA_AVP_FLAG_MANDATORY, UTF8String, str) + cdp_avp_ptr(Called_Station_Id, 0, + AAA_AVP_FLAG_MANDATORY, + UTF8String, str) /* @@ -178,7 +182,7 @@ cdp_avp_ptr (Called_Station_Id, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str #if defined(CDP_AVP_DEFINITION) - /* + /* * Put here your supplimentary definitions. Typically: * * int (param1) @@ -188,117 +192,115 @@ cdp_avp_ptr (Called_Station_Id, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str * * */ - int cdp_avp_add_Framed_IP_Address(AAA_AVP_LIST *list,ip_address ip) - { - if (ip.ai_family!=AF_INET) { - LOG(L_ERR,"Trying to build from non IPv4 address!\n"); - return 0; - } - char x[4]; - str s={x,4}; - //*((uint32_t*)x) = htonl(ip.ip.v4.s_addr); - memcpy(x,&(ip.ip.v4.s_addr),sizeof(uint32_t)); - return cdp_avp_add_to_list(list, - cdp_avp_new( - AVP_Framed_IP_Address, - AAA_AVP_FLAG_MANDATORY, - 0, - s, - AVP_DUPLICATE_DATA)); + int cdp_avp_add_Framed_IP_Address(AAA_AVP_LIST *list, ip_address ip) +{ + if(ip.ai_family != AF_INET) { + LOG(L_ERR, "Trying to build from non IPv4 address!\n"); + return 0; } - - int cdp_avp_get_Framed_IP_Address(AAA_AVP_LIST list,ip_address *ip,AAA_AVP **avp_ptr) - { - if (!ip) return 0; - AAA_AVP *avp = cdp_avp_get_next_from_list(list, - AVP_Framed_IP_Address, - 0, - avp_ptr?*avp_ptr:0); - if (avp_ptr) *avp_ptr = avp; - if (!avp) { - bzero(ip,sizeof(ip_address)); - return 0; - } - if (avp->data.len<4){ - LOG(L_ERR,"Error decoding Framed IP Address from AVP data of length %d < 4",avp->data.len); - bzero(ip,sizeof(ip_address)); - return 0; - } - ip->ai_family = AF_INET; - //ip->ip.v4.s_addr = ntohl(*((uint32_t*)avp->data.s)); - ip->ip.v4.s_addr = (*((uint32_t*)avp->data.s)); - return 1; + char x[4]; + str s = {x, 4}; + //*((uint32_t*)x) = htonl(ip.ip.v4.s_addr); + memcpy(x, &(ip.ip.v4.s_addr), sizeof(uint32_t)); + return cdp_avp_add_to_list( + list, cdp_avp_new(AVP_Framed_IP_Address, AAA_AVP_FLAG_MANDATORY, 0, + s, AVP_DUPLICATE_DATA)); +} + +int cdp_avp_get_Framed_IP_Address( + AAA_AVP_LIST list, ip_address *ip, AAA_AVP **avp_ptr) +{ + if(!ip) + return 0; + AAA_AVP *avp = cdp_avp_get_next_from_list( + list, AVP_Framed_IP_Address, 0, avp_ptr ? *avp_ptr : 0); + if(avp_ptr) + *avp_ptr = avp; + if(!avp) { + bzero(ip, sizeof(ip_address)); + return 0; } - - /** + if(avp->data.len < 4) { + LOG(L_ERR, + "Error decoding Framed IP Address from AVP data of length %d < " + "4", + avp->data.len); + bzero(ip, sizeof(ip_address)); + return 0; + } + ip->ai_family = AF_INET; + //ip->ip.v4.s_addr = ntohl(*((uint32_t*)avp->data.s)); + ip->ip.v4.s_addr = (*((uint32_t *)avp->data.s)); + return 1; +} + +/** * http://tools.ietf.org/html/rfc4005#section-6.11.6 * http://tools.ietf.org/html/rfc3162#section-2.3 * @param list * @param data * @return */ - int cdp_avp_add_Framed_IPv6_Prefix(AAA_AVP_LIST *list,ip_address_prefix ip) - { - uint8_t buffer[18]; - str data={(char*)buffer,18}; - if (ip.addr.ai_family!=AF_INET6) { - LOG(L_ERR,"Trying to build from non IPv6 address!\n"); - return 0; - } - buffer[0]=0; - buffer[1]=ip.prefix; - memcpy(buffer+2,ip.addr.ip.v6.s6_addr,16); - return cdp_avp_add_to_list(list, - cdp_avp_new_OctetString( - AVP_Framed_IPv6_Prefix, - AAA_AVP_FLAG_MANDATORY, - 0, - data, - AVP_DUPLICATE_DATA)); +int cdp_avp_add_Framed_IPv6_Prefix(AAA_AVP_LIST *list, ip_address_prefix ip) +{ + uint8_t buffer[18]; + str data = {(char *)buffer, 18}; + if(ip.addr.ai_family != AF_INET6) { + LOG(L_ERR, "Trying to build from non IPv6 address!\n"); + return 0; } - - int cdp_avp_get_Framed_IPv6_Prefix(AAA_AVP_LIST list,ip_address_prefix *ip,AAA_AVP **avp_ptr) - { - if (!ip) return 0; - AAA_AVP *avp = cdp_avp_get_next_from_list(list, - AVP_Framed_IPv6_Prefix, - 0, - avp_ptr?*avp_ptr:0); - if (avp_ptr) *avp_ptr = avp; - if (!avp) { - bzero(ip,sizeof(ip_address_prefix)); - return 0; - } - if (avp->data.len<18) { - LOG(L_ERR,"Error decoding Framed-IPv6-Prefix from data len < 18 bytes!\n"); - bzero(ip,sizeof(ip_address_prefix)); - return 0; - } - ip->addr.ai_family = AF_INET6; - ip->prefix = avp->data.s[1]; - memcpy(ip->addr.ip.v6.s6_addr,avp->data.s+2,16); - return 1; - } + buffer[0] = 0; + buffer[1] = ip.prefix; + memcpy(buffer + 2, ip.addr.ip.v6.s6_addr, 16); + return cdp_avp_add_to_list( + list, cdp_avp_new_OctetString(AVP_Framed_IPv6_Prefix, + AAA_AVP_FLAG_MANDATORY, 0, data, AVP_DUPLICATE_DATA)); +} + +int cdp_avp_get_Framed_IPv6_Prefix( + AAA_AVP_LIST list, ip_address_prefix *ip, AAA_AVP **avp_ptr) +{ + if(!ip) + return 0; + AAA_AVP *avp = cdp_avp_get_next_from_list( + list, AVP_Framed_IPv6_Prefix, 0, avp_ptr ? *avp_ptr : 0); + if(avp_ptr) + *avp_ptr = avp; + if(!avp) { + bzero(ip, sizeof(ip_address_prefix)); + return 0; + } + if(avp->data.len < 18) { + LOG(L_ERR, "Error decoding Framed-IPv6-Prefix from data len < 18 " + "bytes!\n"); + bzero(ip, sizeof(ip_address_prefix)); + return 0; + } + ip->addr.ai_family = AF_INET6; + ip->prefix = avp->data.s[1]; + memcpy(ip->addr.ip.v6.s6_addr, avp->data.s + 2, 16); + return 1; +} #elif defined(CDP_AVP_EXPORT) - /* + /* * Put here your supplimentary exports in the format: * ; * ; * ... * */ - cdp_avp_add_Framed_IP_Address_f add_Framed_IP_Address; - cdp_avp_get_Framed_IP_Address_f get_Framed_IP_Address; - - cdp_avp_add_Framed_IPv6_Prefix_f add_Framed_IPv6_Prefix; - cdp_avp_get_Framed_IPv6_Prefix_f get_Framed_IPv6_Prefix; - + cdp_avp_add_Framed_IP_Address_f add_Framed_IP_Address; +cdp_avp_get_Framed_IP_Address_f get_Framed_IP_Address; + +cdp_avp_add_Framed_IPv6_Prefix_f add_Framed_IPv6_Prefix; +cdp_avp_get_Framed_IPv6_Prefix_f get_Framed_IPv6_Prefix; + #elif defined(CDP_AVP_INIT) - /* + /* * Put here your supplimentary inits in the format: * , * , @@ -307,33 +309,36 @@ cdp_avp_ptr (Called_Station_Id, 0, AAA_AVP_FLAG_MANDATORY, UTF8String, str * Make sure you keep the same order as in export! * */ - cdp_avp_add_Framed_IP_Address, - cdp_avp_get_Framed_IP_Address, + cdp_avp_add_Framed_IP_Address, + cdp_avp_get_Framed_IP_Address, - cdp_avp_add_Framed_IPv6_Prefix, - cdp_avp_get_Framed_IPv6_Prefix, + cdp_avp_add_Framed_IPv6_Prefix, cdp_avp_get_Framed_IPv6_Prefix, #elif defined(CDP_AVP_REFERENCE) - /* + /* * Put here what you want to get in the reference. Typically: * * * ... * */ -int CDP_AVP_MODULE.add_Framed_IP_Address(AAA_AVP_LIST *list,ip_address ip); -int CDP_AVP_MODULE.get_Framed_IP_Address(AAA_AVP_LIST list,ip_address *ip,AAA_AVP **avp_ptr); - -int CDP_AVP_MODULE.add_Framed_IPv6_Prefix(AAA_AVP_LIST *list,ip_address_prefix ip); -int CDP_AVP_MODULE.get_Framed_IPv6_Prefix(AAA_AVP_LIST list,ip_address_prefix *ip,AAA_AVP **avp_ptr); - + int CDP_AVP_MODULE.add_Framed_IP_Address( + AAA_AVP_LIST *list, ip_address ip); +int CDP_AVP_MODULE.get_Framed_IP_Address( + AAA_AVP_LIST list, ip_address *ip, AAA_AVP **avp_ptr); + +int CDP_AVP_MODULE.add_Framed_IPv6_Prefix( + AAA_AVP_LIST *list, ip_address_prefix ip); +int CDP_AVP_MODULE.get_Framed_IPv6_Prefix( + AAA_AVP_LIST list, ip_address_prefix *ip, AAA_AVP **avp_ptr); + #elif defined(CDP_AVP_EMPTY_MACROS) - - /* this should be left blank */ - + +/* this should be left blank */ + #else - /* +/* * Put here your definitions according to the declarations, exports, init, etc above. Typically: * * int @@ -346,33 +351,36 @@ int CDP_AVP_MODULE.get_Framed_IPv6_Prefix(AAA_AVP_LIST list,ip_address_prefix *i * */ - - #ifndef _CDP_AVP_NASAPP_H_2 - #define _CDP_AVP_NASAPP_H_2 - int cdp_avp_add_Framed_IP_Address(AAA_AVP_LIST *list,ip_address ip); - typedef int (*cdp_avp_add_Framed_IP_Address_f)(AAA_AVP_LIST *list,ip_address ip); +#ifndef _CDP_AVP_NASAPP_H_2 +#define _CDP_AVP_NASAPP_H_2 - int cdp_avp_get_Framed_IP_Address(AAA_AVP_LIST list,ip_address *ip,AAA_AVP **avp_ptr); - typedef int (*cdp_avp_get_Framed_IP_Address_f)(AAA_AVP_LIST list,ip_address *ip,AAA_AVP **avp_ptr); - - int cdp_avp_add_Framed_IPv6_Prefix(AAA_AVP_LIST *list,ip_address_prefix ip); - typedef int (*cdp_avp_add_Framed_IPv6_Prefix_f)(AAA_AVP_LIST *list,ip_address_prefix ip); + int cdp_avp_add_Framed_IP_Address( + AAA_AVP_LIST *list, + ip_address ip); +typedef int (*cdp_avp_add_Framed_IP_Address_f)( + AAA_AVP_LIST *list, ip_address ip); - int cdp_avp_get_Framed_IPv6_Prefix(AAA_AVP_LIST list,ip_address_prefix *ip,AAA_AVP **avp_ptr); - typedef int (*cdp_avp_get_Framed_IPv6_Prefix_f)(AAA_AVP_LIST list,ip_address_prefix *ip,AAA_AVP **avp_ptr); +int cdp_avp_get_Framed_IP_Address( + AAA_AVP_LIST list, ip_address *ip, AAA_AVP **avp_ptr); +typedef int (*cdp_avp_get_Framed_IP_Address_f)( + AAA_AVP_LIST list, ip_address *ip, AAA_AVP **avp_ptr); +int cdp_avp_add_Framed_IPv6_Prefix(AAA_AVP_LIST *list, ip_address_prefix ip); +typedef int (*cdp_avp_add_Framed_IPv6_Prefix_f)( + AAA_AVP_LIST *list, ip_address_prefix ip); - #endif //_CDP_AVP_BASE_H_2 - -#endif +int cdp_avp_get_Framed_IPv6_Prefix( + AAA_AVP_LIST list, ip_address_prefix *ip, AAA_AVP **avp_ptr); +typedef int (*cdp_avp_get_Framed_IPv6_Prefix_f)( + AAA_AVP_LIST list, ip_address_prefix *ip, AAA_AVP **avp_ptr); +#endif //_CDP_AVP_BASE_H_2 -#define CDP_AVP_UNDEF_MACROS - #include "macros.h" -#undef CDP_AVP_UNDEF_MACROS - - +#endif +#define CDP_AVP_UNDEF_MACROS +#include "macros.h" +#undef CDP_AVP_UNDEF_MACROS