Annotation of embedaddon/quagga/bgpd/bgp_encap_tlv.h, revision 1.1.1.1
1.1 misho 1: /*
2: * Copyright 2015, LabN Consulting, L.L.C.
3: *
4: * This program is free software; you can redistribute it and/or
5: * modify it under the terms of the GNU General Public License
6: * as published by the Free Software Foundation; either version 2
7: * of the License, or (at your option) any later version.
8: *
9: * This program is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: * GNU General Public License for more details.
13: *
14: * You should have received a copy of the GNU General Public License
15: * along with this program; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17: *
18: */
19:
20: #ifndef _QUAGGA_BGP_ENCAP_TLV_H
21: #define _QUAGGA_BGP_ENCAP_TLV_H
22:
23:
24: /***********************************************************************
25: * TUNNEL TYPE-SPECIFIC TLV ENCODE
26: ***********************************************************************/
27:
28: extern void
29: bgp_encap_type_l2tpv3overip_to_tlv(
30: struct bgp_encap_type_l2tpv3_over_ip *bet,
31: struct attr *attr);
32:
33: extern void
34: bgp_encap_type_gre_to_tlv(
35: struct bgp_encap_type_gre *bet,
36: struct attr *attr);
37:
38: extern void
39: bgp_encap_type_ip_in_ip_to_tlv(
40: struct bgp_encap_type_ip_in_ip *bet,
41: struct attr *attr);
42:
43: extern void
44: bgp_encap_type_transmit_tunnel_endpoint(
45: struct bgp_encap_type_transmit_tunnel_endpoint *bet,
46: struct attr *attr);
47:
48: extern void
49: bgp_encap_type_ipsec_in_tunnel_mode_to_tlv(
50: struct bgp_encap_type_ipsec_in_tunnel_mode *bet,
51: struct attr *attr);
52:
53: extern void
54: bgp_encap_type_ip_in_ip_tunnel_with_ipsec_transport_mode_to_tlv(
55: struct bgp_encap_type_ip_in_ip_tunnel_with_ipsec_transport_mode *bet,
56: struct attr *attr);
57:
58: extern void
59: bgp_encap_type_mpls_in_ip_tunnel_with_ipsec_transport_mode_to_tlv(
60: struct bgp_encap_type_mpls_in_ip_tunnel_with_ipsec_transport_mode *bet,
61: struct attr *attr);
62:
63: extern void
64: bgp_encap_type_pbb_to_tlv(
65: struct bgp_encap_type_pbb *bet,
66: struct attr *attr);
67:
68: extern void
69: bgp_encap_type_vxlan_to_tlv(
70: struct bgp_encap_type_vxlan *bet,
71: struct attr *attr);
72:
73: extern void
74: bgp_encap_type_nvgre_to_tlv(
75: struct bgp_encap_type_nvgre *bet,
76: struct attr *attr);
77:
78: extern void
79: bgp_encap_type_mpls_to_tlv(
80: struct bgp_encap_type_mpls *bet,
81: struct attr *attr);
82:
83: extern void
84: bgp_encap_type_mpls_in_gre_to_tlv(
85: struct bgp_encap_type_mpls_in_gre *bet,
86: struct attr *attr);
87:
88: extern void
89: bgp_encap_type_vxlan_gpe_to_tlv(
90: struct bgp_encap_type_vxlan_gpe *bet,
91: struct attr *attr);
92:
93: extern void
94: bgp_encap_type_mpls_in_udp_to_tlv(
95: struct bgp_encap_type_mpls_in_udp *bet,
96: struct attr *attr);
97:
98: /***********************************************************************
99: * TUNNEL TYPE-SPECIFIC TLV DECODE
100: ***********************************************************************/
101:
102: extern int
103: tlv_to_bgp_encap_type_l2tpv3overip(
104: struct bgp_attr_encap_subtlv *stlv, /* subtlv chain */
105: struct bgp_encap_type_l2tpv3_over_ip *bet); /* caller-allocated */
106:
107: extern int
108: tlv_to_bgp_encap_type_gre(
109: struct bgp_attr_encap_subtlv *stlv, /* subtlv chain */
110: struct bgp_encap_type_gre *bet); /* caller-allocated */
111:
112: extern int
113: tlv_to_bgp_encap_type_ip_in_ip(
114: struct bgp_attr_encap_subtlv *stlv, /* subtlv chain */
115: struct bgp_encap_type_ip_in_ip *bet); /* caller-allocated */
116:
117: extern int
118: tlv_to_bgp_encap_type_transmit_tunnel_endpoint(
119: struct bgp_attr_encap_subtlv *stlv,
120: struct bgp_encap_type_transmit_tunnel_endpoint *bet);
121:
122: extern int
123: tlv_to_bgp_encap_type_ipsec_in_tunnel_mode(
124: struct bgp_attr_encap_subtlv *stlv, /* subtlv chain */
125: struct bgp_encap_type_ipsec_in_tunnel_mode *bet); /* caller-allocated */
126:
127: extern int
128: tlv_to_bgp_encap_type_ip_in_ip_tunnel_with_ipsec_transport_mode(
129: struct bgp_attr_encap_subtlv *stlv,
130: struct bgp_encap_type_ip_in_ip_tunnel_with_ipsec_transport_mode *bet);
131:
132: extern int
133: tlv_to_bgp_encap_type_mpls_in_ip_tunnel_with_ipsec_transport_mode(
134: struct bgp_attr_encap_subtlv *stlv,
135: struct bgp_encap_type_mpls_in_ip_tunnel_with_ipsec_transport_mode *bet);
136:
137: extern int
138: tlv_to_bgp_encap_type_vxlan(
139: struct bgp_attr_encap_subtlv *stlv,
140: struct bgp_encap_type_vxlan *bet);
141:
142: extern int
143: tlv_to_bgp_encap_type_nvgre(
144: struct bgp_attr_encap_subtlv *stlv,
145: struct bgp_encap_type_nvgre *bet);
146:
147: extern int
148: tlv_to_bgp_encap_type_mpls(
149: struct bgp_attr_encap_subtlv *stlv,
150: struct bgp_encap_type_mpls *bet);
151:
152: extern int
153: tlv_to_bgp_encap_type_mpls(
154: struct bgp_attr_encap_subtlv *stlv,
155: struct bgp_encap_type_mpls *bet);
156:
157: extern int
158: tlv_to_bgp_encap_type_mpls_in_gre(
159: struct bgp_attr_encap_subtlv *stlv,
160: struct bgp_encap_type_mpls_in_gre *bet);
161:
162: extern int
163: tlv_to_bgp_encap_type_vxlan_gpe(
164: struct bgp_attr_encap_subtlv *stlv,
165: struct bgp_encap_type_vxlan_gpe *bet);
166:
167: extern int
168: tlv_to_bgp_encap_type_mpls_in_udp(
169: struct bgp_attr_encap_subtlv *stlv,
170: struct bgp_encap_type_mpls_in_udp *bet);
171:
172: extern int
173: tlv_to_bgp_encap_type_pbb(
174: struct bgp_attr_encap_subtlv *stlv, /* subtlv chain */
175: struct bgp_encap_type_pbb *bet); /* caller-allocated */
176:
177: #endif /* _QUAGGA_BGP_ENCAP_TLV_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>