Change in osmo-bsc[master]: hodec 2: do intra-cell congestion resolution by Assignment

neels gerrit-no-reply at lists.osmocom.org
Tue Jun 1 17:29:43 UTC 2021


neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24364 )

Change subject: hodec 2: do intra-cell congestion resolution by Assignment
......................................................................

hodec 2: do intra-cell congestion resolution by Assignment

So far we do all channel reassignments by Handover Command. Since
osmo-bsc now supports rassignment of ongoing voice calls, do intra-cell
congestion resolution by Assignment Command.

In effect, add support for expecting an Assignment Command in
handover_test, and expect assignments instead of handovers for
intra-cell congestion resolution test cases.

Related: SYS#5330 OS#3277
Change-Id: Id56a890106b93fcee67ac9401b890e7b63bba421
---
M include/osmocom/bsc/gsm_data.h
M src/osmo-bsc/gsm_data.c
M src/osmo-bsc/handover_decision_2.c
M tests/handover/handover_test.c
M tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty
M tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty
M tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty
M tests/handover/test_amr_tch_h_to_f_congestion.ho_vty
M tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty
M tests/handover/test_balance_congestion_tchf_tchh.ho_vty
M tests/handover/test_congestion_intra_vs_inter_cell.ho_vty
M tests/handover/test_disabled_ho_and_as.ho_vty
M tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty
M tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty
M tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty
M tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty
16 files changed, 172 insertions(+), 50 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, but someone else must approve
  fixeria: Looks good to me, approved



diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 58ec124..348735e 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -130,6 +130,7 @@
 enum assign_for {
 	ASSIGN_FOR_NONE,
 	ASSIGN_FOR_BSSMAP_REQ,
+	ASSIGN_FOR_CONGESTION_RESOLUTION,
 };
 
 extern const struct value_string assign_for_names[];
diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c
index 09fb64f..0c85503 100644
--- a/src/osmo-bsc/gsm_data.c
+++ b/src/osmo-bsc/gsm_data.c
@@ -942,6 +942,7 @@
 const struct value_string assign_for_names[] = {
 	OSMO_VALUE_STRING(ASSIGN_FOR_NONE),
 	OSMO_VALUE_STRING(ASSIGN_FOR_BSSMAP_REQ),
+	OSMO_VALUE_STRING(ASSIGN_FOR_CONGESTION_RESOLUTION),
 	{}
 };
 
diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c
index 5b7d4b1..84ddfa4 100644
--- a/src/osmo-bsc/handover_decision_2.c
+++ b/src/osmo-bsc/handover_decision_2.c
@@ -29,6 +29,7 @@
 
 #include <osmocom/bsc/debug.h>
 #include <osmocom/bsc/gsm_data.h>
+#include <osmocom/bsc/assignment_fsm.h>
 #include <osmocom/bsc/handover_fsm.h>
 #include <osmocom/bsc/handover_decision.h>
 #include <osmocom/bsc/handover_decision_2.h>
@@ -812,7 +813,6 @@
 /* Trigger handover or assignment depending on the target BTS */
 static int trigger_local_ho_or_as(struct ho_candidate *c, uint8_t requirements)
 {
-	struct handover_out_req req;
 	int afs_bias = 0;
 	bool full_rate = false;
 
@@ -868,23 +868,25 @@
 	}
 
 	/* trigger handover or assignment */
-	if  (c->current.bts == c->target.bts)
+	if  (c->current.bts == c->target.bts) {
 		LOGPHOLCHAN(c->current.lchan, LOGL_NOTICE, "Triggering assignment to %s, due to %s\n",
 			    full_rate ? "TCH/F" : "TCH/H",
 			    ho_reason_name(global_ho_reason));
-	else
+		reassignment_request_to_chan_type(ASSIGN_FOR_CONGESTION_RESOLUTION, c->current.lchan,
+						  full_rate? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H);
+	} else {
+		struct handover_out_req req = {
+			.from_hodec_id = HODEC2,
+			.old_lchan = c->current.lchan,
+			.new_lchan_type = full_rate? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H,
+		};
+		bts_cell_ab(&req.target_cell_ab, c->target.bts);
 		LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_INFO,
 				 "Triggering handover to %s, due to %s\n",
 				 full_rate ? "TCH/F" : "TCH/H",
 				 ho_reason_name(global_ho_reason));
