Change in osmo-bsc[master]: remote-BSS neighbors: allow only one cell ID

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Neels Hofmeyr gerrit-no-reply at lists.osmocom.org
Tue Oct 16 13:13:46 UTC 2018


Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/11371


Change subject: remote-BSS neighbors: allow only one cell ID
......................................................................

remote-BSS neighbors: allow only one cell ID

I believe I have initially misinterpreted the idea behind sending a Cell
Identifier List in BSSMAP Handover Required messages. Instead of associating N
Cell Identifiers with one ARFCN+BSIC, the idea is to add up N separate
ARFCN+BSIC's Cell Identifiers into a list. To keep the door open for future
code simplification, make sure to allow only one Cell Identifier per remote
ARFCN+BSIC on the VTY UI.

Related: OS#3656
Change-Id: Ifb9212fede2333ad68db94188b5cda4fcabe02f8
---
M src/osmo-bsc/neighbor_ident_vty.c
M tests/neighbor_ident.vty
2 files changed, 112 insertions(+), 21 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/11371/1

diff --git a/src/osmo-bsc/neighbor_ident_vty.c b/src/osmo-bsc/neighbor_ident_vty.c
index 409153b..203b150 100644
--- a/src/osmo-bsc/neighbor_ident_vty.c
+++ b/src/osmo-bsc/neighbor_ident_vty.c
@@ -258,6 +258,7 @@
 {
 	int rc;
 	struct gsm_bts *local_neigh;
+	const struct gsm0808_cell_id_list2 *exists;
 	struct gsm0808_cell_id_list2 cil;
 	struct gsm_bts *bts = vty->index;
 
@@ -289,6 +290,15 @@
 		return add_local_bts(vty, local_neigh);
 	}
 
+	/* Allow only one cell ID per remote-BSS neighbor, see OS#3656 */
+	exists = neighbor_ident_get(g_neighbor_cells, key);
+	if (exists) {
+		vty_out(vty, "%% Error: only one Cell Identifier entry is allowed per remote neighbor."
+			" Already have: %s -> %s%s", neighbor_ident_key_name(key),
+			gsm0808_cell_id_list_name(exists), VTY_NEWLINE);
+		return CMD_WARNING;
+	}
+
 	/* The cell_id is not known in this BSS, so it must be a remote cell. */
 	gsm0808_cell_id_to_list(&cil, cell_id);
 	rc = neighbor_ident_add(g_neighbor_cells, key, &cil);
diff --git a/tests/neighbor_ident.vty b/tests/neighbor_ident.vty
index 4f86383..2ce2231 100644
--- a/tests/neighbor_ident.vty
+++ b/tests/neighbor_ident.vty
@@ -211,29 +211,29 @@
 OsmoBSC(config-net-bts)# neighbor lac-ci 21 31
 % BTS 0 already had local neighbor BTS 1 with LAC 21 CI 31 and ARFCN 41 BSIC 11
 OsmoBSC(config-net-bts)# neighbor cgi 23 42 423 5 arfcn 23 bsic 42
-% BTS 0 to ARFCN 23 BSIC 42 now has 1 remote BSS Cell Identifier List entry
+% Error: only one Cell Identifier entry is allowed per remote neighbor. Already have: BTS 0 to ARFCN 23 BSIC 42 -> CGI[1]:{023-42-423-5}
 OsmoBSC(config-net-bts)# neighbor cgi 23 42 423 5 arfcn 23 bsic 42
-% BTS 0 to ARFCN 23 BSIC 42 now has 1 remote BSS Cell Identifier List entry
+% Error: only one Cell Identifier entry is allowed per remote neighbor. Already have: BTS 0 to ARFCN 23 BSIC 42 -> CGI[1]:{023-42-423-5}
 OsmoBSC(config-net-bts)# neighbor cgi 23 42 423 5 arfcn 23 bsic 42
