#!/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