-
-	req = (struct handover_out_req){
-		.from_hodec_id = HODEC2,
-		.old_lchan = c->current.lchan,
-		.new_lchan_type = full_rate? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H,
-	};
-	bts_cell_ab(&req.target_cell_ab, c->target.bts);
-	handover_request(&req);
+		handover_request(&req);
+	}
 	return 0;
 }
 
diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c
index 6f633cd..b2eb5cc 100644
--- a/tests/handover/handover_test.c
+++ b/tests/handover/handover_test.c
@@ -35,6 +35,7 @@
 #include <osmocom/bsc/bsc_subscriber.h>
 #include <osmocom/bsc/lchan_select.h>
 #include <osmocom/bsc/lchan_fsm.h>
+#include <osmocom/bsc/assignment_fsm.h>
 #include <osmocom/bsc/handover_decision.h>
 #include <osmocom/bsc/system_information.h>
 #include <osmocom/bsc/handover.h>
@@ -372,6 +373,10 @@
 	snprintf(imsi, sizeof(imsi), "%06u", next_imsi);
 	lchan->conn->bsub = bsc_subscr_find_or_create_by_imsi(net->bsc_subscribers, imsi, BSUB_USE_CONN);
 
+	/* Set RTP data that the MSC normally would have sent */
+	OSMO_STRLCPY_ARRAY(conn->user_plane.msc_assigned_rtp_addr, "1.2.3.4");
+	conn->user_plane.msc_assigned_rtp_port = 1234;
+
 	/* kick the FSM from INIT through to the ACTIVE state */
 	osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_MO_COMPL_L3, NULL);
 	osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CONN_CFM, NULL);
@@ -535,6 +540,9 @@
 static struct gsm_lchan *new_ho_cmd = NULL;
 static struct gsm_lchan *last_ho_cmd = NULL;
 
+static struct gsm_lchan *new_as_cmd = NULL;
+static struct gsm_lchan *last_as_cmd = NULL;
+
 /* send channel activation ack */
 static void send_chan_act_ack(struct gsm_lchan *lchan, int act)
 {
@@ -553,6 +561,44 @@
 	abis_rsl_rcvmsg(msg);
 }
 
