summaryrefslogtreecommitdiffstats
path: root/veslibrary/ves_javalibrary/evel_javalib2/src/evel_javalibrary/att/com/EvelMobileFlow.java
diff options
context:
space:
mode:
Diffstat (limited to 'veslibrary/ves_javalibrary/evel_javalib2/src/evel_javalibrary/att/com/EvelMobileFlow.java')
-rw-r--r--veslibrary/ves_javalibrary/evel_javalib2/src/evel_javalibrary/att/com/EvelMobileFlow.java2064
1 files changed, 0 insertions, 2064 deletions
diff --git a/veslibrary/ves_javalibrary/evel_javalib2/src/evel_javalibrary/att/com/EvelMobileFlow.java b/veslibrary/ves_javalibrary/evel_javalib2/src/evel_javalibrary/att/com/EvelMobileFlow.java
deleted file mode 100644
index 339cb90..0000000
--- a/veslibrary/ves_javalibrary/evel_javalib2/src/evel_javalibrary/att/com/EvelMobileFlow.java
+++ /dev/null
@@ -1,2064 +0,0 @@
-package evel_javalibrary.att.com;
-/**************************************************************************//**
- * @file
- * Evel Mobile Flow class
- *
- * This file implements the Evel Mobile Flow Event class which is intended to provide a
- * simple wrapper around the complexity of AT&T's Vendor Event Listener API so
- * that VNFs can use it to send Mobile flow events.
- *
- * License
- * -------
- * Unless otherwise specified, all software contained herein is
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *****************************************************************************/
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-
-import javax.json.Json;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-
-import org.apache.log4j.Logger;
-
-
-
-public class EvelMobileFlow extends EvelHeader {
-
- int major_version = 2;
- int minor_version = 0;
-
- static int EVEL_TOS_SUPPORTED = 256;
- /**************************************************************************//**
- * TCP flags.
- * JSON equivalent fields: tcpFlagCountList, tcpFlagList
- *****************************************************************************/
- public enum EVEL_TCP_FLAGS {
- EVEL_TCP_NS,
- EVEL_TCP_CWR,
- EVEL_TCP_ECE,
- EVEL_TCP_URG,
- EVEL_TCP_ACK,
- EVEL_TCP_PSH,
- EVEL_TCP_RST,
- EVEL_TCP_SYN,
- EVEL_TCP_FIN,
- EVEL_MAX_TCP_FLAGS
- }
- static int EVEL_MAX_TCP_FLAGS = 10;
- /**************************************************************************//**
- * Mobile QCI Classes of Service.
- * JSON equivalent fields: mobileQciCosCountList, mobileQciCosList
- *****************************************************************************/
- public enum EVEL_QCI_COS_TYPES {
-
- /***************************************************************************/
- /* UMTS Classes of Service. */
- /***************************************************************************/
- EVEL_QCI_COS_UMTS_CONVERSATIONAL,
- EVEL_QCI_COS_UMTS_STREAMING,
- EVEL_QCI_COS_UMTS_INTERACTIVE,
- EVEL_QCI_COS_UMTS_BACKGROUND,
-
- /***************************************************************************/
- /* LTE Classes of Service. */
- /***************************************************************************/
- EVEL_QCI_COS_LTE_1,
- EVEL_QCI_COS_LTE_2,
- EVEL_QCI_COS_LTE_3,
- EVEL_QCI_COS_LTE_4,
- EVEL_QCI_COS_LTE_65,
- EVEL_QCI_COS_LTE_66,
- EVEL_QCI_COS_LTE_5,
- EVEL_QCI_COS_LTE_6,
- EVEL_QCI_COS_LTE_7,
- EVEL_QCI_COS_LTE_8,
- EVEL_QCI_COS_LTE_9,
- EVEL_QCI_COS_LTE_69,
- EVEL_QCI_COS_LTE_70,
- EVEL_MAX_QCI_COS_TYPES
- }
- static int EVEL_MAX_QCI_COS_TYPES = 18;
-
- private static final Logger LOGGER = Logger.getLogger( EvelMobileFlow.class.getName() );
-
-
- /*****************************************************************************/
- /* Array of strings to use when encoding TCP flags. */
- /*****************************************************************************/
- static final String[/*EVEL_MAX_TCP_FLAGS*/] evel_tcp_flag_strings = {
- "NS",
- "CWR",
- "ECE",
- "URG",
- "ACK",
- "PSH",
- "RST",
- "SYN",
- "FIN"
- };
-
- /*****************************************************************************/
- /* Array of strings to use when encoding QCI COS. */
- /*****************************************************************************/
- static final String[/*EVEL_MAX_QCI_COS_TYPES*/] evel_qci_cos_strings = {
- "conversational",
- "streaming",
- "interactive",
- "background",
- "1",
- "2",
- "3",
- "4",
- "65",
- "66",
- "5",
- "6",
- "7",
- "8",
- "9",
- "69",
- "70"
- };
-
-
- /**************************************************************************//**
- * Vendor VNF Name fields.
- * JSON equivalent field: vendorVnfNameFields
- *****************************************************************************/
- /**************************************************************************//**
- * Mobile GTP Per Flow Metrics.
- * JSON equivalent field: gtpPerFlowMetrics
- *****************************************************************************/
- public class MOBILE_GTP_PER_FLOW_METRICS {
- double avg_bit_error_rate;
- double avg_packet_delay_variation;
- int avg_packet_latency;
- int avg_receive_throughput;
- int avg_transmit_throughput;
-
- int flow_activation_epoch;
- int flow_activation_microsec;
-
- int flow_deactivation_epoch;
- int flow_deactivation_microsec;
- Date flow_deactivation_time;
- String flow_status;
- int max_packet_delay_variation;
- int num_activation_failures;
- int num_bit_errors;
- int num_bytes_received;
- int num_bytes_transmitted;
- int num_dropped_packets;
- int num_l7_bytes_received;
- int num_l7_bytes_transmitted;
- int num_lost_packets;
- int num_out_of_order_packets;
- int num_packet_errors;
- int num_packets_received_excl_retrans;
- int num_packets_received_incl_retrans;
- int num_packets_transmitted_incl_retrans;
- int num_retries;
- int num_timeouts;
- int num_tunneled_l7_bytes_received;
- int round_trip_time;
- int time_to_first_byte;
-
- /***************************************************************************/
- /* Optional fields */
- /***************************************************************************/
- EvelOptionInt ip_tos_counts[/*EVEL_TOS_SUPPORTED*/];
- EvelOptionInt tcp_flag_counts[/*EVEL_MAX_TCP_FLAGS*/];
- EvelOptionInt qci_cos_counts[/*EVEL_MAX_QCI_COS_TYPES*/];
-
- EvelOptionInt dur_connection_failed_status;
- EvelOptionInt dur_tunnel_failed_status;
- EvelOptionString flow_activated_by;
-
- EvelOptionTime flow_activation_time;
- EvelOptionString flow_deactivated_by;
-
- EvelOptionString gtp_connection_status;
- EvelOptionString gtp_tunnel_status;
- EvelOptionInt large_packet_rtt;
- EvelOptionDouble large_packet_threshold;
- EvelOptionInt max_receive_bit_rate;
- EvelOptionInt max_transmit_bit_rate;
- EvelOptionInt num_gtp_echo_failures;
- EvelOptionInt num_gtp_tunnel_errors;
- EvelOptionInt num_http_errors;
-
- /**************************************************************************//**
- * Create a new Mobile GTP Per Flow Metrics.
- *
- * @note The mandatory fields on the Mobile GTP Per Flow Metrics must be
- * supplied to this factory function and are immutable once set.
- * Optional fields have explicit setter functions, but again values
- * may only be set once so that the Mobile GTP Per Flow Metrics has
- * immutable properties.
- *
- * @param avg_bit_error_rate Average bit error rate.
- * @param avg_packet_delay_variation Average delay or jitter in ms.
- * @param avg_packet_latency Average delivery latency.
- * @param avg_receive_throughput Average receive throughput.
- * @param avg_transmit_throughput Average transmit throughput.
- * @param flow_activation_epoch Time the connection is activated.
- * @param flow_activation_microsec Microseconds for the start of the flow
- * connection.
- * @param flow_deactivation_epoch Time for the end of the connection.
- * @param flow_deactivation_microsec Microseconds for the end of the flow
- * connection.
- * @param flow_deactivation_time Transmission time of the first packet.
- * @param flow_status Connection status.
- * @param max_packet_delay_variation Maximum packet delay or jitter in ms.
- * @param num_activation_failures Number of failed activation requests.
- * @param num_bit_errors Number of errored bits.
- * @param num_bytes_received Number of bytes received.
- * @param num_bytes_transmitted Number of bytes transmitted.
- * @param num_dropped_packets Number of received packets dropped.
- * @param num_l7_bytes_received Number of tunneled Layer 7 bytes
- * received.
- * @param num_l7_bytes_transmitted Number of tunneled Layer 7 bytes
- * transmitted.
- * @param num_lost_packets Number of lost packets.
- * @param num_out_of_order_packets Number of out-of-order packets.
- * @param num_packet_errors Number of errored packets.
- * @param num_packets_received_excl_retrans Number of packets received,
- * excluding retransmits.
- * @param num_packets_received_incl_retrans Number of packets received.
- * @param num_packets_transmitted_incl_retrans Number of packets
- * transmitted.
- * @param num_retries Number of packet retries.
- * @param num_timeouts Number of packet timeouts.
- * @param num_tunneled_l7_bytes_received Number of tunneled Layer 7 bytes
- * received, excluding retransmits.
- * @param round_trip_time Round trip time.
- * @param time_to_first_byte Time in ms between connection
- * activation and first byte received.
- *
- * @returns pointer to the newly manufactured ::MOBILE_GTP_PER_FLOW_METRICS.
- * If the structure is not used it must be released using
- * ::evel_free_mobile_gtp_flow_metrics.
- * @retval null Failed to create the event.
- *****************************************************************************/
- public MOBILE_GTP_PER_FLOW_METRICS(
- double tavg_bit_error_rate,
- double tavg_packet_delay_variation,
- int tavg_packet_latency,
- int tavg_receive_throughput,
- int tavg_transmit_throughput,
- int tflow_activation_epoch,
- int tflow_activation_microsec,
- int tflow_deactivation_epoch,
- int tflow_deactivation_microsec,
- Date tflow_deactivation_time,
- String tflow_status,
- int tmax_packet_delay_variation,
- int tnum_activation_failures,
- int tnum_bit_errors,
- int tnum_bytes_received,
- int tnum_bytes_transmitted,
- int tnum_dropped_packets,
- int tnum_l7_bytes_received,
- int tnum_l7_bytes_transmitted,
- int tnum_lost_packets,
- int tnum_out_of_order_packets,
- int tnum_packet_errors,
- int tnum_packets_received_excl_retrans,
- int tnum_packets_received_incl_retrans,
- int tnum_packets_transmitted_incl_retrans,
- int tnum_retries,
- int tnum_timeouts,
- int tnum_tunneled_l7_bytes_received,
- int tround_trip_time,
- int ttime_to_first_byte)
- {
- int ii;
-
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(tavg_bit_error_rate >= 0.0);
- assert(tavg_packet_delay_variation >= 0.0);
- assert(tavg_packet_latency >= 0);
- assert(tavg_receive_throughput >= 0);
- assert(tavg_transmit_throughput >= 0);
- assert(tflow_activation_epoch > 0);
- assert(tflow_activation_microsec >= 0);
- assert(tflow_deactivation_epoch > 0);
- assert(tflow_deactivation_microsec >= 0);
- assert(tflow_status != null);
- assert(tmax_packet_delay_variation >= 0);
- assert(tnum_activation_failures >= 0);
- assert(tnum_bit_errors >= 0);
- assert(tnum_bytes_received >= 0);
- assert(tnum_bytes_transmitted >= 0);
- assert(tnum_dropped_packets >= 0);
- assert(tnum_l7_bytes_received >= 0);
- assert(tnum_l7_bytes_transmitted >= 0);
- assert(tnum_lost_packets >= 0);
- assert(tnum_out_of_order_packets >= 0);
- assert(tnum_packet_errors >= 0);
- assert(tnum_packets_received_excl_retrans >= 0);
- assert(tnum_packets_received_incl_retrans >= 0);
- assert(tnum_packets_transmitted_incl_retrans >= 0);
- assert(tnum_retries >= 0);
- assert(tnum_timeouts >= 0);
- assert(tnum_tunneled_l7_bytes_received >= 0);
- assert(tround_trip_time >= 0);
- assert(ttime_to_first_byte >= 0);
-
- /***************************************************************************/
- /* Allocate the Mobile Flow GTP Per Flow Metrics. */
- /***************************************************************************/
- LOGGER.debug("New Mobile Flow GTP Per Flow Metrics");
-
- /***************************************************************************/
- /* Initialize the Mobile Flow GTP Per Flow Metrics fields. Optional */
- /* string values are uninitialized (null). */
- /***************************************************************************/
- avg_bit_error_rate = tavg_bit_error_rate;
- avg_packet_delay_variation = tavg_packet_delay_variation;
- avg_packet_latency = tavg_packet_latency;
- avg_receive_throughput = tavg_receive_throughput;
- avg_transmit_throughput = tavg_transmit_throughput;
- flow_activation_epoch = tflow_activation_epoch;
- flow_activation_microsec = tflow_activation_microsec;
- flow_deactivation_epoch = tflow_deactivation_epoch;
- flow_deactivation_microsec = tflow_deactivation_microsec;
- flow_deactivation_time = tflow_deactivation_time;
- flow_status = tflow_status;
- max_packet_delay_variation = tmax_packet_delay_variation;
- num_activation_failures = tnum_activation_failures;
- num_bit_errors = tnum_bit_errors;
- num_bytes_received = tnum_bytes_received;
- num_bytes_transmitted = tnum_bytes_transmitted;
- num_dropped_packets = tnum_dropped_packets;
- num_l7_bytes_received = tnum_l7_bytes_received;
- num_l7_bytes_transmitted = tnum_l7_bytes_transmitted;
- num_lost_packets = tnum_lost_packets;
- num_out_of_order_packets = tnum_out_of_order_packets;
- num_packet_errors = tnum_packet_errors;
- num_packets_received_excl_retrans =
- tnum_packets_received_excl_retrans;
- num_packets_received_incl_retrans =
- tnum_packets_received_incl_retrans;
- num_packets_transmitted_incl_retrans =
- tnum_packets_transmitted_incl_retrans;
- num_retries = tnum_retries;
- num_timeouts = tnum_timeouts;
- num_tunneled_l7_bytes_received = tnum_tunneled_l7_bytes_received;
- round_trip_time = tround_trip_time;
- time_to_first_byte = ttime_to_first_byte;
- ip_tos_counts = new EvelOptionInt[EVEL_TOS_SUPPORTED];
- for (ii = 0; ii < EVEL_TOS_SUPPORTED; ii++)
- {
- ip_tos_counts[ii] = new EvelOptionInt();
- }
- tcp_flag_counts = new EvelOptionInt[EVEL_MAX_TCP_FLAGS];
- for (ii = 0; ii < EVEL_MAX_TCP_FLAGS; ii++)
- {
- tcp_flag_counts[ii] = new EvelOptionInt();
- }
- qci_cos_counts = new EvelOptionInt[EVEL_MAX_QCI_COS_TYPES];
- for (ii = 0; ii < EVEL_MAX_QCI_COS_TYPES; ii++)
- {
- qci_cos_counts[ii] = new EvelOptionInt();
- }
- dur_connection_failed_status = new EvelOptionInt();
- dur_tunnel_failed_status = new EvelOptionInt();
- flow_activated_by = new EvelOptionString();
- flow_activation_time = new EvelOptionTime();
- flow_deactivated_by = new EvelOptionString();
- gtp_connection_status = new EvelOptionString();
- gtp_tunnel_status = new EvelOptionString();
- large_packet_rtt = new EvelOptionInt();
- large_packet_threshold = new EvelOptionDouble();
- max_receive_bit_rate = new EvelOptionInt();
- max_transmit_bit_rate = new EvelOptionInt();
- num_gtp_echo_failures = new EvelOptionInt();
- num_gtp_tunnel_errors = new EvelOptionInt();
- num_http_errors = new EvelOptionInt();
-
- EVEL_EXIT();
- }
- }
-
- /***************************************************************************/
- /* Mandatory fields */
- /***************************************************************************/
- String flow_direction;
- public MOBILE_GTP_PER_FLOW_METRICS gtp_per_flow_metrics;
- String ip_protocol_type;
- String ip_version;
- String other_endpoint_ip_address;
- int other_endpoint_port;
- String reporting_endpoint_ip_addr;
- int reporting_endpoint_port;
-
- /***************************************************************************/
- /* Optional fields */
- /***************************************************************************/
- ArrayList<String[]> additional_info;
- EvelOptionString application_type;
- EvelOptionString app_protocol_type;
- EvelOptionString app_protocol_version;
- EvelOptionString cid;
- EvelOptionString connection_type;
- EvelOptionString ecgi;
- EvelOptionString gtp_protocol_type;
- EvelOptionString gtp_version;
- EvelOptionString http_header;
- EvelOptionString imei;
- EvelOptionString imsi;
- EvelOptionString lac;
- EvelOptionString mcc;
- EvelOptionString mnc;
- EvelOptionString msisdn;
- EvelOptionString other_functional_role;
- EvelOptionString rac;
- EvelOptionString radio_access_technology;
- EvelOptionString sac;
- EvelOptionInt sampling_algorithm;
- EvelOptionString tac;
- EvelOptionString tunnel_id;
- EvelOptionString vlan_id;
-
- /***************************************************************************/
- /* Optional fields */
- /***************************************************************************/
-
-
- /*****************************************************************************/
- /* Local prototypes */
- /*****************************************************************************/
-
-
- /**************************************************************************//**
- * Create a new Mobile Flow event.
- *
- * @note The mandatory fields on the Mobile Flow must be supplied to this
- * factory function and are immutable once set. Optional fields have
- * explicit setter functions, but again values may only be set once so
- * that the Mobile Flow has immutable properties.
- * @param flow_direction Flow direction.
- * @param gtp_per_flow_metrics GTP per-flow metrics.
- * @param ip_protocol_type IP protocol type.
- * @param ip_version IP protocol version.
- * @param other_endpoint_ip_address IP address of the other endpoint.
- * @param other_endpoint_port IP port of the other endpoint.
- * @param reporting_endpoint_ip_addr IP address of the reporting endpoint.
-
- * @param reporting_endpoint_port IP port of the reporting endpoint.
- *****************************************************************************/
- public EvelMobileFlow( String evname, String evid,
- String flow_dir,
- MOBILE_GTP_PER_FLOW_METRICS gtp_per_flow_metr,
- String ip_protocol_typ,
- String ip_vers,
- String other_endpoint_ip_addr,
- int other_endpoint_pt,
- String reporting_endpoint_ipaddr,
- int reporting_endpoint_pt)
- {
- super(evname,evid);
-
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(flow_dir != null);
- assert(gtp_per_flow_metr != null);
- assert(ip_protocol_typ != null);
- assert(ip_vers != null);
- assert(other_endpoint_ip_addr != null);
- assert(other_endpoint_pt > 0);
- assert(reporting_endpoint_ipaddr != null);
- assert(reporting_endpoint_pt > 0);
-
- /***************************************************************************/
- /* Allocate the Mobile Flow. */
- /***************************************************************************/
- LOGGER.debug("New Mobile Flow created");
-
- /***************************************************************************/
- /* Initialize the header & the Mobile Flow fields. Optional string values */
- /* are uninitialized (null). */
- /***************************************************************************/
- event_domain = EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW;
- flow_direction = flow_dir;
- gtp_per_flow_metrics = gtp_per_flow_metr;
- ip_protocol_type = ip_protocol_typ;
- ip_version = ip_vers;
- other_endpoint_ip_address = other_endpoint_ip_addr;
- other_endpoint_port = other_endpoint_pt;
- reporting_endpoint_ip_addr = reporting_endpoint_ipaddr;
- reporting_endpoint_port = reporting_endpoint_pt;
-
- application_type = new EvelOptionString();
- app_protocol_type = new EvelOptionString();
- app_protocol_version = new EvelOptionString();
- cid = new EvelOptionString();
- connection_type = new EvelOptionString();
- ecgi = new EvelOptionString();
- gtp_protocol_type = new EvelOptionString();
- gtp_version = new EvelOptionString();
- http_header = new EvelOptionString();
- imei = new EvelOptionString();
- imsi = new EvelOptionString();
- lac = new EvelOptionString();
- mcc = new EvelOptionString();
- mnc = new EvelOptionString();
- msisdn = new EvelOptionString();
- other_functional_role = new EvelOptionString();
- rac = new EvelOptionString();
- radio_access_technology = new EvelOptionString();
- sac = new EvelOptionString();
- sampling_algorithm = new EvelOptionInt();
- tac = new EvelOptionString();
- tunnel_id = new EvelOptionString();
- vlan_id = new EvelOptionString();
- additional_info = null;
-
- EVEL_EXIT();
-
- }
-
-
-
- /**************************************************************************//**
- * Add an additional value name/value pair to the Mobile flow.
- *
- * The name and value are null delimited ASCII strings. The library takes
- * a copy so the caller does not have to preserve values after the function
- * returns.
- *
- * @param name ASCIIZ string with the attribute's name. The caller
- * does not need to preserve the value once the function
- * returns.
- * @param value ASCIIZ string with the attribute's value. The caller
- * does not need to preserve the value once the function
- * returns.
- *****************************************************************************/
- public void evel_mobile_flow_addl_field_add(String name, String value)
- {
- String[] addl_info = null;
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(name != null);
- assert(value != null);
-
- if( additional_info == null )
- {
- additional_info = new ArrayList<String[]>();
- }
-
- LOGGER.debug(MessageFormat.format("Adding name={0} value={1}", name, value));
- addl_info = new String[2];
- assert(addl_info != null);
- addl_info[0] = name;
- addl_info[1] = value;
-
- additional_info.add(addl_info);
-
- EVEL_EXIT();
- }
-
-
- /**************************************************************************//**
- * Set the Event Type property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param type The Event Type to be set. ASCIIZ string. The caller
- * does not need to preserve the value once the function
- * returns.
- *****************************************************************************/
- public void evel_mobile_flow_type_set(String typ)
- {
- EVEL_ENTER();
- assert(typ != null);
-
- /***************************************************************************/
- /* Check preconditions and call evel_header_type_set. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- evel_header_type_set(typ);
-
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Application Type property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param type The Application Type to be set. ASCIIZ string. The caller
- * does not need to preserve the value once the function
- * returns.
- *****************************************************************************/
- public void evel_mobile_flow_app_type_set(String type)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(type != null);
-
- application_type.SetValuePr(
- type,
- "Application Type");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Application Protocol Type property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param type The Application Protocol Type to be set. ASCIIZ string.
- * The caller does not need to preserve the value once the
- * function returns.
- *****************************************************************************/
- public void evel_mobile_flow_app_prot_type_set(String type)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(type != null);
-
- app_protocol_type.SetValuePr(
- type,
- "Application Protocol Type");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Application Protocol Version property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param version The Application Protocol Version to be set. ASCIIZ
- * string. The caller does not need to preserve the value
- * once the function returns.
- *****************************************************************************/
- void evel_mobile_flow_app_prot_ver_set(String version)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(version != null);
-
- app_protocol_version.SetValuePr(
- version,
- "Application Protocol Version");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the CID property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param cid The CID to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_cid_set(String cd)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(cid != null);
-
- cid.SetValuePr(
- cd,
- "CID");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Connection Type property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param type The Connection Type to be set. ASCIIZ string. The caller
- * does not need to preserve the value once the function
- * returns.
- *****************************************************************************/
- public void evel_mobile_flow_con_type_set(String type)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(type != null);
-
- connection_type.SetValuePr(
- type,
- "Connection Type");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the ECGI property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param ecgi The ECGI to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_ecgi_set(String ecgit)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(ecgit != null);
-
- ecgi.SetValuePr(
- ecgit,
- "ECGI");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the GTP Protocol Type property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param type The GTP Protocol Type to be set. ASCIIZ string. The
- * caller does not need to preserve the value once the
- * function returns.
- *****************************************************************************/
- public void evel_mobile_flow_gtp_prot_type_set(String type)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(type != null);
-
- gtp_protocol_type.SetValuePr(
- type,
- "GTP Protocol Type");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the GTP Protocol Version property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param version The GTP Protocol Version to be set. ASCIIZ string. The
- * caller does not need to preserve the value once the
- * function returns.
- *****************************************************************************/
- public void evel_mobile_flow_gtp_prot_ver_set(String version)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(version != null);
-
- gtp_version.SetValuePr(
- version,
- "GTP Protocol Version");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the HTTP Header property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param header The HTTP header to be set. ASCIIZ string. The caller does
- * not need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_http_header_set(String header)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(header != null);
-
- http_header.SetValuePr(
- header,
- "HTTP Header");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the IMEI property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param imei The IMEI to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_imei_set(String imeit)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(imeit != null);
-
- imei.SetValuePr(
- imeit,
- "IMEI");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the IMSI property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param imsi The IMSI to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_imsi_set(String imsit)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(imsit != null);
-
- imsi.SetValuePr(
- imsit,
- "IMSI");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the LAC property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param lac The LAC to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_lac_set(String lact)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
-
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
- assert(lact != null);
-
- lac.SetValuePr(
- lact,
- "LAC");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the MCC property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param mcc The MCC to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_mcc_set(String mcct)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(mcct != null);
-
- mcc.SetValuePr(
- mcct,
- "MCC");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the MNC property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param mnc The MNC to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_mnc_set(String mnct)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(mnct != null);
-
- mnc.SetValuePr(
- mnct,
- "MNC");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the MSISDN property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param msisdn The MSISDN to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_msisdn_set(String msisdnt)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(msisdnt != null);
-
- msisdn.SetValuePr(
- msisdnt,
- "MSISDN");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Other Functional Role property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param role The Other Functional Role to be set. ASCIIZ string. The
- * caller does not need to preserve the value once the
- * function returns.
- *****************************************************************************/
- public void evel_mobile_flow_other_func_role_set(String role)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(role != null);
-
- other_functional_role.SetValuePr(
- role,
- "Other Functional Role");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the RAC property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param rac The RAC to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_rac_set(String ract)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(ract != null);
-
- rac.SetValuePr(
- ract,
- "RAC");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Radio Access Technology property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param tech The Radio Access Technology to be set. ASCIIZ string. The
- * caller does not need to preserve the value once the
- * function returns.
- *****************************************************************************/
- public void evel_mobile_flow_radio_acc_tech_set(String tech)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(tech != null);
-
- radio_access_technology.SetValuePr(
- tech,
- "Radio Access Technology");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the SAC property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param sac The SAC to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_sac_set(String sact)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(sact != null);
-
- sac.SetValuePr(
- sact,
- "SAC");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Sampling Algorithm property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param algorithm The Sampling Algorithm to be set.
- *****************************************************************************/
- public void evel_mobile_flow_samp_alg_set(
- int algorithm)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(algorithm >= 0);
-
- sampling_algorithm.SetValuePr(
- algorithm,
- "Sampling Algorithm");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the TAC property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param tac The TAC to be set. ASCIIZ string. The caller does not
- * need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_tac_set(String tact)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(tact != null);
-
- tac.SetValuePr(
- tact,
- "TAC");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Tunnel ID property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param tunnel_id The Tunnel ID to be set. ASCIIZ string. The caller does
- * not need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_tunnel_id_set(String tunnel_idt)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(tunnel_idt != null);
-
- tunnel_id.SetValuePr(
- tunnel_idt,
- "Tunnel ID");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the VLAN ID property of the Mobile Flow.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
-
- * @param vlan_id The VLAN ID to be set. ASCIIZ string. The caller does
- * not need to preserve the value once the function returns.
- *****************************************************************************/
- public void evel_mobile_flow_vlan_id_set(String vlan_idt)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- assert(vlan_idt != null);
-
- vlan_id.SetValuePr(
- vlan_idt,
- "VLAN ID");
- EVEL_EXIT();
- }
-
-
-
- /**************************************************************************//**
- * Set the Duration of Connection Failed Status property of the Mobile GTP Per
- * Flow Metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param duration The Duration of Connection Failed Status to be set.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_dur_con_fail_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- int duration)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(duration >= 0);
-
- metrics.dur_connection_failed_status.SetValuePr(
- duration,
- "Duration of Connection Failed Status");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Duration of Tunnel Failed Status property of the Mobile GTP Per Flow
- * Metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param duration The Duration of Tunnel Failed Status to be set.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_dur_tun_fail_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- int duration)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(duration >= 0);
-
- metrics.dur_tunnel_failed_status.SetValuePr(
- duration,
- "Duration of Tunnel Failed Status");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Activated By property of the Mobile GTP Per Flow metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param act_by The Activated By to be set. ASCIIZ string. The caller
- * does not need to preserve the value once the function
- * returns.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_act_by_set(MOBILE_GTP_PER_FLOW_METRICS metrics,
- String act_by)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(act_by != null);
-
- metrics.flow_activated_by.SetValuePr(
- act_by,
- "Activated By");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Activation Time property of the Mobile GTP Per Flow metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param act_time The Activation Time to be set. ASCIIZ string. The caller
- * does not need to preserve the value once the function
- * returns.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_act_time_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- Date act_time)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
-
- metrics.flow_activation_time.SetValuePr(
- act_time,
- "Activation Time");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Deactivated By property of the Mobile GTP Per Flow metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param deact_by The Deactivated By to be set. ASCIIZ string. The caller
- * does not need to preserve the value once the function
- * returns.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_deact_by_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- String deact_by)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(deact_by != null);
-
- metrics.flow_deactivated_by.SetValuePr(
- deact_by,
- "Deactivated By");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the GTP Connection Status property of the Mobile GTP Per Flow metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param status The GTP Connection Status to be set. ASCIIZ string. The
- * caller does not need to preserve the value once the
- * function returns.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_con_status_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- String status)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(status != null);
-
- metrics.gtp_connection_status.SetValuePr(
- status,
- "GTP Connection Status");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the GTP Tunnel Status property of the Mobile GTP Per Flow metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param status The GTP Tunnel Status to be set. ASCIIZ string. The
- * caller does not need to preserve the value once the
- * function returns.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_tun_status_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- String status)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(status != null);
-
- metrics.gtp_tunnel_status.SetValuePr(
- status,
- "GTP Tunnel Status");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set an IP Type-of-Service count property of the Mobile GTP Per Flow metrics.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param index The index of the IP Type-of-Service.
- * @param count The count.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_iptos_set(MOBILE_GTP_PER_FLOW_METRICS metrics,
- int index,
- int count)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(index >= 0);
- assert(index < EVEL_TOS_SUPPORTED);
- assert(count >= 0);
- assert(count <= 255);
-
- LOGGER.debug("IP Type-of-Service "+index);
- metrics.ip_tos_counts[index].SetValuePr(
- count,
- "IP Type-of-Service");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Large Packet Round-Trip Time property of the Mobile GTP Per Flow
- * Metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param rtt The Large Packet Round-Trip Time to be set.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_large_pkt_rtt_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- int rtt)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(rtt >= 0);
-
- metrics.large_packet_rtt.SetValuePr(
- rtt,
- "Large Packet Round-Trip Time");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Large Packet Threshold property of the Mobile GTP Per Flow Metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param threshold The Large Packet Threshold to be set.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_large_pkt_thresh_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- double threshold)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(threshold >= 0.0);
-
- metrics.large_packet_threshold.SetValuePr(
- threshold,
- "Large Packet Threshold");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Max Receive Bit Rate property of the Mobile GTP Per Flow Metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param rate The Max Receive Bit Rate to be set.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_max_rcv_bit_rate_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- int rate)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(rate >= 0);
-
- metrics.max_receive_bit_rate.SetValuePr(
- rate,
- "Max Receive Bit Rate");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Max Transmit Bit Rate property of the Mobile GTP Per Flow Metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param rate The Max Transmit Bit Rate to be set.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_max_trx_bit_rate_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- int rate)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(rate >= 0);
-
- metrics.max_transmit_bit_rate.SetValuePr(
- rate,
- "Max Transmit Bit Rate");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Number of GTP Echo Failures property of the Mobile GTP Per Flow
- * Metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param num The Number of GTP Echo Failures to be set.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_num_echo_fail_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- int num)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(num >= 0);
-
- metrics.num_gtp_echo_failures.SetValuePr(
- num,
- "Number of GTP Echo Failures");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Number of GTP Tunnel Errors property of the Mobile GTP Per Flow
- * Metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param num The Number of GTP Tunnel Errors to be set.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_num_tun_fail_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- int num)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(num >= 0);
-
- metrics.num_gtp_tunnel_errors.SetValuePr(
- num,
- "Number of GTP Tunnel Errors");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Set the Number of HTTP Errors property of the Mobile GTP Per Flow Metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param num The Number of HTTP Errors to be set.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_num_http_errors_set(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- int num)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(num >= 0);
-
- metrics.num_http_errors.SetValuePr(
- num,
- "Number of HTTP Errors");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Add a TCP flag count to the metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param tcp_flag The TCP flag to be updated.
- * @param count The associated flag count, which must be nonzero.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_tcp_flag_count_add(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- int tcp_flag,
- int count)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(tcp_flag >= 0 && tcp_flag < EVEL_MAX_TCP_FLAGS);
- assert(count >= 0);
-
- LOGGER.debug("TCP Flag: "+tcp_flag);
- metrics.tcp_flag_counts[tcp_flag].SetValuePr(
- count,
- "TCP flag");
- EVEL_EXIT();
- }
-
- /**************************************************************************//**
- * Add a QCI COS count to the metrics.
- *
- * @note The property is treated as immutable: it is only valid to call
- * the setter once. However, we don't assert if the caller tries to
- * overwrite, just ignoring the update instead.
- *
- * @param metrics Pointer to the Mobile GTP Per Flow Metrics.
- * @param qci_cos The QCI COS count to be updated.
- * @param count The associated QCI COS count.
- *****************************************************************************/
- public void evel_mobile_gtp_metrics_qci_cos_count_add(
- MOBILE_GTP_PER_FLOW_METRICS metrics,
- int qci_cos,
- int count)
- {
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(metrics != null);
- assert(qci_cos >= 0);
- assert(qci_cos < EVEL_MAX_QCI_COS_TYPES);
- assert(count >= 0);
-
- LOGGER.debug("QCI COS: "+ qci_cos);
- metrics.qci_cos_counts[qci_cos].SetValuePr(
- count,
- "QCI COS");
- EVEL_EXIT();
- }
-
-
- /**************************************************************************//**
- * Encode the GTP Per Flow Object in JSON according to AT&T's schema.
- *
- * @retval JsonObjectBuilder of GTP Flow body portion of message
- *****************************************************************************/
- JsonObjectBuilder evelGtpPerFlowObject()
- {
- int index;
- boolean found_ip_tos;
- boolean found_tcp_flag;
- boolean found_qci_cos;
-
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Mandatory parameters. */
- /***************************************************************************/
- MOBILE_GTP_PER_FLOW_METRICS metrics = gtp_per_flow_metrics;
-
- JsonObjectBuilder obj = Json.createObjectBuilder()
- .add("avgBitErrorRate", metrics.avg_bit_error_rate)
- .add("avgPacketDelayVariation", metrics.avg_packet_delay_variation)
- .add("avgPacketLatency", metrics.avg_packet_latency)
- .add("avgReceiveThroughput", metrics.avg_receive_throughput)
- .add("avgTransmitThroughput", metrics.avg_transmit_throughput)
- .add("flowActivationEpoch", metrics.flow_activation_epoch)
- .add("flowActivationMicrosec", metrics.flow_activation_microsec)
- .add("flowDeactivationEpoch", metrics.flow_deactivation_epoch)
- .add("flowDeactivationMicrosec", metrics.flow_deactivation_microsec)
- .add("flowDeactivationTime", metrics.flow_deactivation_time.toString())
- .add("flowStatus", metrics.flow_status)
- .add("maxPacketDelayVariation", metrics.max_packet_delay_variation)
- .add("numActivationFailures", metrics.num_activation_failures)
- .add( "numBitErrors", metrics.num_bit_errors)
- .add( "numBytesReceived", metrics.num_bytes_received)
- .add( "numBytesTransmitted", metrics.num_bytes_transmitted)
- .add( "numDroppedPackets", metrics.num_dropped_packets)
- .add( "numL7BytesReceived", metrics.num_l7_bytes_received)
- .add( "numL7BytesTransmitted", metrics.num_l7_bytes_transmitted)
- .add( "numLostPackets", metrics.num_lost_packets)
- .add( "numOutOfOrderPackets", metrics.num_out_of_order_packets)
- .add( "numPacketErrors", metrics.num_packet_errors)
- .add( "numPacketsReceivedExclRetrans",
- metrics.num_packets_received_excl_retrans)
- .add(
- "numPacketsReceivedInclRetrans",
- metrics.num_packets_received_incl_retrans)
- .add(
- "numPacketsTransmittedInclRetrans",
- metrics.num_packets_transmitted_incl_retrans)
- .add( "numRetries", metrics.num_retries)
- .add( "numTimeouts", metrics.num_timeouts)
- .add(
- "numTunneledL7BytesReceived",
- metrics.num_tunneled_l7_bytes_received)
- .add( "roundTripTime", metrics.round_trip_time)
- .add( "timeToFirstByte", metrics.time_to_first_byte);
-
- /***************************************************************************/
- /* Optional parameters. */
- /***************************************************************************/
- found_ip_tos = false;
- for (index = 0; index < EVEL_TOS_SUPPORTED; index++)
- {
- if (metrics.ip_tos_counts[index].is_set)
- {
- found_ip_tos = true;
- break;
- }
- }
-
- if (found_ip_tos)
- {
- JsonArrayBuilder builder = Json.createArrayBuilder();
- for (index = 0; index < EVEL_TOS_SUPPORTED; index++)
- {
- if (metrics.ip_tos_counts[index].is_set)
- {
- JsonObjectBuilder obj2 = Json.createObjectBuilder()
- .add(Integer.toString(index), metrics.ip_tos_counts[index].value);
- builder.add(obj2);
- }
- }
- obj.add("ipTosCountList", builder);
- }
-
-
- /***************************************************************************/
- /* Make some compile-time assertions about EVEL_TCP_FLAGS. If you update */
- /* these, make sure you update evel_tcp_flag_strings to match the enum. */
- /***************************************************************************/
-
- found_tcp_flag = false;
- for (index = 0; index < EVEL_MAX_TCP_FLAGS; index++)
- {
- if (metrics.tcp_flag_counts[index].is_set)
- {
- found_tcp_flag = true;
- break;
- }
- }
-
- if (found_tcp_flag)
- {
- JsonArrayBuilder builder = Json.createArrayBuilder();
- for (index = 0; index < EVEL_MAX_TCP_FLAGS; index++)
- {
- if (metrics.tcp_flag_counts[index].is_set)
- {
- JsonObjectBuilder obj2 = Json.createObjectBuilder()
- .add(Integer.toString(index), evel_tcp_flag_strings[index]);
- builder.add(obj2);
- }
- }
- obj.add("tcpFlagList", builder);
- }
-
- if (found_tcp_flag)
- {
- JsonArrayBuilder builder = Json.createArrayBuilder();
- for (index = 0; index < EVEL_MAX_TCP_FLAGS; index++)
- {
- if (metrics.tcp_flag_counts[index].is_set)
- {
- JsonObjectBuilder obj2 = Json.createObjectBuilder()
- .add(evel_tcp_flag_strings[index], metrics.tcp_flag_counts[index].value);
- builder.add(obj2);
- }
- }
- obj.add("tcpFlagCountList", builder);
- }
-
- /***************************************************************************/
- /* Make some compile-time assertions about EVEL_QCI_COS_TYPES. If you */
- /* update these, make sure you update evel_qci_cos_strings to match the */
- /* enum. */
- /***************************************************************************/
-
- found_qci_cos = false;
- for (index = 0; index < EVEL_MAX_QCI_COS_TYPES; index++)
- {
- if (metrics.qci_cos_counts[index].is_set)
- {
- found_qci_cos = true;
- break;
- }
- }
-
- if (found_qci_cos)
- {
- JsonArrayBuilder builder = Json.createArrayBuilder();
- for (index = 0; index < EVEL_MAX_QCI_COS_TYPES; index++)
- {
- if (metrics.qci_cos_counts[index].is_set)
- {
- JsonObjectBuilder obj2 = Json.createObjectBuilder()
- .add(Integer.toString(index), evel_qci_cos_strings[index]);
- builder.add(obj2);
- }
- }
- obj.add("mobileQciCosList", builder);
- }
-
- if (found_qci_cos)
- {
- JsonArrayBuilder builder = Json.createArrayBuilder();
- for (index = 0; index < EVEL_MAX_QCI_COS_TYPES; index++)
- {
- if (metrics.qci_cos_counts[index].is_set)
- {
- JsonObjectBuilder obj2 = Json.createObjectBuilder()
- .add(evel_qci_cos_strings[index], metrics.qci_cos_counts[index].value);
- builder.add(obj2);
- }
- }
- obj.add("mobileQciCosCountList", builder);
- }
-
- metrics.dur_connection_failed_status.encJsonValue(obj, "durConnectionFailedStatus");
- metrics.dur_tunnel_failed_status.encJsonValue(obj, "durTunnelFailedStatus");
- metrics.flow_activated_by.encJsonValue(obj, "flowActivatedBy");
- metrics.flow_activation_time.encJsonValue(obj,"flowActivationTime");
- metrics.flow_deactivated_by.encJsonValue(obj, "flowDeactivatedBy");
- metrics.gtp_connection_status.encJsonValue(obj, "gtpConnectionStatus");
- metrics.gtp_tunnel_status.encJsonValue(obj, "gtpTunnelStatus");
- metrics.large_packet_rtt.encJsonValue(obj, "largePacketRtt");
- metrics.large_packet_threshold.encJsonValue(obj, "largePacketThreshold");
- metrics.max_receive_bit_rate.encJsonValue(obj, "maxReceiveBitRate");
- metrics.max_transmit_bit_rate.encJsonValue(obj, "maxTransmitBitRate");
- metrics.num_gtp_echo_failures.encJsonValue(obj, "numGtpEchoFailures");
- metrics.num_gtp_tunnel_errors.encJsonValue(obj, "numGtpTunnelErrors");
- metrics.num_http_errors.encJsonValue(obj, "numHttpErrors");
-
- return obj;
-
- }
-
-
- /**************************************************************************//**
- * Encode Mobile Flow Object according to VES schema
- *
- * @retval JSON Object of Mobile Flow event
- *****************************************************************************/
- JsonObjectBuilder evelMobileFlowObject()
- {
-
- double version = major_version+(double)minor_version/10;
-
- EVEL_ENTER();
-
- /***************************************************************************/
- /* Check preconditions. */
- /***************************************************************************/
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_MOBILE_FLOW);
-
- /***************************************************************************/
- /* Mandatory fields. */
- /***************************************************************************/
- JsonObjectBuilder evelmf = Json.createObjectBuilder()
- .add("flowDirection", flow_direction)
- .add("ipProtocolType", ip_protocol_type)
- .add("ipVersion", ip_version)
- .add("otherEndpointIpAddress", other_endpoint_ip_address)
- .add("otherEndpointPort", other_endpoint_port)
- .add("reportingEndpointIpAddr", reporting_endpoint_ip_addr)
- .add("reportingEndpointPort", reporting_endpoint_port);
-
- //call gtp per flow object encoding function
- if(gtp_per_flow_metrics != null)
- evelmf.add("gtpPerFlowMetrics", evelGtpPerFlowObject());
-
-
-
- /***************************************************************************/
- /* Optional fields. */
- /***************************************************************************/
- // additional fields
- if( additional_info != null )
- {
- JsonArrayBuilder builder = Json.createArrayBuilder();
- for(int i=0;i<additional_info.size();i++) {
- String[] addl_info = additional_info.get(i);
- JsonObject obj = Json.createObjectBuilder()
- .add("name", addl_info[0])
- .add("value", addl_info[1]).build();
- builder.add(obj);
- }
- evelmf.add("additionalFields", builder);
- }
-
-
- /***************************************************************************/
- /* Optional parameters. */
- /***************************************************************************/
- application_type.encJsonValue(evelmf, "applicationType");
- app_protocol_type.encJsonValue(evelmf, "appProtocolType");
- app_protocol_version.encJsonValue(evelmf, "appProtocolVersion");
- cid.encJsonValue(evelmf,"cid");
- connection_type.encJsonValue(evelmf, "connectionType");
- ecgi.encJsonValue(evelmf, "ecgi");
- gtp_protocol_type.encJsonValue(evelmf, "gtpProtocolType");
- gtp_version.encJsonValue(evelmf, "gtpVersion");
- http_header.encJsonValue(evelmf, "httpHeader");
- imei.encJsonValue(evelmf, "imei");
- imsi.encJsonValue(evelmf, "imsi");
- lac.encJsonValue(evelmf, "lac");
- mcc.encJsonValue(evelmf, "mcc");
- mnc.encJsonValue(evelmf, "mnc");
- msisdn.encJsonValue(evelmf, "msisdn");
- other_functional_role.encJsonValue(evelmf,"otherFunctionalRole");
- rac.encJsonValue(evelmf, "rac");
- radio_access_technology.encJsonValue(evelmf, "radioAccessTechnology");
- sac.encJsonValue(evelmf, "sac");
- sampling_algorithm.encJsonValue(evelmf, "samplingAlgorithm");
- tac.encJsonValue(evelmf, "tac");
- tunnel_id.encJsonValue(evelmf,"tunnelId");
- vlan_id.encJsonValue(evelmf,"vlanId");
-
-
- /***************************************************************************/
- /* Although optional, we always generate the version. Note that this */
- /* closes the object, too. */
- /***************************************************************************/
- evelmf.add("mobileFlowFieldsVersion", version);
-
- EVEL_EXIT();
-
- return evelmf;
- }
-
- /**************************************************************************//**
- * Encode the event as a JSON event object according to AT&T's schema.
- * retval : String of JSON event message
- *****************************************************************************/
- JsonObject evel_json_encode_event()
- {
- EVEL_ENTER();
-
- assert(event_domain == EvelHeader.DOMAINS.EVEL_DOMAIN_STATE_CHANGE);
- //encode common event header and mobile flow body
- JsonObject obj = Json.createObjectBuilder()
- .add("event", Json.createObjectBuilder()
- .add( "commonEventHeader",eventHeaderObject() )
- .add( "mobileFlowFields",evelMobileFlowObject() )
- ).build();
-
- EVEL_EXIT();
-
- return obj;
-
- }
-
-
-}