nss-packages-qosmio/wwan/app/quectel_cm_5G/files/rmnet.script
Sean Khan 4b1cb1d940 wwan: Initial attempt at NSS offload
Initial attempt at getting NSS offload working with 4g/5g based
IPQ807x/50xx platforms.

I don't have a unit to test this on but everything seems to compile
after applying a few patches.

Ensure you are using the "NSS-12.5-K6.x-wwan" branch in your `feeds.conf`

```
src-git nss_packages https://github.com/qosmio/nss-packages.git;NSS-12.5-K6.x-wwan
```

Then install all packages
```
./scripts/feeds install -p nss_packages -a
```

Ensure you select the modules:
```
kmod-pcie_mhi
kmod-qmi_wwan_q
```

Work was derived from `https://github.com/coolsnowwolf/lede` and
`https://git.codelinaro.org/clo/qsdk/platform/vendor/qcom/opensource/qsdk/datarmnet`

Signed-off-by: Sean Khan <datapronix@protonmail.com>
2024-07-10 14:34:13 -04:00

67 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_ipv4config
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}
ip=$PUBLIC_IP
DNS=$DNSSERVERS
router=$GATEWAY
subnet=$NETMASK
interface=$IFNAME
#Send the information to the netifd
proto_init_update "$interface" 1 1
#ip and subnet
proto_add_ipv4_address "$ip" "${subnet:-255.255.255.0}"
#Any router? if not, remove below scripts
#router format should be separated by space
for i in $router; do
proto_add_ipv4_route "$i" 32 "" "$ip"
proto_add_ipv4_route 0.0.0.0 0 "$i" "$ip"
done
#dns information tell the netifd.
for dns in $DNS; 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)
setup_interface $2 $3
;;
esac
exit 0