]>
Commit | Line | Data |
---|---|---|
18a7a601 | 1 | /* |
2 | * Zebra VxLAN (EVPN) Data structures and definitions | |
3 | * These are "internal" to this function. | |
4 | * Copyright (C) 2016, 2017 Cumulus Networks, Inc. | |
5 | * | |
6 | * This file is part of FRR. | |
7 | * | |
8 | * FRR is free software; you can redistribute it and/or modify it | |
9 | * under the terms of the GNU General Public License as published by the | |
10 | * Free Software Foundation; either version 2, or (at your option) any | |
11 | * later version. | |
12 | * | |
13 | * FRR is distributed in the hope that it will be useful, but | |
14 | * WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
16 | * General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU General Public License | |
19 | * along with FRR; see the file COPYING. If not, write to the Free | |
20 | * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
21 | * 02111-1307, USA. | |
22 | */ | |
23 | ||
24 | #ifndef _ZEBRA_VXLAN_PRIVATE_H | |
25 | #define _ZEBRA_VXLAN_PRIVATE_H | |
26 | ||
27 | #include <zebra.h> | |
28 | ||
29 | #include <zebra.h> | |
30 | ||
31 | #include "if.h" | |
32 | #include "linklist.h" | |
33 | ||
34 | /* definitions */ | |
35 | typedef struct zebra_vni_t_ zebra_vni_t; | |
36 | typedef struct zebra_vtep_t_ zebra_vtep_t; | |
37 | ||
38 | /* | |
39 | * VTEP info | |
40 | * | |
41 | * Right now, this just has each remote VTEP's IP address. | |
42 | */ | |
43 | struct zebra_vtep_t_ | |
44 | { | |
45 | /* Remote IP. */ | |
46 | /* NOTE: Can only be IPv4 right now. */ | |
47 | struct in_addr vtep_ip; | |
48 | ||
49 | /* Links. */ | |
50 | struct zebra_vtep_t_ *next; | |
51 | struct zebra_vtep_t_ *prev; | |
52 | }; | |
53 | ||
54 | ||
55 | /* | |
56 | * VNI hash table | |
57 | * | |
58 | * Contains information pertaining to a VNI: | |
59 | * - the list of remote VTEPs (with this VNI) | |
60 | */ | |
61 | struct zebra_vni_t_ | |
62 | { | |
63 | /* VNI - key */ | |
64 | vni_t vni; | |
65 | ||
66 | /* Corresponding VxLAN interface. */ | |
67 | struct interface *vxlan_if; | |
68 | ||
69 | /* List of remote VTEPs */ | |
70 | zebra_vtep_t *vteps; | |
71 | ||
72 | /* Local IP */ | |
73 | struct in_addr local_vtep_ip; | |
74 | }; | |
75 | ||
76 | #endif /* _ZEBRA_VXLAN_PRIVATE_H */ |