+/* Send RR Assignment Complete for SAPI[0] */
+static void send_assignment_complete(struct gsm_lchan *lchan)
+{
+	struct msgb *msg = msgb_alloc_headroom(256, 64, "RSL");
+	struct abis_rsl_rll_hdr *rh;
+	uint8_t chan_nr = gsm_lchan2chan_nr(lchan);
+	uint8_t *buf;
+	struct gsm48_hdr *gh;
+	struct gsm48_ho_cpl *hc;
+
+	fprintf(stderr, "- Send RR Assignment Complete for %s\n", gsm_lchan_name(lchan));
+
+	rh = (struct abis_rsl_rll_hdr *) msgb_put(msg, sizeof(*rh));
+	rh->c.msg_discr = ABIS_RSL_MDISC_RLL;
+	rh->c.msg_type = RSL_MT_DATA_IND;
+	rh->ie_chan = RSL_IE_CHAN_NR;
+	rh->chan_nr = chan_nr;
+	rh->ie_link_id = RSL_IE_LINK_IDENT;
+	rh->link_id = 0x00;
+
+	buf = msgb_put(msg, 3);
+	buf[0] = RSL_IE_L3_INFO;
+	buf[1] = (sizeof(*gh) + sizeof(*hc)) >> 8;
+	buf[2] = (sizeof(*gh) + sizeof(*hc)) & 0xff;
+
+	gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh));
+	hc = (struct gsm48_ho_cpl *) msgb_put(msg, sizeof(*hc));
+
+	gh->proto_discr = GSM48_PDISC_RR;
+	gh->msg_type = GSM48_MT_RR_ASS_COMPL;
+
+	msg->dst = lchan->ts->trx->rsl_link;
+	msg->l2h = (unsigned char *)rh;
+	msg->l3h = (unsigned char *)gh;
+
+	abis_rsl_rcvmsg(msg);
+}
+
 /* Send RLL Est Ind for SAPI[0] */
 static void send_est_ind(struct gsm_lchan *lchan)
 {
@@ -700,14 +746,21 @@
 		gh = (struct gsm48_hdr*)msg->l3h;
 		switch (gh->msg_type) {
 		case GSM48_MT_RR_HANDO_CMD:
-		case GSM48_MT_RR_ASS_CMD:
-			if (new_ho_cmd) {
+			if (new_ho_cmd || new_as_cmd) {
 				fprintf(stderr, "Test script is erratic: seen a Handover Command"
-					" while a previous Handover Command is still unhandled\n");
+					" while a previous Assignment or Handover Command is still unhandled\n");
 				exit(1);
 			}
 			new_ho_cmd = lchan;
 			break;
+		case GSM48_MT_RR_ASS_CMD:
+			if (new_ho_cmd || new_as_cmd) {
+				fprintf(stderr, "Test script is erratic: seen an Assignment Command"
+					" while a previous Assignment or Handover Command is still unhandled\n");
+				exit(1);
+			}
+			new_as_cmd = lchan;
+			break;
 		}
 		break;
 	case RSL_MT_IPAC_CRCX:
@@ -1037,22 +1090,40 @@
 
 static void _expect_ho_cmd(struct gsm_lchan *lchan)
 {
-	fprintf(stderr, "- Expecting Handover/Assignment Command at %s\n",
+	fprintf(stderr, "- Expecting Handover Command at %s\n",
 		gsm_lchan_name(lchan));
 
 	if (!new_ho_cmd) {
 		fprintf(stderr, "Test failed, no Handover Command\n");
 		exit(1);
 	}
-	fprintf(stderr, " * Got Handover/Assignment Command at %s\n", gsm_lchan_name(new_ho_cmd));
+	fprintf(stderr, " * Got Handover Command at %s\n", gsm_lchan_name(new_ho_cmd));
 	if (new_ho_cmd != lchan) {
-		fprintf(stderr, "Test failed, Handover/Assignment Command not on the expected lchan\n");
+		fprintf(stderr, "Test failed, Handover Command not on the expected lchan\n");
 		exit(1);
 	}
 	last_ho_cmd = new_ho_cmd;
 	new_ho_cmd = NULL;
 }
 
+static void _expect_as_cmd(struct gsm_lchan *lchan)
+{
+	fprintf(stderr, "- Expecting Assignment Command at %s\n",
+		gsm_lchan_name(lchan));
+
+	if (!new_as_cmd) {
+		fprintf(stderr, "Test failed, no Assignment Command\n");
+		exit(1);
+	}
+	fprintf(stderr, " * Got Assignment Command at %s\n", gsm_lchan_name(new_as_cmd));
+	if (new_as_cmd != lchan) {
+		fprintf(stderr, "Test failed, Assignment Command not on the expected lchan\n");
+		exit(1);
+	}
+	last_as_cmd = new_as_cmd;
+	new_as_cmd = NULL;
+}
+
 DEFUN(expect_chan, expect_chan_cmd,
       "expect-chan " LCHAN_ARGS,
       "Expect RSL Channel Activation of a specific lchan\n"
@@ -1073,6 +1144,16 @@
 	return CMD_SUCCESS;
 }
 
+DEFUN(expect_assignment_command, expect_assignment_command_cmd,
+      "expect-as-cmd " LCHAN_ARGS,
+      "Expect Assignment Command for a given lchan\n"
+      LCHAN_ARGS_DOC)
+{
+	VTY_ECHO();
+	_expect_as_cmd(parse_lchan_args(argv));
+	return CMD_SUCCESS;
+}
+
 DEFUN(ho_detection, ho_detection_cmd,
       "ho-detect",
       "Send Handover Detection to the most recent HO target lchan\n")
@@ -1109,7 +1190,7 @@
       "Expect a handover of a specific lchan to a specific target lchan;"
       " shorthand for expect-chan, ack-chan, expect-ho, ho-complete.\n"
       "lchan to handover from\n" LCHAN_ARGS_DOC
-      "lchan that to handover to\n" LCHAN_ARGS_DOC)
+      "lchan to handover to\n" LCHAN_ARGS_DOC)
 {
 	struct gsm_lchan *from = parse_lchan_args(argv);
 	struct gsm_lchan *to = parse_lchan_args(argv+4);
@@ -1119,6 +1200,31 @@
 	_expect_ho_cmd(from);
 	send_ho_detect(to);
 	send_ho_complete(to, true);
+
+	lchan_release_ack(from);
+	return CMD_SUCCESS;
+}
+
+DEFUN(expect_as, expect_as_cmd,
+      "expect-as from " LCHAN_ARGS " to " LCHAN_ARGS,
+      "Expect an intra-cell re-assignment of a specific lchan to a specific target lchan;"
+      " shorthand for expect-chan, ack-chan, expect-as, TODO.\n"
+      "lchan to be re-assigned elsewhere\n" LCHAN_ARGS_DOC
+      "new lchan to re-assign to\n" LCHAN_ARGS_DOC)
+{
+	struct gsm_lchan *from = parse_lchan_args(argv);
+	struct gsm_lchan *to = parse_lchan_args(argv+4);
+	VTY_ECHO();
+
+	_expect_chan_activ(to);
+	if (from->ts->trx->bts != to->ts->trx->bts) {
+		vty_out(vty, "%% Error: re-assignment only works within the same BTS%s", VTY_NEWLINE);
+		return CMD_WARNING;
+	}
+	_expect_as_cmd(from);
+	send_assignment_complete(to);
+	send_est_ind(to);
+
 	lchan_release_ack(from);
 	return CMD_SUCCESS;
 }
