]>
git.proxmox.com Git - mirror_frr.git/blob - zebra/zebra_evpn_vxlan.h
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Zebra EVPN for VxLAN code
4 * Copyright (C) 2016, 2017 Cumulus Networks, Inc.
7 /* Get the VRR interface for SVI if any */
8 static inline struct interface
*
9 zebra_get_vrr_intf_for_svi(struct interface
*ifp
)
11 struct zebra_vrf
*zvrf
= NULL
;
12 struct interface
*tmp_if
= NULL
;
13 struct zebra_if
*zif
= NULL
;
15 zvrf
= ifp
->vrf
->info
;
18 FOR_ALL_INTERFACES (zvrf
->vrf
, tmp_if
) {
23 if (!IS_ZEBRA_IF_MACVLAN(tmp_if
))
33 /* EVPN<=>vxlan_zif association */
34 static inline void zevpn_vxlan_if_set(struct zebra_evpn
*zevpn
,
35 struct interface
*ifp
, bool set
)
40 if (zevpn
->vxlan_if
== ifp
)
42 zevpn
->vxlan_if
= ifp
;
46 zevpn
->vxlan_if
= NULL
;
54 zebra_evpn_vxl_evpn_set(zif
, zevpn
, set
);
57 /* EVPN<=>Bridge interface association */
58 static inline void zevpn_bridge_if_set(struct zebra_evpn
*zevpn
,
59 struct interface
*ifp
, bool set
)
62 if (zevpn
->bridge_if
== ifp
)
64 zevpn
->bridge_if
= ifp
;
66 if (!zevpn
->bridge_if
)
68 zevpn
->bridge_if
= NULL
;
72 /* EVPN<=>Bridge interface association */
73 static inline void zl3vni_bridge_if_set(struct zebra_l3vni
*zl3vni
,
74 struct interface
*ifp
, bool set
)
77 if (zl3vni
->bridge_if
== ifp
)
79 zl3vni
->bridge_if
= ifp
;
81 if (!zl3vni
->bridge_if
)
83 zl3vni
->bridge_if
= NULL
;