mirror of
https://github.com/qosmio/nss-packages.git
synced 2025-12-16 16:21:53 +00:00
The way ECM uci config is handled is pretty ugly due to it not specifying a
named section for 'general'.
Current:
```
➤ uci show ecm
ecm.global=ecm
ecm.global.acceleration_engine='nss'
ecm.@general[0]=general
ecm.@general[0].enable_bridge_filtering='0'
ecm.@general[0].disable_offloads='0'
ecm.@general[0].disable_flow_control='0'
ecm.@general[0].disable_interrupt_moderation='0'
ecm.@general[0].disable_gro='0'
```
None of the options require the use of unnamed sections
(like /etc/config/dhcp does when defining configs for multiple hosts)
With this change the config would produce:
```
ecm.global=ecm
ecm.global.acceleration_engine='nss'
ecm.general=ecm
ecm.general.enable_bridge_filtering='0'
ecm.general.disable_offloads='0'
ecm.general.disable_flow_control='0'
ecm.general.disable_interrupt_moderation='0'
ecm.general.disable_gro='0'
```
Which is a lot easier to read, and access programmatically.
We can also merge `global` and `general` into a single section as it
doesn't really make sense why we need global/general when it's
technically "ALL" globally applied.
For now, to ease users on the change, let's just stick to 2 sections.
**PLEASE NOTE: For users building their own images, and storing their**
**configs in 'files/etc/config/ecm' you will need to manually update the**
**config before compiling.**
For users using **sysupgrade** or installing without custom config at build
time 'files/etc/config/ecm' should be OK.
The following can be run manually on the config file 'ecm'
```sh
conf=/etc/config/ecm
uci -q show ecm.general || {
echo "Converting 'ECM' config to new format."
sed -i "s/config.*general.*/config ecm 'general'/g" "$conf"
}
```
Signed-off-by: Sean Khan <datapronix@protonmail.com>
26 lines
579 B
Bash
26 lines
579 B
Bash
#!/bin/sh
|
|
|
|
# convert old ecm config to new format
|
|
uci -q show ecm.general || {
|
|
echo "Converting 'ECM' config to new format."
|
|
sed -i "s/config.*general.*/config ecm 'general'/g" /etc/config/ecm
|
|
}
|
|
|
|
uci -q batch << EOF
|
|
delete firewall.qcanssecm
|
|
set firewall.qcanssecm=include
|
|
set firewall.qcanssecm.type=script
|
|
set firewall.qcanssecm.path=/etc/firewall.d/qca-nss-ecm
|
|
commit firewall
|
|
EOF
|
|
|
|
grep -q "fw3" /etc/init.d/firewall && {
|
|
uci -q batch << EOF
|
|
set firewall.qcanssecm.family=any
|
|
set firewall.qcanssecm.reload=1
|
|
commit firewall
|
|
EOF
|
|
}
|
|
|
|
exit 0
|