@@ -1209,9 +1315,11 @@
 	install_element(CONFIG_NODE, &expect_no_chan_cmd);
 	install_element(CONFIG_NODE, &expect_chan_cmd);
 	install_element(CONFIG_NODE, &expect_handover_command_cmd);
+	install_element(CONFIG_NODE, &expect_assignment_command_cmd);
 	install_element(CONFIG_NODE, &ho_detection_cmd);
 	install_element(CONFIG_NODE, &ho_complete_cmd);
 	install_element(CONFIG_NODE, &expect_ho_cmd);
+	install_element(CONFIG_NODE, &expect_as_cmd);
 	install_element(CONFIG_NODE, &ho_failed_cmd);
 	install_element(CONFIG_NODE, &expect_ts_use_cmd);
 	install_element(CONFIG_NODE, &codec_f_cmd);
@@ -1330,7 +1438,8 @@
 
 	osmo_init_logging2(ctx, &log_info);
 
-	log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_NONE);
+	log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME);
+	log_set_print_filename_pos(osmo_stderr_target, LOG_FILENAME_POS_LINE_END);
 	log_set_print_category(osmo_stderr_target, 1);
 	log_set_print_category_hex(osmo_stderr_target, 0);
 	log_set_print_level(osmo_stderr_target, 1);
@@ -1349,6 +1458,7 @@
 	lchan_fsm_init();
 	bsc_subscr_conn_fsm_init();
 	handover_fsm_init();
+	assignment_fsm_init();
 
 	ho_set_algorithm(bsc_gsmnet->ho, 2);
 	ho_set_ho_active(bsc_gsmnet->ho, true);
@@ -1437,3 +1547,12 @@
 {
 	return "fake-ci";
 }
