odhcp6c: add workaround for broken extendprefix scenario
Extendprefix is typically used to extend an IPv6 RA prefix from a mobile wan link to the LAN; such scenario requires correct RA prefix settings like the on link flag not being set. However some mobile manufacter set the RA prefix on link flag which breaks basic IPv6 routing. Work around this issue by filtering out the route being equal to the extended prefix. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
This commit is contained in:
parent
6b06c2fb8e
commit
995193ccdb
2 changed files with 20 additions and 3 deletions
|
@ -8,13 +8,13 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=odhcp6c
|
PKG_NAME:=odhcp6c
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=4
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL=$(LEDE_GIT)/project/odhcp6c.git
|
PKG_SOURCE_URL=$(LEDE_GIT)/project/odhcp6c.git
|
||||||
PKG_SOURCE_DATE:=2017-09-02
|
PKG_SOURCE_DATE:=2017-09-05
|
||||||
PKG_SOURCE_VERSION:=51733a6d3bfe0fb9e8c53aea22231e5b8a1f64c3
|
PKG_SOURCE_VERSION:=51733a6d3bfe0fb9e8c53aea22231e5b8a1f64c3
|
||||||
PKG_MIRROR_HASH:=7ab8d3755c588b493792110d871c682cdd8e944ae21db64177321c464c104fb3
|
PKG_MIRROR_HASH:=fdccfb9a6cb00d6dbf1a3160bd36622ee8e188a9d58bcd282c71a9368972e184
|
||||||
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
|
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,23 @@ setup_interface () {
|
||||||
# RFC 7278
|
# RFC 7278
|
||||||
if [ "$mask" -eq 64 -a -z "$PREFIXES" -a -n "$EXTENDPREFIX" ]; then
|
if [ "$mask" -eq 64 -a -z "$PREFIXES" -a -n "$EXTENDPREFIX" ]; then
|
||||||
proto_add_ipv6_prefix "$addr/$mask,$preferred,$valid"
|
proto_add_ipv6_prefix "$addr/$mask,$preferred,$valid"
|
||||||
|
|
||||||
|
local raroutes=""
|
||||||
|
for route in $RA_ROUTES; do
|
||||||
|
local prefix="${route%%/*}"
|
||||||
|
local entry="${route#*/}"
|
||||||
|
local pmask="${entry%%,*}"
|
||||||
|
entry="${entry#*,}"
|
||||||
|
local gw="${entry%%,*}"
|
||||||
|
|
||||||
|
[ -z "$gw" -a "$mask" = "$pmask" ] && {
|
||||||
|
case "$addr" in
|
||||||
|
"${prefix%*::}"*) continue;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
raroutes="$raroutes $route"
|
||||||
|
done
|
||||||
|
RA_ROUTES="$raroutes"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue