2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
20 import org.onap.policy.apex.examples.aadm.concepts.ENodeBStatus;
21 import org.onap.policy.apex.examples.aadm.concepts.ImsiStatus;
23 logger.debug(subject.id + ":" + subject.taskName + " execution logic");
24 logger.debug(inFields);
26 outFields["ACTTASK"] = "probe";
27 outFields["TRIGGER_SPEC"] = "XSTREAM_AADM_ACT_EVENT";
28 outFields["MAJ_MIN_MAINT_VERSION"] = "0.0.1";
29 outFields["IMSI"] = inFields["IMSI"];
31 if (inFields["IMSI_IP"] != null) {
32 outFields["IMSI_IP"] = inFields["IMSI_IP"];
35 outFields["IMSI_IP"] = inFields["UE_IP_ADDRESS"];
38 if (inFields["NW_IP"] != null) {
39 outFields["NW_IP"] = inFields["NW_IP"];
42 outFields["NW_IP"] = inFields["SGW_IP_ADDRESS"];
45 ImsiStatus imsiStatus = getContextAlbum("IMSIStatusAlbum").get((String)inFields["IMSI"]);
46 logger.debug(imsiStatus);
48 ENodeBStatus eNodeBStatus = getContextAlbum("ENodeBStatusAlbum").get(imsiStatus.getENodeBId());
49 logger.debug(eNodeBStatus);
51 if (imsiStatus.getENodeBId() != null && !imsiStatus.getENodeBId().equals(inFields["ENODEB_ID"]) || inFields["AVG_SUBSCRIBER_SERVICE_REQUEST"] == null) {
52 // if user moved enodeB remove him from previous one
53 if (imsiStatus.getENodeBId() != null) {
54 eNodeBStatus.decrementDosCount();
57 // if user became non anomalous return action
58 if (inFields["AVG_SUBSCRIBER_SERVICE_REQUEST"] == null) {
59 imsiStatus.setAnomalous(false);
60 outFields["ACTTASK"] = "remove_from_probe";
62 for (ENodeBStatus enbStatus : getContextAlbum("ENodeBStatusAlbum").values) {
63 if (enbStatus.getBeingProbed()) {
64 outFields["PROBE_ON"] = true;
65 outFields["TCP_ON"] = true;
70 outFields["PROBE_ON"] = false;
71 outFields["TCP_ON"] = false;
73 getContextAlbum("IMSIStatusAlbum").put(imsiStatus.getIMSI(), imsiStatus);
74 getContextAlbum("ENodeBStatusAlbum").put(eNodeBStatus.getENodeB(), eNodeBStatus);
80 imsiStatus.setAnomalous(true);
81 imsiStatus.setAnomolousTime(System.currentTimeMillis());
82 imsiStatus.setENodeBId(inFields["ENODEB_ID"]);
83 getContextAlbum("IMSIStatusAlbum").put(imsiStatus.getImsi(), imsiStatus);
84 logger.debug(imsiStatus.getENodeBId() + ": enodeb added to imsi ip added " + outFields["IMSI_IP"]);
86 ENodeBStatus eNodeBStatus = getContextAlbum("ENodeBStatusAlbum").get(imsiStatus.getENodeBId());
87 if (eNodeBStatus == null) {
88 eNodeBStatus = new ENodeBStatus(imsiStatus.getENodeBId());
89 getContextAlbum("ENodeBStatusAlbum").put(eNodeBStatus.getENodeB(), eNodeBStatus);
90 logger.debug("new eNodeB added " + getContextAlbum("ENodeBStatusAlbum").get(imsiStatus.getENodeBId()));
93 eNodeBStatus.incrementDosCount();
94 getContextAlbum("ENodeBStatusAlbum").put(eNodeBStatus.getENodeB(), eNodeBStatus);
95 logger.debug(eNodeBStatus.getENodeB() + ": dosCount incremented to " + eNodeBStatus.getDosCount());
97 outFields["PROBE_ON"] = true;
98 outFields["TCP_ON"] = true;
99 outFields["THRESHOLD"] = 0;
100 outFields["PROFILE"] = "";
101 outFields["VERSION"] = "0.0.1";
102 outFields["BLACKLIST_ON"] = false;
104 logger.debug("out here5");