+const struct mgcp_conn_peer *osmo_mgcpc_ep_ci_get_rtp_info(const struct osmo_mgcpc_ep_ci *ci)
+{
+	static struct mgcp_conn_peer ret = {
+		.addr = "1.2.3.4",
+		.port = 1234,
+		.endpoint = "fake-endpoint",
+	};
+	return &ret;
+}
diff --git a/tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty
index d6515fc..84f34ff 100644
--- a/tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty
+++ b/tests/handover/test_amr_tch_f_to_h_congestion_assignment.ho_vty
@@ -14,6 +14,5 @@
 meas-rep lchan 0 0 6 0 rxlev 20 rxqual 0 ta 0
 expect-no-chan
 congestion-check
-expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 6 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0 states * TCH/F - - - TCH/HH - -
-
diff --git a/tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty
index e7778d0..2fa08da 100644
--- a/tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty
+++ b/tests/handover/test_amr_tch_f_to_h_congestion_assignment_2.ho_vty
@@ -15,10 +15,10 @@
 meas-rep lchan 0 0 6 0 rxlev 20 rxqual 0 ta 0
 expect-no-chan
 congestion-check
-expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 6 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0 states * TCH/F - - - TCH/HH - -
 congestion-check
-expect-ho from lchan 0 0 5 0 to lchan 0 0 2 0
+expect-as from lchan 0 0 5 0 to lchan 0 0 2 0
 expect-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/-H - -
 congestion-check
 expect-no-chan
diff --git a/tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty b/tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty
index ffa3614..0dca250 100644
--- a/tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty
+++ b/tests/handover/test_amr_tch_f_to_h_congestion_assignment_3.ho_vty
@@ -10,6 +10,6 @@
 meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 30
 expect-no-chan
 congestion-check
-expect-ho from lchan 0 0 1 0 to lchan 0 0 5 1
+expect-as from lchan 0 0 1 0 to lchan 0 0 5 1
 expect-ts-use trx 0 0 states * - TCH/F - - TCH/HH - -
 
diff --git a/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty b/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty
index 4d1194c..0252d9f 100644
--- a/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty
+++ b/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty
@@ -10,5 +10,5 @@
 meas-rep lchan 0 0 4 0 rxlev 30 rxqual 0 ta 0
 expect-no-chan
 congestion-check
-expect-ho from lchan 0 0 4 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 4 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0 states * TCH/F - - - - - *
diff --git a/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty
index 7cbcd4b..fecd068 100644
--- a/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty
+++ b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty
@@ -12,6 +12,6 @@
 meas-rep repeat 10 lchan 1 0 4 0 rxlev 30 rxqual 0 ta 0 neighbors 20
 expect-no-chan
 congestion-check
-expect-ho from lchan 1 0 4 0 to lchan 1 0 1 0
+expect-as from lchan 1 0 4 0 to lchan 1 0 1 0
 expect-ts-use trx 0 0 states * - - - - - - *
 expect-ts-use trx 1 0 states * TCH/F - - - - - *
diff --git a/tests/handover/test_balance_congestion_tchf_tchh.ho_vty b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty
index 62f07bf..f151b2a 100644
--- a/tests/handover/test_balance_congestion_tchf_tchh.ho_vty
+++ b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty
@@ -23,7 +23,7 @@
 set-ts-use trx 0 0 states		*	TCH/F	TCH/F	-	-	TCH/HH  TCH/HH  TCH/HH
 meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0
 congestion-check
-expect-ho from lchan 0 0 5 0 to lchan 0 0 3 0
+expect-as from lchan 0 0 5 0 to lchan 0 0 3 0
 
 # Now similar load percentages, just with different min-free-slots settings for tch/f vs tch/h.
 
@@ -50,4 +50,4 @@
 set-ts-use trx 0 0 states		*	TCH/F	TCH/F	-	-	TCH/HH  TCH/HH  TCH/H-
 meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0
 congestion-check
