2
0
forked from Ivasoft/openwrt

AR8216: make ARL age time configurable

The default TTL for address resolution table entries is 5 minutes
for all members of the AR8216 family. This can cause issues if
e.g. Wifi clients roam to another AP and their MAC appears on
another switch port suddenly. Then the client may not be reachable
until the old ARL entry expires.
I would have expected the switch to invalidate old entries if it
detects the same MAC on another port. But that's not the case.

Therefore make the TTL for ARL entries configurable.
The effective TTL will always be a multiple of 7 seconds.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

SVN-Revision: 48913
This commit is contained in:
John Crispin
2016-03-04 08:33:30 +00:00
parent 4eaa750089
commit d3776bdfc9
4 changed files with 80 additions and 4 deletions

View File

@@ -1274,6 +1274,13 @@ static const struct switch_attr ar8327_sw_attr_globals[] = {
.get = ar8xxx_sw_get_mirror_source_port,
.max = AR8327_NUM_PORTS - 1
},
{
.type = SWITCH_TYPE_INT,
.name = "arl_age_time",
.description = "ARL age time (secs)",
.set = ar8xxx_sw_set_arl_age_time,
.get = ar8xxx_sw_get_arl_age_time,
},
{
.type = SWITCH_TYPE_STRING,
.name = "arl_table",
@@ -1377,6 +1384,7 @@ const struct ar8xxx_chip ar8327_chip = {
.reg_port_stats_start = 0x1000,
.reg_port_stats_length = 0x100,
.reg_arl_ctrl = AR8327_REG_ARL_CTRL,
.hw_init = ar8327_hw_init,
.cleanup = ar8327_cleanup,
@@ -1411,6 +1419,7 @@ const struct ar8xxx_chip ar8337_chip = {
.reg_port_stats_start = 0x1000,
.reg_port_stats_length = 0x100,
.reg_arl_ctrl = AR8327_REG_ARL_CTRL,
.hw_init = ar8327_hw_init,
.cleanup = ar8327_cleanup,