bridge: range check STP parameters
authorstephen hemminger <shemminger@vyatta.com>
Mon, 4 Apr 2011 14:03:33 +0000 (14:03 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 Apr 2011 00:22:29 +0000 (17:22 -0700)
commit14f98f258f1936e0dba77474bd7eda63f61a9826
treeb74a80e8736c937be34291fb432f15a3f6aff67c
parentbb900b27a2f49b37bc38c08e656ea13048fee13b
bridge: range check STP parameters

Apply restrictions on STP parameters based 802.1D 1998 standard.
   * Fixes missing locking in set path cost ioctl
   * Uses common code for both ioctl and sysfs

This is based on an earlier patch Sasikanth V but with overhaul.

Note:
1. It does NOT enforce the restriction on the relationship max_age and
   forward delay or hello time because in existing implementation these are
   set as independant operations.

2. If STP is disabled, there is no restriction on forward delay

3. No restriction on holding time because users use Linux code to act
   as hub or be sticky.

4. Although standard allow 0-255, Linux only allows 0-63 for port priority
   because more bits are reserved for port number.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_ioctl.c
net/bridge/br_private.h
net/bridge/br_private_stp.h
net/bridge/br_stp.c
net/bridge/br_stp_if.c
net/bridge/br_sysfs_br.c
net/bridge/br_sysfs_if.c