-% BTS 0 to ARFCN 23 BSIC 42 now has 1 remote BSS Cell Identifier List entry
+% Error: only one Cell Identifier entry is allowed per remote neighbor. Already have: BTS 0 to ARFCN 23 BSIC 42 -> CGI[1]:{023-42-423-5}
 
 OsmoBSC(config-net-bts)# neighbor cgi 23 042 423 6 arfcn 23 bsic 42
-% BTS 0 to ARFCN 23 BSIC 42 now has 2 remote BSS Cell Identifier List entries
+% Error: only one Cell Identifier entry is allowed per remote neighbor. Already have: BTS 0 to ARFCN 23 BSIC 42 -> CGI[1]:{023-42-423-5}
 
 OsmoBSC(config-net-bts)# neighbor lac 456 arfcn 123 bsic 45
 % BTS 0 to ARFCN 123 BSIC 45 now has 1 remote BSS Cell Identifier List entry
 
 OsmoBSC(config-net-bts)# neighbor cgi 23 042 234 56 arfcn 23 bsic 42
-% BTS 0 to ARFCN 23 BSIC 42 now has 3 remote BSS Cell Identifier List entries
+% Error: only one Cell Identifier entry is allowed per remote neighbor. Already have: BTS 0 to ARFCN 23 BSIC 42 -> CGI[1]:{023-42-423-5}
 
 OsmoBSC(config-net-bts)# neighbor lac-ci 789 10 arfcn 423 bsic any
 % BTS 0 to ARFCN 423 (any BSIC) now has 1 remote BSS Cell Identifier List entry
 
 OsmoBSC(config-net-bts)# neighbor lac-ci 789 10 arfcn 423 bsic 63
-% BTS 0 to ARFCN 423 BSIC 63 now has 1 remote BSS Cell Identifier List entry
+% Error: only one Cell Identifier entry is allowed per remote neighbor. Already have: BTS 0 to ARFCN 423 BSIC 63 -> LAC-CI[1]:{789-10}
 
 OsmoBSC(config-net-bts)# neighbor lac-ci 789 10 arfcn 423 bsic 1
-% BTS 0 to ARFCN 423 BSIC 1 now has 1 remote BSS Cell Identifier List entry
+% Error: only one Cell Identifier entry is allowed per remote neighbor. Already have: BTS 0 to ARFCN 423 BSIC 1 -> LAC-CI[1]:{789-10}
 
 OsmoBSC(config-net-bts)# show running-config
 ...
@@ -244,12 +244,8 @@
   neighbor bts 1
   neighbor bts 2
   neighbor cgi 023 42 423 5 arfcn 23 bsic 42
-  neighbor cgi 023 042 423 6 arfcn 23 bsic 42
-  neighbor cgi 023 042 234 56 arfcn 23 bsic 42
   neighbor lac 456 arfcn 123 bsic 45
   neighbor lac-ci 789 10 arfcn 423 bsic any
-  neighbor lac-ci 789 10 arfcn 423 bsic 63
-  neighbor lac-ci 789 10 arfcn 423 bsic 1
 ... !neighbor 
 
 OsmoBSC(config-net-bts)# do show bts 0 neighbor arfcn 99 bsic any
@@ -271,13 +267,103 @@
 % Removed remote BSS neighbor BTS 0 to ARFCN 23 BSIC 42
 
 OsmoBSC(config-net-bts)# show running-config
