6rd / ds-lite: make the firewall-zones of nested-protocols configurable

SVN-Revision: 40020
This commit is contained in:
Steven Barth 2014-03-26 10:12:49 +00:00
parent 2a893c2057
commit 0555ebf66d
9 changed files with 28 additions and 12 deletions

View file

@ -54,6 +54,7 @@ setup_interface () {
json_add_int ip6prefixlen "$ip6rdprefixlen" json_add_int ip6prefixlen "$ip6rdprefixlen"
json_add_string tunlink "$INTERFACE" json_add_string tunlink "$INTERFACE"
[ -n "$IFACE6RD_DELEGATE" ] && json_add_boolean delegate "$IFACE6RD_DELEGATE" [ -n "$IFACE6RD_DELEGATE" ] && json_add_boolean delegate "$IFACE6RD_DELEGATE"
[ -n "$ZONE6RD" ] && json_add_string zone "$ZONE6RD"
json_close_object json_close_object
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"

View file

@ -15,14 +15,15 @@ proto_dhcp_init_config() {
proto_config_add_string iface6rd proto_config_add_string iface6rd
proto_config_add_string sendopts proto_config_add_string sendopts
proto_config_add_boolean delegate proto_config_add_boolean delegate
proto_config_add_string zone6rd
} }
proto_dhcp_setup() { proto_dhcp_setup() {
local config="$1" local config="$1"
local iface="$2" local iface="$2"
local ipaddr hostname clientid vendorid broadcast reqopts iface6rd sendopts delegate local ipaddr hostname clientid vendorid broadcast reqopts iface6rd sendopts delegate zone6rd
json_get_vars ipaddr hostname clientid vendorid broadcast reqopts iface6rd sendopts delegate json_get_vars ipaddr hostname clientid vendorid broadcast reqopts iface6rd sendopts delegate zone6rd
local opt dhcpopts local opt dhcpopts
for opt in $reqopts; do for opt in $reqopts; do
@ -37,6 +38,7 @@ proto_dhcp_setup() {
[ -n "$clientid" ] && clientid="-x 0x3d:${clientid//:/}" || clientid="-C" [ -n "$clientid" ] && clientid="-x 0x3d:${clientid//:/}" || clientid="-C"
[ -n "$iface6rd" ] && proto_export "IFACE6RD=$iface6rd" [ -n "$iface6rd" ] && proto_export "IFACE6RD=$iface6rd"
[ -n "$iface6rd" ] && append dhcpopts "-O 212" [ -n "$iface6rd" ] && append dhcpopts "-O 212"
[ -n "$zone6rd" ] && proto_export "ZONE6RD=$zone6rd"
[ "$delegate" = "0" ] && proto_export "IFACE6RD_DELEGATE=0" [ "$delegate" = "0" ] && proto_export "IFACE6RD_DELEGATE=0"
proto_export "INTERFACE=$config" proto_export "INTERFACE=$config"

View file

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=6rd PKG_NAME:=6rd
PKG_VERSION:=5 PKG_VERSION:=6
PKG_RELEASE:=1 PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk

View file

@ -14,8 +14,8 @@ proto_6rd_setup() {
local iface="$2" local iface="$2"
local link="6rd-$cfg" local link="6rd-$cfg"
local mtu df ttl ipaddr peeraddr ip6prefix ip6prefixlen ip4prefixlen tunlink sourcerouting local mtu df ttl ipaddr peeraddr ip6prefix ip6prefixlen ip4prefixlen tunlink sourcerouting zone
json_get_vars mtu df ttl ipaddr peeraddr ip6prefix ip6prefixlen ip4prefixlen tunlink sourcerouting json_get_vars mtu df ttl ipaddr peeraddr ip6prefix ip6prefixlen ip4prefixlen tunlink sourcerouting zone
[ -z "$ip6prefix" -o -z "$peeraddr" ] && { [ -z "$ip6prefix" -o -z "$peeraddr" ] && {
proto_notify_error "$cfg" "MISSING_ADDRESS" proto_notify_error "$cfg" "MISSING_ADDRESS"
@ -68,6 +68,10 @@ proto_6rd_setup() {
[ -n "$tunlink" ] && json_add_string link "$tunlink" [ -n "$tunlink" ] && json_add_string link "$tunlink"
proto_close_tunnel proto_close_tunnel
proto_add_data
[ -n "$zone" ] && json_add_string zone "$zone"
proto_close_data
proto_send_update "$cfg" proto_send_update "$cfg"
} }
@ -89,6 +93,7 @@ proto_6rd_init_config() {
proto_config_add_string "ip4prefixlen" proto_config_add_string "ip4prefixlen"
proto_config_add_string "tunlink" proto_config_add_string "tunlink"
proto_config_add_boolean "sourcerouting" proto_config_add_boolean "sourcerouting"
proto_config_add_string "zone"
} }
[ -n "$INCLUDE_ONLY" ] || { [ -n "$INCLUDE_ONLY" ] || {

View file

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=ds-lite PKG_NAME:=ds-lite
PKG_VERSION:=1 PKG_VERSION:=2
PKG_RELEASE:=1 PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk

View file

@ -14,8 +14,8 @@ proto_dslite_setup() {
local iface="$2" local iface="$2"
local link="dslite-$cfg" local link="dslite-$cfg"
local mtu ttl peeraddr ip6addr tunlink local mtu ttl peeraddr ip6addr tunlink zone
json_get_vars mtu ttl peeraddr ip6addr tunlink json_get_vars mtu ttl peeraddr ip6addr tunlink zone
[ -z "$peeraddr" ] && { [ -z "$peeraddr" ] && {
proto_notify_error "$cfg" "MISSING_ADDRESS" proto_notify_error "$cfg" "MISSING_ADDRESS"
@ -51,6 +51,10 @@ proto_dslite_setup() {
[ -n "$tunlink" ] && json_add_string link "$tunlink" [ -n "$tunlink" ] && json_add_string link "$tunlink"
proto_close_tunnel proto_close_tunnel
proto_add_data
[ -n "$zone" ] && json_add_string zone "$zone"
proto_close_data
proto_send_update "$cfg" proto_send_update "$cfg"
} }
@ -67,6 +71,7 @@ proto_dslite_init_config() {
proto_config_add_string "tunlink" proto_config_add_string "tunlink"
proto_config_add_int "mtu" proto_config_add_int "mtu"
proto_config_add_int "ttl" proto_config_add_int "ttl"
proto_config_add_string "zone"
} }
[ -n "$INCLUDE_ONLY" ] || { [ -n "$INCLUDE_ONLY" ] || {

View file

@ -8,14 +8,14 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=odhcp6c PKG_NAME:=odhcp6c
PKG_VERSION:=2014-03-13 PKG_VERSION:=2014-03-26
PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=git://github.com/sbyx/odhcp6c.git PKG_SOURCE_URL:=git://github.com/sbyx/odhcp6c.git
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=9c7c654cb2d5ac6ac536f603cd5a9372416e91da PKG_SOURCE_VERSION:=6c8109e0c77d5a54950ba607d1ec1f83d5efb5b7
PKG_MAINTAINER:=Steven Barth <steven@midlink.org> PKG_MAINTAINER:=Steven Barth <steven@midlink.org>
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk

View file

@ -84,6 +84,7 @@ setup_interface () {
json_add_string proto "dslite" json_add_string proto "dslite"
json_add_string peeraddr "$AFTR_IP" json_add_string peeraddr "$AFTR_IP"
json_add_string tunlink "$INTERFACE" json_add_string tunlink "$INTERFACE"
[ -n "$ZONE_DSLITE" ] && json_add_string zone "$ZONE_DSLITE"
[ -n "$IFACE_DSLITE_DELEGATE" ] && json_add_boolean delegate "$IFACE_DSLITE_DELEGATE" [ -n "$IFACE_DSLITE_DELEGATE" ] && json_add_boolean delegate "$IFACE_DSLITE_DELEGATE"
json_close_object json_close_object
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"

View file

@ -14,6 +14,7 @@ proto_dhcpv6_init_config() {
proto_config_add_string 'norelease:bool' proto_config_add_string 'norelease:bool'
proto_config_add_string 'ip6prefix:ip6addr' proto_config_add_string 'ip6prefix:ip6addr'
proto_config_add_string iface_dslite proto_config_add_string iface_dslite
proto_config_add_string zone_dslite
proto_config_add_string 'ifaceid:ip6addr' proto_config_add_string 'ifaceid:ip6addr'
proto_config_add_string 'sourcerouting:bool' proto_config_add_string 'sourcerouting:bool'
proto_config_add_string "userclass" proto_config_add_string "userclass"
@ -25,8 +26,8 @@ proto_dhcpv6_setup() {
local config="$1" local config="$1"
local iface="$2" local iface="$2"
local reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite ifaceid sourcerouting userclass vendorclass delegate local reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite ifaceid sourcerouting userclass vendorclass delegate zone_dslite
json_get_vars reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite ifaceid sourcerouting userclass vendorclass delegate json_get_vars reqaddress reqprefix clientid reqopts noslaaconly forceprefix norelease ip6prefix iface_dslite ifaceid sourcerouting userclass vendorclass delegate zone_dslite
# Configure # Configure
@ -58,6 +59,7 @@ proto_dhcpv6_setup() {
[ -n "$iface_dslite" ] && proto_export "IFACE_DSLITE=$iface_dslite" [ -n "$iface_dslite" ] && proto_export "IFACE_DSLITE=$iface_dslite"
[ "$sourcerouting" != "0" ] && proto_export "SOURCE_ROUTING=1" [ "$sourcerouting" != "0" ] && proto_export "SOURCE_ROUTING=1"
[ "$delegate" = "0" ] && proto_export "IFACE_DSLITE_DELEGATE=0" [ "$delegate" = "0" ] && proto_export "IFACE_DSLITE_DELEGATE=0"
[ -n "$zone_dslite" ] && proto_export "ZONE_DSLITE=$zone_dslite"
proto_export "INTERFACE=$config" proto_export "INTERFACE=$config"
proto_run_command "$config" odhcp6c \ proto_run_command "$config" odhcp6c \