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>