|
@@ -1171,6 +1171,32 @@ unsigned short batadv_get_vid(struct sk_buff *skb, size_t header_len)
|
|
|
return vid;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * batadv_vlan_ap_isola_get - return the AP isolation status for the given vlan
|
|
|
+ * @bat_priv: the bat priv with all the soft interface information
|
|
|
+ * @vid: the VLAN identifier for which the AP isolation attributed as to be
|
|
|
+ * looked up
|
|
|
+ *
|
|
|
+ * Returns true if AP isolation is on for the VLAN idenfied by vid, false
|
|
|
+ * otherwise
|
|
|
+ */
|
|
|
+bool batadv_vlan_ap_isola_get(struct batadv_priv *bat_priv, unsigned short vid)
|
|
|
+{
|
|
|
+ bool ap_isolation_enabled = false;
|
|
|
+ struct batadv_softif_vlan *vlan;
|
|
|
+
|
|
|
+ /* if the AP isolation is requested on a VLAN, then check for its
|
|
|
+ * setting in the proper VLAN private data structure
|
|
|
+ */
|
|
|
+ vlan = batadv_softif_vlan_get(bat_priv, vid);
|
|
|
+ if (vlan) {
|
|
|
+ ap_isolation_enabled = atomic_read(&vlan->ap_isolation);
|
|
|
+ batadv_softif_vlan_free_ref(vlan);
|
|
|
+ }
|
|
|
+
|
|
|
+ return ap_isolation_enabled;
|
|
|
+}
|
|
|
+
|
|
|
static int batadv_param_set_ra(const char *val, const struct kernel_param *kp)
|
|
|
{
|
|
|
struct batadv_algo_ops *bat_algo_ops;
|