root/net/bridge/br_private_tunnel.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. vlan_tunnel_init
  2. nbp_vlan_tunnel_info_delete
  3. nbp_vlan_tunnel_info_add
  4. nbp_vlan_tunnel_info_flush
  5. vlan_tunnel_info_del
  6. br_handle_ingress_vlan_tunnel

   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  *      Bridge per vlan tunnels
   4  *
   5  *      Authors:
   6  *      Roopa Prabhu            <roopa@cumulusnetworks.com>
   7  */
   8 
   9 #ifndef _BR_PRIVATE_TUNNEL_H
  10 #define _BR_PRIVATE_TUNNEL_H
  11 
  12 struct vtunnel_info {
  13         u32     tunid;
  14         u16     vid;
  15         u16     flags;
  16 };
  17 
  18 /* br_netlink_tunnel.c */
  19 int br_parse_vlan_tunnel_info(struct nlattr *attr,
  20                               struct vtunnel_info *tinfo);
  21 int br_process_vlan_tunnel_info(struct net_bridge *br,
  22                                 struct net_bridge_port *p,
  23                                 int cmd,
  24                                 struct vtunnel_info *tinfo_curr,
  25                                 struct vtunnel_info *tinfo_last,
  26                                 bool *changed);
  27 int br_get_vlan_tunnel_info_size(struct net_bridge_vlan_group *vg);
  28 int br_fill_vlan_tunnel_info(struct sk_buff *skb,
  29                              struct net_bridge_vlan_group *vg);
  30 
  31 #ifdef CONFIG_BRIDGE_VLAN_FILTERING
  32 /* br_vlan_tunnel.c */
  33 int vlan_tunnel_init(struct net_bridge_vlan_group *vg);
  34 void vlan_tunnel_deinit(struct net_bridge_vlan_group *vg);
  35 int nbp_vlan_tunnel_info_delete(struct net_bridge_port *port, u16 vid);
  36 int nbp_vlan_tunnel_info_add(struct net_bridge_port *port, u16 vid, u32 tun_id);
  37 void nbp_vlan_tunnel_info_flush(struct net_bridge_port *port);
  38 void vlan_tunnel_info_del(struct net_bridge_vlan_group *vg,
  39                           struct net_bridge_vlan *vlan);
  40 int br_handle_ingress_vlan_tunnel(struct sk_buff *skb,
  41                                   struct net_bridge_port *p,
  42                                   struct net_bridge_vlan_group *vg);
  43 int br_handle_egress_vlan_tunnel(struct sk_buff *skb,
  44                                  struct net_bridge_vlan *vlan);
  45 #else
  46 static inline int vlan_tunnel_init(struct net_bridge_vlan_group *vg)
  47 {
  48         return 0;
  49 }
  50 
  51 static inline int nbp_vlan_tunnel_info_delete(struct net_bridge_port *port,
  52                                               u16 vid)
  53 {
  54         return 0;
  55 }
  56 
  57 static inline int nbp_vlan_tunnel_info_add(struct net_bridge_port *port,
  58                                            u16 vid, u32 tun_id)
  59 {
  60         return 0;
  61 }
  62 
  63 static inline void nbp_vlan_tunnel_info_flush(struct net_bridge_port *port)
  64 {
  65 }
  66 
  67 static inline void vlan_tunnel_info_del(struct net_bridge_vlan_group *vg,
  68                                         struct net_bridge_vlan *vlan)
  69 {
  70 }
  71 
  72 static inline int br_handle_ingress_vlan_tunnel(struct sk_buff *skb,
  73                                                 struct net_bridge_port *p,
  74                                                 struct net_bridge_vlan_group *vg)
  75 {
  76         return 0;
  77 }
  78 #endif
  79 
  80 #endif

/* [<][>][^][v][top][bottom][index][help] */