Commit cd1ad821 authored by YannGarcia's avatar YannGarcia
Browse files

Add support of getting time UTC, Start enhancement of RNIS

parent 65f0d13f
#include "LibMec_Functions.hh"
#include <math.h>
#include "base_time.hh"
#include "loggers.hh"
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#define earthRadius 6378137.0L
#define rbis = ((double)(earthRadius * M_PI / 180))
namespace LibMec__Functions {
/**
* @desc This external function gets the current time
* @return Timestamp - current time since 01/01/2004 in milliseconds
* @see fx_getCurrentTime() return TimestampIts
*/
INTEGER fx__getCurrentTime(
) {
INTEGER i;
i.set_long_long_val(base_time::get_instance().get_its_current_time_ms());
loggers::get_instance().log_msg("<<< fx__getCurrentTime: ", i);
return i;
}
/**
* @desc This external function gets the current time since 01/01/1970 in UTC format
* @return The current time since 01/01/1970 in UTC format
* @see fx_getCurrentTimeUtc() return UInt64
*/
INTEGER fx__get__current__time__utc() {
INTEGER i;
i.set_long_long_val(base_time::get_instance().get_current_time_ms());
return i;
}
} // end of Namespace
...@@ -13,6 +13,8 @@ LibCommon_Sync.PX_TSHUT_DOWN_TIME_LIMIT := 30.0; ...@@ -13,6 +13,8 @@ LibCommon_Sync.PX_TSHUT_DOWN_TIME_LIMIT := 30.0;
LibItsHttp_Pics.PICS_HEADER_HOST := "192.168.1.34" LibItsHttp_Pics.PICS_HEADER_HOST := "192.168.1.34"
LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/json" LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/json"
LibItsHttp_Pics.PICS_USE_TOKEN_HEADER := true
#LibItsHttp_Pics.PICS_TOKEN_HEADER := "Basic WrongToken"
LibMec_Pics.PICS_MEC_PLAT := true LibMec_Pics.PICS_MEC_PLAT := true
LibMec_Pics.PICS_SERVICES := true LibMec_Pics.PICS_SERVICES := true
......
This diff is collapsed.
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* No part may be reproduced except as authorized by written permission. * No part may be reproduced except as authorized by written permission.
* The copyright and the foregoing restriction extend to reproduction in all media. * The copyright and the foregoing restriction extend to reproduction in all media.
* All rights reserved. * All rights reserved.
* @see ETSI GS MEC 003, Draft ETSI GS MEC 013 V2.0.3 (2018-10) * @see ETSI GS MEC 003, Draft ETSI GS MEC 016 V2.0.3 (2018-10)
*/ */
module AtsMec_BwManagementAPI_TestCases { module AtsMec_BwManagementAPI_TestCases {
......
...@@ -84,7 +84,7 @@ module AtsMec_PkgMgmt_mm1_TestCases { ...@@ -84,7 +84,7 @@ module AtsMec_PkgMgmt_mm1_TestCases {
mw_http_response_ok( mw_http_response_ok(
mw_http_message_body_json( mw_http_message_body_json(
mw_body_json_pkg_mgmt_response( mw_body_json_pkg_mgmt_response(
mw_package_management_list( mw_package_management_list(
-, -,
PX_APP_PKG_NAME, PX_APP_PKG_NAME,
PX_APP_PKG_VERSION, PX_APP_PKG_VERSION,
......
...@@ -1543,6 +1543,64 @@ module AtsMec_RnisAPI_TestCases { ...@@ -1543,6 +1543,64 @@ module AtsMec_RnisAPI_TestCases {
f_cf_01_http_notif_down(); f_cf_01_http_notif_down();
} // End of testcase TC_MEC_SRV_RNIS_008_OK } // End of testcase TC_MEC_SRV_RNIS_008_OK
/**
* @desc Check that the RNIS service sends an RNIS notification about 5G NR UE measurement report if the RNIS service has an associated subscription and the event is generated.
* @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2
*/
testcase TC_MEC_SRV_RNIS_009_OK() runs on HttpComponent system HttpTestAdapter {
// Local variables
var HeaderLines v_headers;
// Test control
if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) {
log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***");
setverdict(inconc);
stop;
}
// Test component configuration
f_cf_01_http_notif_up();
// Test adapter configuration
// Preamble
f_init_default_headers_list(-, -, v_headers);
action("Trigger a MeasRepUeNotification event");
f_selfOrClientSyncAndVerdict(c_prDone, e_success);
// Test Body
tc_wait.start;
alt {
[] httpPort_notif.receive(
mw_http_request(
mw_http_request_post(
PX_CALLBACK_URI,
-,
mw_http_message_body_json(
mw_body_json_s1_bearer_subscription(
mw_s1_bearer_subscription(
PX_CALLBACK_REFERENCE,
PX_LINKS_SELF,
-//mw_filter_criteria
)))))) {
tc_wait.stop;
// Send 204 No Content
httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers)));
log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
[] tc_wait.timeout {
log("*** " & testcasename() & ": INCONC: Expected message not received ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
}
} // End of 'alt' statement
// Postamble
f_cf_01_http_notif_down();
} // End of testcase TC_MEC_SRV_RNIS_009_OK
} // End of group rnis_notifications } // End of group rnis_notifications
} // End of module AtsMec_RnisAPI_TestCases } // End of module AtsMec_RnisAPI_TestCases
......
LibIts @ 25c8a9e7
Subproject commit 8b156c8b0781f511dc4444742ee2eed9818aa865 Subproject commit 25c8a9e788ccd0fb17ef38dbf12b1a7e9a6c0085
...@@ -13,7 +13,7 @@ module AppLCM_Templates { ...@@ -13,7 +13,7 @@ module AppLCM_Templates {
template (present) CreateAppInstanceRequest m_lifecycle_management_create ( template (present) CreateAppInstanceRequest m_lifecycle_management_create (
in template (present) String p_appDId := ? in template (present) String p_appDId := ?
) := { ) := {
appDId := p_appDId appDId := p_appDId
} }
template (present) CreateAppInstanceRequestWithError m_lifecycle_management_create_with_error ( template (present) CreateAppInstanceRequestWithError m_lifecycle_management_create_with_error (
......
...@@ -100,13 +100,13 @@ type record AppInstanceLcmOpOcc { ...@@ -100,13 +100,13 @@ type record AppInstanceLcmOpOcc {
type record SubscriptionRequest { type record SubscriptionRequest {
AnyURI callbackUri, SubscriptionType subscriptionType,
SubscriptionType subscriptionType AnyURI callbackUri
} }
type record SubscriptionRequestWithError { type record SubscriptionRequestWithError {
AnyURI callbackUriWithError, SubscriptionType subscriptionType,
SubscriptionType subscriptionType AnyURI callbackUriWithError
} }
type record of SubscriptionInfo SubscriptionInfoList; type record of SubscriptionInfo SubscriptionInfoList;
......
...@@ -66,7 +66,7 @@ module MeoPkgm_Templates { ...@@ -66,7 +66,7 @@ module MeoPkgm_Templates {
in template (present) SubscriptionType p_subscription_type := ?, in template (present) SubscriptionType p_subscription_type := ?,
in template (present) AnyURI p_callbackUri := ? in template (present) AnyURI p_callbackUri := ?
) := { ) := {
subscriptionId := p_subscriptionId ifpresent, subscriptionId := p_subscriptionId /* FIXME Error??? ifpresent*/,
subscriptionType := p_subscription_type, subscriptionType := p_subscription_type,
callbackUri := p_callbackUri callbackUri := p_callbackUri
} }
......
...@@ -42,13 +42,12 @@ module MepmPkgm_Templates { ...@@ -42,13 +42,12 @@ module MepmPkgm_Templates {
in template (present) UsageState p_usageState := ? in template (present) UsageState p_usageState := ?
) := { ) := {
appPkgId := p_appPkgId , appPkgId := p_appPkgId ,
appName := p_appName,
appDId := p_appDId , appDId := p_appDId ,
appName := p_appName,
appDVersion := p_appDVersion, appDVersion := p_appDVersion,
checksum := p_checksum , checksum := p_checksum ,
operationalState := p_operationalState, operationalState := p_operationalState,
usageState := p_usageState usageState := p_usageState
} }
...@@ -74,7 +73,7 @@ module MepmPkgm_Templates { ...@@ -74,7 +73,7 @@ module MepmPkgm_Templates {
in template (present) SubscriptionType p_subscription_type := ?, in template (present) SubscriptionType p_subscription_type := ?,
in template (present) AnyURI p_callbackUri := ? in template (present) AnyURI p_callbackUri := ?
) := { ) := {
subscriptionId := p_subscriptionId ifpresent, subscriptionId := p_subscriptionId /*FIXME Error???ifpresent*/,
subscriptionType := p_subscription_type, subscriptionType := p_subscription_type,
callbackUri := p_callbackUri callbackUri := p_callbackUri
} }
......
...@@ -305,6 +305,26 @@ module RnisAPI_Templates { ...@@ -305,6 +305,26 @@ module RnisAPI_Templates {
s1UeInfo := p_s1UeInfo s1UeInfo := p_s1UeInfo
} // End of temlate mw_s1_bearer_info } // End of temlate mw_s1_bearer_info
template (omit) L2Meas m_l2_measa(
in template (omit )TimeStamp p_timestamp := omit,
in template (value) CellInfo p_cellInfo,
in template (value) CellUEInfo p_cellUEInfo
) := {
timestamp := p_timestamp,
cellInfo := p_cellInfo,
cellUEInfo := p_cellUEInfo
} // End of template m_l2_measa
template L2Meas mw_l2_measa(
template TimeStamp p_timestamp := *,
template CellInfo p_cellInfo := *,
template CellUEInfo p_cellUEInfo := *
) := {
timestamp := p_timestamp,
cellInfo := p_cellInfo,
cellUEInfo := p_cellUEInfo
} // End of template mw_l2_measa
} // End of group info_request } // End of group info_request
group sub_types { group sub_types {
......
...@@ -30,7 +30,7 @@ module RnisAPI_TypesAndValues { ...@@ -30,7 +30,7 @@ module RnisAPI_TypesAndValues {
} }
/** /**
* @desc * @desc This type represents the information on Mobile Network(s), which a MEC application instance is associated to.
* @member timeStamp * @member timeStamp
* @member appInsId * @member appInsId
* @member ecgi * @member ecgi
...@@ -42,7 +42,7 @@ module RnisAPI_TypesAndValues { ...@@ -42,7 +42,7 @@ module RnisAPI_TypesAndValues {
} }
/** /**
* @desc * @desc This type represents the information on existing E-RABs that are associated with a specific MEC application instance.
* @member timeStamp * @member timeStamp
* @member appInsId * @member appInsId
* @member requestId * @member requestId
...@@ -56,7 +56,7 @@ module RnisAPI_TypesAndValues { ...@@ -56,7 +56,7 @@ module RnisAPI_TypesAndValues {
} }
/** /**
* @desc * @desc This type represents the information on S1-U bearer.
* @member timeStamp * @member timeStamp
* @member appInsId * @member appInsId
* @member ecgi * @member ecgi
...@@ -65,7 +65,19 @@ module RnisAPI_TypesAndValues { ...@@ -65,7 +65,19 @@ module RnisAPI_TypesAndValues {
TimeStamp timeStamp optional, TimeStamp timeStamp optional,
S1UeInfo s1UeInfo S1UeInfo s1UeInfo
} }
/**
* @desc This type represents the information on the Layer 2 measurements information from one or more eNBs that are associated with the requested MEC application instance.
* @member timestamp Time stamp
* @member cellInfo The per cell measurement information
* @member cellUEInfo The per cell per UE layer 2 measurements information
*/
type record L2Meas {
TimeStamp timestamp optional,
CellInfo cellInfo optional,
CellUEInfo cellUEInfo optional
}
/** /**
* @desc The information on users per cell * @desc The information on users per cell
* @member tempUeId * @member tempUeId
...@@ -261,7 +273,95 @@ module RnisAPI_TypesAndValues { ...@@ -261,7 +273,95 @@ module RnisAPI_TypesAndValues {
UInt32 erabGbrUl UInt32 erabGbrUl
} }
type record of QosInformation_ QosInformation; type record of QosInformation_ QosInformation;
type integer UInt100 (0 .. 100) with {variant "unsigned 100 bit"};
/**
* @desc The per cell measurement information
* @member ecgi E-UTRAN CelI Global Identifier
* @member dl_gbr_prb_usage_cell indicates the PRB usage for downlink GBR traffic, as defined in ETSI TS 136 314 [i.11] and ETSI TS 136 423 [i.12].
* @member ul_gbr_prb_usage_cell indicates (in percentage) the PRB usage for uplink GBR traffic, as defined in ETSI TS 136 314 [i.11] and ETSI TS 136 423 [i.12].
* @member dl_nongbr_prb_usage_cell indicates (in percentage) the PRB usage for downlink non-GBR traffic, as defined in ETSI TS 136 314 [i.11] and ETSI TS 136 423 [i.12].
* @member ul_nongbr_prb_usage_cell indicates (in percentage) the PRB usage for uplink non-GBR traffic, as defined in ETSI TS 136 314 [i.11] and ETSI TS 136 423 [i.12].
* @member dl_total_prb_usage_cell indicates (in percentage) the PRB usage for total downlink traffic, as defined in ETSI TS 136 314 [i.11] and ETSI TS 136 423 [i.12].
* @member ul_total_prb_usage_cell indicates (in percentage) the PRB usage for total uplink traffic, as defined in ETSI TS 136 314 [i.11] and ETSI TS 136 423 [i.12].
* @member received_dedicated_preambles_cell indicates (in percentage) the received dedicated preamples, as defined in ETSI TS 136 314 [i.11].
* @member received_randomly_selected_preambles_low_range_cellIt indicates (in percentage) the received randomly selected preambles in the low range, as defined in ETSI TS 136 314 [i.11].
* @member received_randomly_selected_preambles_high_range_cell It indicates (in percentage) the received randomly selected preambles in the high range, as defined in ETSI TS 136 314 [i.11].
* @member number_of_active_ue_dl_gbr_cell It indicates the number of active UEs with downlink GBR traffic, as defined in ETSI TS 136 314 [i.11].
* @member number_of_active_ue_ul_gbr_cell It indicates the number of active UEs with uplink GBR traffic, as defined in ETSI TS 136 314 [i.x].
* @member number_of_active_ue_dl_nongbr_cell It indicates the number of active UEs with downlink non-GBR traffic, as defined in ETSI TS 136 314 [i.11].
* @member number_of_active_ue_ul_nongbr_cell It indicates the number of active UEs with uplink non-GBR traffic, as defined in ETSI TS 136 314 [i.11].
* @member dl_gbr_pdr_cell It indicates the packet discard rate in percentage of the downlink GBR traffic in a cell, as defined in ETSI TS 136 314 [i.x].
* @member ul_gbr_pdr_cell It indicates the packet discard rate in percentage of the uplink GBR traffic in a cell, as defined in ETSI TS 136 314 [i.11].
* @member dl_nongbr_pdr_cell It indicates the packet discard rate in percentage of the downlink non-GBR traffic in a cell, as defined in ETSI TS 136 314 [i.x].
* @member ul_nongbr_pdr_cell It indicates the packet discard rate in percentage of the uplink non-GBR traffic in a cell, as defined in ETSI TS 136 314 [i.11].
*/
type record CellInfo_ {
Ecgi ecgi optional,
UInt100 dl_gbr_prb_usage_cell optional,
UInt100 ul_gbr_prb_usage_cell optional,
UInt100 dl_nongbr_prb_usage_cell optional,
UInt100 ul_nongbr_prb_usage_cell optional,
UInt100 dl_total_prb_usage_cell optional,
UInt100 ul_total_prb_usage_cell optional,
UInt100 received_dedicated_preambles_cell optional,
UInt100 received_randomly_selected_preambles_low_range_cell optional,
UInt100 received_randomly_selected_preambles_high_range_cell optional,
integer number_of_active_ue_dl_gbr_cell optional,
integer number_of_active_ue_ul_gbr_cell optional,
integer number_of_active_ue_dl_nongbr_cell optional,
integer number_of_active_ue_ul_nongbr_cell optional,
UInt100 dl_gbr_pdr_cell optional,
UInt100 ul_gbr_pdr_cell optional,
UInt100 dl_nongbr_pdr_cell optional,
UInt100 ul_nongbr_pdr_cell optional
}
type record of CellInfo_ CellInfo;
/**
* @desc The per cell measurement information
* @member ecgi E-UTRAN CelI Global Identifier
* @member associateId Identifier to associate the information for a specific UE or flow.
* @member dl_gbr_delay_ue It indicates the packet delay of the downlink GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member ul_gbr_delay_ue It indicates the packet delay of the uplink GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member dl_nongbr_delay_ue It indicates the packet delay of the downlink non-GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member ul_nongbr_delay_ue It indicates the packet delay of the uplink non-GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member dl_gbr_pdr_ue It indicates the packet discard rate in percentage of the downlink GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member ul_gbr_pdr_ue It indicates the packet discard rate in percentage of the uplink GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member dl_nongbr_pdr_ue It indicates the packet discard rate in percentage of the downlink non-GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member ul_nongbr_pdr_ue It indicates the packet discard rate in percentage of the uplink non-GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member dl_gbr_throughput_ue It indicates the scheduled throughput of the downlink GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member ul_gbr_throughput_ue It indicates the scheduled throughput of the uplink GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member dl_nongbr_throughput_ue It indicates the scheduled throughput of the downlink non-GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member ul_nongbr_throughput_ue It indicates the scheduled throughput of the uplink non-GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member dl_gbr_data_volume_ue It indicates the data volume of the downlink GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member ul_gbr_data_volume_ue It indicates the data volume of the uplink GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member dl_nongbr_data_volume_ue It indicates the data volume of the downlink non-GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
* @member ul_nongbr_data_volume_ue It indicates the data volume of the uplink non-GBR traffic of a UE, as defined in ETSI TS 136 314 [i.11].
*/
type record CellUEInfo_ {
Ecgi ecgi optional,
AssociateId associateId,
integer dl_gbr_delay_ue optional,
integer ul_gbr_delay_ue optional,
integer dl_nongbr_delay_ue optional,
integer ul_nongbr_delay_ue optional,
UInt100 dl_gbr_pdr_ue optional,
UInt100 ul_gbr_pdr_ue optional,
UInt100 dl_nongbr_pdr_ue optional,
UInt100 ul_nongbr_pdr_ue optional,
integer dl_gbr_throughput_ue optional,
integer ul_gbr_throughput_ue optional,
integer dl_nongbr_throughput_ue optional,
integer ul_nongbr_throughput_ue optional,
integer dl_gbr_data_volume_ue optional,
integer ul_gbr_data_volume_ue optional,
integer dl_nongbr_data_volume_ue optional,
integer ul_nongbr_data_volume_ue optional
}
type record of CellUEInfo_ CellUEInfo;
/** /**
* @desc * @desc
* @member links * @member links
...@@ -274,18 +374,6 @@ module RnisAPI_TypesAndValues { ...@@ -274,18 +374,6 @@ module RnisAPI_TypesAndValues {
variant (links) "name as '_links'"; variant (links) "name as '_links'";
} }
/**
* @desc
* @member callbackReference
* @member filterCriteria
* @member expiryDeadline
*/
type record MeasRepUeSubscriptionPost {
CallbackReference callbackReference,
FilterCriteriaAssocTri filterCriteria,
TimeStamp expiryDeadline optional
}
/** /**
* @desc * @desc
* @member callbackReference * @member callbackReference
...@@ -303,20 +391,6 @@ module RnisAPI_TypesAndValues { ...@@ -303,20 +391,6 @@ module RnisAPI_TypesAndValues {
variant (links) "name as '_links'"; variant (links) "name as '_links'";
} }
/**
* @desc
* @member callbackReference
* @member eventType
* @member s1BearerSubscriptionCriteria
* @member expiryDeadline
*/
type record S1BearerSubscriptionPost {
CallbackReference callbackReference,
EventType eventType,
S1BearerSubscriptionCriteria s1BearerSubscriptionCriteria,
TimeStamp expiryDeadline optional
}
/** /**
* @desc * @desc
* @member callbackReference * @member callbackReference
...@@ -350,22 +424,6 @@ module RnisAPI_TypesAndValues { ...@@ -350,22 +424,6 @@ module RnisAPI_TypesAndValues {
variant (links) "name as '_links'"; variant (links) "name as '_links'";
} }
/**
* @desc
* @member callbackReference
* @member links
* @member filterCriteria
* @member expiryDeadline
*/
type record RabEstSubscriptionPost {
CallbackReference callbackReference,
Link links,
FilterCriteriaAssocQci filterCriteria,
TimeStamp expiryDeadline optional
} with {
variant (links) "name as '_links'";
}
/** /**
* @desc * @desc
* @member callbackReference * @member callbackReference
...@@ -383,18 +441,6 @@ module RnisAPI_TypesAndValues { ...@@ -383,18 +441,6 @@ module RnisAPI_TypesAndValues {
variant (links) "name as '_links'"; variant (links) "name as '_links'";
} }
/**
* @desc
* @member callbackReference
* @member filterCriteria
* @member expiryDeadline
*/
type record RabModSubscriptionPost {
CallbackReference callbackReference,
FilterCriteriaAssocQci filterCriteria,
TimeStamp expiryDeadline optional
}
/** /**
* @desc * @desc
* @member callbackReference * @member callbackReference
...@@ -412,18 +458,6 @@ module RnisAPI_TypesAndValues { ...@@ -412,18 +458,6 @@ module RnisAPI_TypesAndValues {
variant (links) "name as '_links'"; variant (links) "name as '_links'";
} }
/**
* @desc
* @member callbackReference
* @member filterCriteria
* @member expiryDeadline
*/
type record RabRelSubscriptionPost {
CallbackReference callbackReference,
FilterCriteriaAssocQci filterCriteria,
TimeStamp expiryDeadline optional
}
/** /**
* @desc * @desc
* @member callbackReference * @member callbackReference
...@@ -441,30 +475,6 @@ module RnisAPI_TypesAndValues { ...@@ -441,30 +475,6 @@ module RnisAPI_TypesAndValues {
variant (links) "name as '_links'"; variant (links) "name as '_links'";
} }
/**
* @desc
* @member callbackReference
* @member filterCriteria
* @member expiryDeadline
*/
type record CaReConfSubscriptionPost {
CallbackReference callbackReference,
FilterCriteriaAssoc filterCriteria,
TimeStamp expiryDeadline optional
}
/**
* @desc
* @member callbackReference
* @member filterCriteria
* @member expiryDeadline
*/
type record CellChangeSubscriptionPost {
CallbackReference callbackReference,
FilterCriteriaAssocHo filterCriteria,
TimeStamp expiryDeadline optional
}
/** /**
* @desc * @desc
* @member callbackReference * @member callbackReference
...@@ -482,19 +492,6 @@ module RnisAPI_TypesAndValues {