2023-04-30 10:20:20 +00:00

61 lines
1.4 KiB
Bash

#!/bin/sh
# Copyright (c) 2019 Qualcomm Technologies, Inc.
# All Rights Reserved.
# Confidential and Proprietary - Qualcomm Technologies, Inc.
[ -z "$1" ] && echo "Error: should be run by rmnet" && exit 1
[ -z "$2" ] && echo "Error: should be run by rmnet" && exit 1
. /lib/functions.sh
. /lib/functions/network.sh
. /lib/netifd/netifd-proto.sh
setup_interface() {
INTERFACE=$1
CONFIG=/tmp/rmnet_$2_ipv6config
logger "rmnet setup_interface $1 $2 here"
#Fetch information from lower.
[ -f ${CONFIG} ] || {
proto_notify_error "$INTERFACE" "RMNET data call NOT ready"
proto_block_restart "$INTERFACE"
return
}
. ${CONFIG}
ADDRESSES=$PUBLIC_IP
interface=$IFNAME
#Send the information to the netifd
proto_init_update "$interface" 1 1
#ip and subnet
proto_add_ipv6_address "${PUBLIC_IP}" "128"
proto_add_ipv6_prefix "${PUBLIC_IP}/${PrefixLength}"
#router format should be separated by space
proto_add_ipv6_route "$GATEWAY" 128
proto_add_ipv6_route "::0" 0 "$GATEWAY" "" "" "${PUBLIC_IP}/${PrefixLength}"
#dns information tell the netifd.
for dns in $DNSSERVERS; do
proto_add_dns_server "$dns"
done
#Domain information tell the netifd
for domain in $domain; do
proto_add_dns_search "$domain"
done
#proto_add_data
[ -n "$ZONE" ] && json_add_string zone "$ZONE"
proto_close_data
proto_send_update "$INTERFACE"
}
case "$1" in
renew|bound)
setup_interface $2 $3
;;
esac
exit 0