OpenWrt--高通QCA9563添加多wan口方法

方案简介

高通QCA9563就一MAC接口,所以在软件适配的过程中,一般都是通过SGMII外接一个以太网芯片,在外接转发芯片上进行Vlan隔离,手动配置出一个WAN口出来。
在这里插入图片描述

添加方法

在脚本中适配多wan口

OpenWrt在单板启动过程中才会创建/etc/config/network配置文件,在network中会有config switch和config switch_vlan的相关配置节点。然后通过swconfig命令下发switch相关的配置,例如端口speed、pvid、vlan等。

#/target/linux/ar71xx/base-files/etc/board.d/02_network
#从lan口中移出一个做第二个WAN口,一般按照顺序来
mr3200)
	ucidef_add_switch "switch0" \
			"0@eth0" "3:lan" "4:lan" "5:lan" "1:wan1" "2:wan2"

生成隔离WAN口的vlan

最终生成的配置:

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'
config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '3 4 5 0t'
config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '1 0t'
config switch_vlan
	option device 'switch0'
	option vlan '3'
	option ports '2 0t'

由上面适配处可知,会调用ucidef_add_switch函数。ucidef_add_switch会解析上面传入的参数,生成config switch、config switch_vlan配置信息。
然后调用到_uci_finish_switch_roles来配置每个一端口角色,最终根据ucidef_set_interface " r o l e " i f n a m e " role" ifname " role"ifname"devices"来自动生成配置。

#适配多WAN口匹配/package/base-files/files/lib/functions/uci-default.sh
ucidef_set_interface() {
	local network=$1; shift
	[ -z "$network" ] && return
	json_select_object network
	json_select_object "$network"
	while [ -n "$1" ]; do
		local opt=$1; shift
		local val=$1; shift

		[ -n "$opt" -a -n "$val" ] || break

		json_add_string "$opt" "$val"
	done
	if ! json_is_a protocol string; then
		case "$network" in
			lan) json_add_string protocol static ;;
			wan) json_add_string protocol dhcp ;;
			wan1) json_add_string protocol dhcp ;;#添加多WAN口配置
			wan2) json_add_string protocol dhcp ;;#添加多WAN口配置
			*) json_add_string protocol none ;;
		esac
	fi
	json_select ..
	json_select ..
}

加入默认防火墙

/package/network/config/firewall/files/
	list   network		'wan'
	list   network		'wan1'
	list   network		'wan2'
	list   network		'wan16'  ipv6的配置
	list   network		'wan26'
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值