-... !neighbor 
+
+Current configuration:
+!
+!
+log stderr
+ logging filter all 1
+ logging color 1
+ logging print category 0
+ logging timestamp 0
+ logging print file 1
+ logging level rll notice
+ logging level mm notice
+ logging level rr notice
+ logging level rsl notice
+ logging level nm info
+ logging level pag notice
+ logging level meas notice
+ logging level msc notice
+ logging level ho notice
+ logging level hodec notice
+ logging level ref notice
+ logging level nat notice
+ logging level ctrl notice
+ logging level filter debug
+ logging level pcu debug
+ logging level lcls notice
+ logging level chan notice
+ logging level ts notice
+ logging level as notice
+ logging level lglobal notice
+ logging level llapd notice
+ logging level linp notice
+ logging level lmux notice
+ logging level lmi notice
+ logging level lmib notice
+ logging level lsms notice
+ logging level lctrl notice
+ logging level lgtp notice
+ logging level lstats notice
+ logging level lgsup notice
+ logging level loap notice
+ logging level lss7 notice
+ logging level lsccp notice
+ logging level lsua notice
+ logging level lm3ua notice
+ logging level lmgcp notice
+ logging level ljibuf notice
+!
+stats interval 5
+!
+line vty
+ no login
+!
+e1_input
+ e1_line 0 driver ipa
+ e1_line 0 port 0
+ no e1_line 0 keepalive
+cs7 instance 0
+ point-code 0.23.3
+ asp asp-clnt-msc-0 2905 0 m3ua
+ as as-clnt-msc-0 m3ua
+  asp asp-clnt-msc-0
+  routing-key 0 0.23.3
+network
+ network country code 901
+ mobile network code 70
+ encryption a5 1 3
+ neci 0
+ paging any use tch 0
+ bts 0
+  type sysmobts
+  band DCS1800
+  cell_identity 30
+  location_area_code 20
+  base_station_id_code 10
+  ms max power 15
+  cell reselection hysteresis 4
+  rxlev access min 0
+  radio-link-timeout 32
+  channel allocator ascending
+  rach tx integer 9
+  rach max transmission 7
+  channel-descrption attach 1
+  channel-descrption bs-pa-mfrms 5
+  channel-descrption bs-ag-blks-res 1
+  no access-control-class-ramping
+  access-control-class-ramping-step-interval dynamic
+  access-control-class-ramping-step-size 1
+  early-classmark-sending forbidden
+  early-classmark-sending-3g allowed
+  ip.access unit_id 1800 0
+  oml ip.access stream_id 255 line 0
+  neighbor-list mode automatic
   neighbor bts 1
   neighbor bts 2
   neighbor lac 456 arfcn 123 bsic 45
   neighbor lac-ci 789 10 arfcn 423 bsic any
-  neighbor lac-ci 789 10 arfcn 423 bsic 63
-  neighbor lac-ci 789 10 arfcn 423 bsic 1
 ... !neighbor 
 
 OsmoBSC(config-net-bts)# no neighbor arfcn 123 bsic 45
@@ -288,8 +374,6 @@
   neighbor bts 1
   neighbor bts 2
   neighbor lac-ci 789 10 arfcn 423 bsic any
-  neighbor lac-ci 789 10 arfcn 423 bsic 63
-  neighbor lac-ci 789 10 arfcn 423 bsic 1
 ... !neighbor 
 
 OsmoBSC(config-net-bts)# no neighbor arfcn 423 bsic any
@@ -299,22 +383,19 @@
 ... !neighbor 
   neighbor bts 1
   neighbor bts 2
-  neighbor lac-ci 789 10 arfcn 423 bsic 63
-  neighbor lac-ci 789 10 arfcn 423 bsic 1
 ... !neighbor 
 
 OsmoBSC(config-net-bts)# no neighbor arfcn 423 bsic 63
-% Removed remote BSS neighbor BTS 0 to ARFCN 423 BSIC 63
+% Cannot remove, no such neighbor: BTS 0 to ARFCN 423 BSIC 63
 
 OsmoBSC(config-net-bts)# show running-config
 ... !neighbor 
   neighbor bts 1
   neighbor bts 2
-  neighbor lac-ci 789 10 arfcn 423 bsic 1
 ... !neighbor 
 
 OsmoBSC(config-net-bts)# no neighbor arfcn 423 bsic 1
-% Removed remote BSS neighbor BTS 0 to ARFCN 423 BSIC 1
+% Cannot remove, no such neighbor: BTS 0 to ARFCN 423 BSIC 1
 
 OsmoBSC(config-net-bts)# show running-config
 ... !neighbor 

-- 
To view, visit https://gerrit.osmocom.org/11371
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifb9212fede2333ad68db94188b5cda4fcabe02f8
Gerrit-Change-Number: 11371
Gerrit-PatchSet: 1
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181016/0ba96fd2/attachment.htm>


More information about the gerrit-log mailing list