A VTU entry with policy enabled is used in combination with a port's
VTU policy setting to override normal switching behavior for frames
assigned to the entry's VID.
A typical example is to Treat all frames in a particular VLAN as
control traffic, and trap them to the CPU. In which case the relevant
user port's VTU policy would be set to TRAP.
Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
        u16     fid;
        u8      sid;
        bool    valid;
+       bool    policy;
        u8      member[DSA_MAX_PORTS];
        u8      state[DSA_MAX_PORTS];
 };
 
 
 /* Offset 0x02: VTU FID Register */
 #define MV88E6352_G1_VTU_FID           0x02
+#define MV88E6352_G1_VTU_FID_VID_POLICY        0x1000
 #define MV88E6352_G1_VTU_FID_MASK      0x0fff
 
 /* Offset 0x03: VTU SID Register */
 
                return err;
 
        entry->fid = val & MV88E6352_G1_VTU_FID_MASK;
-
+       entry->policy = !!(val & MV88E6352_G1_VTU_FID_VID_POLICY);
        return 0;
 }
 
 {
        u16 val = entry->fid & MV88E6352_G1_VTU_FID_MASK;
 
+       if (entry->policy)
+               val |= MV88E6352_G1_VTU_FID_VID_POLICY;
+
        return mv88e6xxx_g1_write(chip, MV88E6352_G1_VTU_FID, val);
 }