From 9be656695c4b2e79b5a7bbb8cbf807bc435fcf46 Mon Sep 17 00:00:00 2001 From: Rahul Thakur Date: Wed, 17 Aug 2022 17:51:19 +0000 Subject: [PATCH] ponmngr: configure serial no. at start --- ponmngr/files/etc/init.d/xpon | 17 ++++++++++++++++- ponmngr/files/lib/xpon/broadcom.sh | 14 +++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/ponmngr/files/etc/init.d/xpon b/ponmngr/files/etc/init.d/xpon index ed0b7ec54..c25c145e8 100755 --- a/ponmngr/files/etc/init.d/xpon +++ b/ponmngr/files/etc/init.d/xpon @@ -1,15 +1,30 @@ #!/bin/sh /etc/rc.common START=19 -STOP=10 +STOP=91 USE_PROCD=1 . /lib/functions.sh include /lib/xpon +configure_serial_number() { + serial_number="$(uci -q get xpon.ani.serial_number)" + if [ ${#serial_number} -eq 12 ]; then + vendor_id="${serial_number:0:4}" + vssn="${serial_number:4:8}" + else + macaddr="$(fw_printenv -n ethaddr | tr -d ':' | tr 'a-z' 'A-Z')" + vendor_id="IOPS" + vssn="${macaddr:4:8}" + fi + + set_serial_number $vendor_id $vssn +} + start_service() { if [ "$(uci -q get xpon.ani.enable)" == "1" ]; then + configure_serial_number init_xpon fi } diff --git a/ponmngr/files/lib/xpon/broadcom.sh b/ponmngr/files/lib/xpon/broadcom.sh index a83756d7f..b19ed384b 100644 --- a/ponmngr/files/lib/xpon/broadcom.sh +++ b/ponmngr/files/lib/xpon/broadcom.sh @@ -1,18 +1,26 @@ #!/bin/sh -USE_PROCD=1 - . /lib/functions.sh +set_serial_number() { + vendor_id=$1 + vssn=$2 + + vendor_id="$(echo $vendor_id | hexdump -e '4/1 "%02X" "\n"')" + vendor_id=${vendor_id:0:8} + + bs /b/c gpon onu_sn={vendor_id=$vendor_id,vendor_specific=$vssn} +} + init_xpon() { procd_open_instance pon_msgd procd_set_param command bcm_msgd -c gpon procd_close_instance + procd_open_instance pon_daemon procd_set_param command omcid start -n procd_set_param respawn procd_close_instance - } deinit_xpon() {