-expect-ho from lchan 0 0 5 0 to lchan 0 0 3 0
+expect-as from lchan 0 0 5 0 to lchan 0 0 3 0
diff --git a/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty b/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty
index d93f56c..ddf6802 100644
--- a/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty
+++ b/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty
@@ -12,7 +12,7 @@
 expect-no-chan
 
 congestion-check
-expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 6 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0 states * TCH/F - - - TCH/H- - *
 expect-ts-use trx 1 0 states * - - - - - - *
 
@@ -27,7 +27,7 @@
 expect-no-chan
 
 congestion-check
-expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 5 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- *
 expect-ts-use trx 1 0 states * - - - - - - *
 
@@ -42,7 +42,7 @@
 expect-no-chan
 
 congestion-check
-expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 5 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- *
 expect-ts-use trx 1 0 states * - - - - - - *
 
@@ -57,7 +57,7 @@
 expect-no-chan
 
 congestion-check
-expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 5 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- *
 expect-ts-use trx 1 0 states * - - - - - - *
 
@@ -72,7 +72,7 @@
 expect-no-chan
 
 congestion-check
-expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 5 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- *
 expect-ts-use trx 1 0 states * - - - - - - *
 
@@ -87,7 +87,7 @@
 expect-no-chan
 
 congestion-check
-expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 6 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0 states * TCH/F - - - TCH/H- - *
 expect-ts-use trx 1 0 states * - - - - - - *
 
diff --git a/tests/handover/test_disabled_ho_and_as.ho_vty b/tests/handover/test_disabled_ho_and_as.ho_vty
index ffd0311..586c3a7 100644
--- a/tests/handover/test_disabled_ho_and_as.ho_vty
+++ b/tests/handover/test_disabled_ho_and_as.ho_vty
@@ -19,7 +19,7 @@
  bts 0
   handover2 assignment 1
 meas-rep lchan 0 0 5 0 rxlev 0 rxqual 0 ta 0 neighbors 30
-expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 5 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0 states * TCH/F - - - - - -
 network
  bts 0
diff --git a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty
index 85b00e8..6990132 100644
--- a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty
+++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty
@@ -22,11 +22,11 @@
 expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F pdch *
 
 congestion-check
-expect-ho from lchan 0 0 5 0 to lchan 0 0 6 0
+expect-as from lchan 0 0 5 0 to lchan 0 0 6 0
 expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch TCH/H- *
 
 congestion-check
-expect-ho from lchan 0 0 4 0 to lchan 0 0 6 1
+expect-as from lchan 0 0 4 0 to lchan 0 0 6 1
 expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch pdch TCH/HH *
 
 congestion-check
@@ -37,11 +37,11 @@
 expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch TCH/HH *
 
 congestion-check
-expect-ho from lchan 0 0 4 0 to lchan 0 0 5 0
+expect-as from lchan 0 0 4 0 to lchan 0 0 5 0
 expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch TCH/H- TCH/HH *
 
 congestion-check
-expect-ho from lchan 0 0 1 0 to lchan 0 0 5 1
+expect-as from lchan 0 0 1 0 to lchan 0 0 5 1
 expect-ts-use trx 0 0 states * - TCH/F TCH/F pdch TCH/HH TCH/HH *
 
 congestion-check
@@ -52,11 +52,11 @@
 expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch TCH/HH TCH/HH *
 
 congestion-check
-expect-ho from lchan 0 0 1 0 to lchan 0 0 4 0
+expect-as from lchan 0 0 1 0 to lchan 0 0 4 0
 expect-ts-use trx 0 0 states * - TCH/F TCH/F TCH/H- TCH/HH TCH/HH *
 
 congestion-check
-expect-ho from lchan 0 0 2 0 to lchan 0 0 4 1
+expect-as from lchan 0 0 2 0 to lchan 0 0 4 1
 expect-ts-use trx 0 0 states * - - TCH/F TCH/HH TCH/HH TCH/HH *
 
 congestion-check
