0003-odhcp6c-backport-from-LEDE-0d49f9f4b4da9d1960f82e68ae797290e4b9c434.patch 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. From: Matthias Schiffer <mschiffer@universe-factory.net>
  2. Date: Tue, 17 Jan 2017 22:08:21 +0100
  3. Subject: odhcp6c: backport from LEDE 0d49f9f4b4da9d1960f82e68ae797290e4b9c434
  4. diff --git a/package/network/ipv6/odhcp6c/Makefile b/package/network/ipv6/odhcp6c/Makefile
  5. index 3705705f6540dc841c7041e81f6d208a41a1f08a..a8e45588a52859daf14c68c665a53690b9d09be2 100644
  6. --- a/package/network/ipv6/odhcp6c/Makefile
  7. +++ b/package/network/ipv6/odhcp6c/Makefile
  8. @@ -8,15 +8,16 @@
  9. include $(TOPDIR)/rules.mk
  10. PKG_NAME:=odhcp6c
  11. -PKG_VERSION:=2016-02-08
  12. +PKG_VERSION:=2017-01-07
  13. PKG_RELEASE=$(PKG_SOURCE_VERSION)
  14. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
  15. PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
  16. -PKG_SOURCE_URL:=https://github.com/openwrt/odhcp6c.git
  17. +PKG_SOURCE_URL:=git://git.lede-project.org/project/odhcp6c.git
  18. PKG_SOURCE_PROTO:=git
  19. -PKG_SOURCE_VERSION:=dc186d6d2b0dd4ad23ca5fc69c00e81f796ff6d9
  20. -PKG_MAINTAINER:=Steven Barth <steven@midlink.org>
  21. +PKG_SOURCE_VERSION:=d420f49396c627ce1072b83170889baf0720bc8b
  22. +PKG_MIRROR_HASH:=a7c599b5600b6cca9aec221dd32fc7754e0e942b0192bd902f1e789f53345127
  23. +PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
  24. PKG_LICENSE:=GPL-2.0
  25. include $(INCLUDE_DIR)/package.mk
  26. @@ -30,7 +31,7 @@ define Package/odhcp6c
  27. SECTION:=net
  28. CATEGORY:=Network
  29. TITLE:=Embedded DHCPv6-client for OpenWrt
  30. - DEPENDS:=+kmod-ipv6
  31. + DEPENDS:=@IPV6 +libubox
  32. endef
  33. define Package/odhcp6c/config
  34. diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.script b/package/network/ipv6/odhcp6c/files/dhcpv6.script
  35. index 677d35f4f92e82d6a7fe9ca01a35e071097baca8..1bb5e771b6dc80c1f5bceef88508d92cc69b1d3a 100755
  36. --- a/package/network/ipv6/odhcp6c/files/dhcpv6.script
  37. +++ b/package/network/ipv6/odhcp6c/files/dhcpv6.script
  38. @@ -77,6 +77,11 @@ setup_interface () {
  39. -z "$RA_DNS" -a "$FAKE_ROUTES" = 1 ]; then
  40. RA_ROUTES="::/0,$SERVER,$valid,4096"
  41. fi
  42. +
  43. + # RFC 7278
  44. + if [ "$mask" -eq 64 -a -z "$PREFIXES" -a -n "$EXTENDPREFIX" ]; then
  45. + proto_add_ipv6_prefix "$addr/$mask,$preferred,$valid"
  46. + fi
  47. done
  48. for entry in $RA_ROUTES; do
  49. @@ -180,7 +185,7 @@ setup_interface () {
  50. # Apply IPv6 / ND configuration
  51. HOPLIMIT=$(cat /proc/sys/net/ipv6/conf/$device/hop_limit)
  52. [ -n "$RA_HOPLIMIT" -a -n "$HOPLIMIT" ] && [ "$RA_HOPLIMIT" -gt "$HOPLIMIT" ] && echo "$RA_HOPLIMIT" > /proc/sys/net/ipv6/conf/$device/hop_limit
  53. - [ -n "$RA_MTU" ] && [ "$RA_MTU" -gt 0 ] && echo "$RA_MTU" > /proc/sys/net/ipv6/conf/$device/mtu
  54. + [ -n "$RA_MTU" ] && [ "$RA_MTU" -ge 1280 ] && echo "$RA_MTU" > /proc/sys/net/ipv6/conf/$device/mtu 2>/dev/null
  55. [ -n "$RA_REACHABLE" ] && [ "$RA_REACHABLE" -gt 0 ] && echo "$RA_REACHABLE" > /proc/sys/net/ipv6/neigh/$device/base_reachable_time_ms
  56. [ -n "$RA_RETRANSMIT" ] && [ "$RA_RETRANSMIT" -gt 0 ] && echo "$RA_RETRANSMIT" > /proc/sys/net/ipv6/neigh/$device/retrans_time_ms
  57. @@ -209,6 +214,6 @@ case "$2" in
  58. esac
  59. # user rules
  60. -[ -f /etc/odhcp6c.user ] && . /etc/odhcp6c.user
  61. +[ -f /etc/odhcp6c.user ] && . /etc/odhcp6c.user "@"
  62. exit 0
  63. diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.sh b/package/network/ipv6/odhcp6c/files/dhcpv6.sh
  64. index 4a453fdc4d94d9298067a986b0e4c6054b6c0a60..9e3f6697335a55cf4be1751fec907a4ac93f09ec 100755
  65. --- a/package/network/ipv6/odhcp6c/files/dhcpv6.sh
  66. +++ b/package/network/ipv6/odhcp6c/files/dhcpv6.sh
  67. @@ -13,6 +13,7 @@ proto_dhcpv6_init_config() {
  68. proto_config_add_string 'reqopts:list(uinteger)'
  69. proto_config_add_string 'noslaaconly:bool'
  70. proto_config_add_string 'forceprefix:bool'
  71. + proto_config_add_string 'extendprefix:bool'
  72. proto_config_add_string 'norelease:bool'
  73. proto_config_add_string 'ip6prefix:ip6addr'
  74. proto_config_add_string iface_dslite
  75. @@ -29,14 +30,15 @@ proto_dhcpv6_init_config() {
  76. proto_config_add_int "soltimeout"
  77. proto_config_add_boolean fakeroutes
  78. proto_config_add_boolean sourcefilter
  79. + proto_config_add_boolean keep_ra_dnslifetime
  80. }
  81. proto_dhcpv6_setup() {
  82. local config="$1"
  83. local iface="$2"
  84. - local reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes sourcefilter
  85. - json_get_vars reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes sourcefilter
  86. + local reqaddress reqprefix clientid reqopts noslaaconly forceprefix extendprefix norelease ip6prefix iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes sourcefilter keep_ra_dnslifetime
  87. + json_get_vars reqaddress reqprefix clientid reqopts noslaaconly forceprefix extendprefix norelease ip6prefix iface_dslite iface_map iface_464xlat ifaceid userclass vendorclass delegate zone_dslite zone_map zone_464xlat zone soltimeout fakeroutes sourcefilter keep_ra_dnslifetime
  88. # Configure
  89. @@ -60,6 +62,8 @@ proto_dhcpv6_setup() {
  90. [ -n "$userclass" ] && append opts "-u$userclass"
  91. + [ "$keep_ra_dnslifetime" = "1" ] && append opts "-L"
  92. +
  93. for opt in $reqopts; do
  94. append opts "-r$opt"
  95. done
  96. @@ -78,6 +82,7 @@ proto_dhcpv6_setup() {
  97. [ -n "$zone" ] && proto_export "ZONE=$zone"
  98. [ "$fakeroutes" != "0" ] && proto_export "FAKE_ROUTES=1"
  99. [ "$sourcefilter" = "0" ] && proto_export "NOSOURCEFILTER=1"
  100. + [ "$extendprefix" = "1" ] && proto_export "EXTENDPREFIX=1"
  101. proto_export "INTERFACE=$config"
  102. proto_run_command "$config" odhcp6c \