diff --git a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty
index a798457..08bc151 100644
--- a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty
+++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty
@@ -14,14 +14,14 @@
 # (there must be at least one measurement report on each lchan for congestion check to work)
 meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
 congestion-check
-expect-ho from lchan 0 0 1 0 to lchan 0 0 4 0
+expect-as from lchan 0 0 1 0 to lchan 0 0 4 0
 expect-ts-use trx 0 0 states * pdch - - TCH/H- * * *
 
 # Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS
 set-ts-use trx 0 0 states * TCH/F - - TCH/H- * * *
 meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
 congestion-check
-expect-ho from lchan 0 0 1 0 to lchan 0 0 4 1
+expect-as from lchan 0 0 1 0 to lchan 0 0 4 1
 expect-ts-use trx 0 0 states * pdch - - TCH/HH * * *
 
 # Again, with the target being a dyn TS
@@ -36,12 +36,12 @@
 set-ts-use trx 1 0 states * TCH/F TCH/F - pdch * * *
 meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30
 congestion-check
-expect-ho from lchan 1 0 1 0 to lchan 1 0 4 0
+expect-as from lchan 1 0 1 0 to lchan 1 0 4 0
 expect-ts-use trx 1 0 states * pdch TCH/F - TCH/H- * * *
 
 # Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS
 set-ts-use trx 1 0 states * TCH/F TCH/F - TCH/H- * * *
 meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30
 congestion-check
-expect-ho from lchan 1 0 1 0 to lchan 1 0 4 1
+expect-as from lchan 1 0 1 0 to lchan 1 0 4 1
 expect-ts-use trx 1 0 states * pdch TCH/F - TCH/HH * * *
diff --git a/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty
index de9595b..bf1edf2 100644
--- a/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty
+++ b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty
@@ -14,14 +14,14 @@
 # (there must be at least one measurement report on each lchan for congestion check to work)
 meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
 congestion-check
-expect-ho from lchan 0 0 1 0 to lchan 0 0 2 0
+expect-as from lchan 0 0 1 0 to lchan 0 0 2 0
 expect-ts-use trx 0 0 states * pdch TCH/F - - * * *
 
 # Again with one more TCH/F occupied, there will still be two free TCH/F after HO on the dyn TS
 set-ts-use trx 0 0 states * TCH/H- - - TCH/F * * *
 meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
 congestion-check
-expect-ho from lchan 0 0 1 0 to lchan 0 0 2 0
+expect-as from lchan 0 0 1 0 to lchan 0 0 2 0
 expect-ts-use trx 0 0 states * pdch TCH/F - TCH/F * * *
 
 # (TCH/H -> TCH/F onto a dyn TS will always make TCH/H congestion worse, so there is no useful test case left here)
diff --git a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty
index b25cf96..6548360 100644
--- a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty
+++ b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty
@@ -10,7 +10,7 @@
 set-ts-use    trx 0 0     states *    -     TCH/HH TCH/H- TCH/HH pdch - -
 meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0
 congestion-check
-expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 3 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0     states *    TCH/F TCH/HH pdch TCH/HH pdch - -
 
 # clear measurements for the next run
@@ -24,7 +24,7 @@
 meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0
 meas-rep lchan 0 0 4 1 rxlev 33 rxqual 0 ta 0
 congestion-check
-expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 3 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0     states *    TCH/F TCH/HH pdch TCH/HH pdch - -
 
 # clear measurements for the next run
@@ -38,5 +38,5 @@
 meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0
 meas-rep lchan 0 0 4 1 rxlev 31 rxqual 0 ta 0
 congestion-check
-expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0
+expect-as from lchan 0 0 3 0 to lchan 0 0 1 0
 expect-ts-use trx 0 0     states *    TCH/F TCH/HH pdch TCH/HH pdch - -

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24364
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Id56a890106b93fcee67ac9401b890e7b63bba421
Gerrit-Change-Number: 24364
Gerrit-PatchSet: 7
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210601/a355fbcd/attachment.htm>


More information about the gerrit-log mailing list