0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-23 10:11:53 +00:00
bird/proto/l3vpn/l3vpn.h

50 lines
1.0 KiB
C
Raw Normal View History

2016-04-04 14:16:18 +00:00
/*
* BIRD -- Layer3 VPN Protocol Configuration
*
* (c) 2011-2013 Yandex, LLC
* Author: Alexander V. Chernikov <melifaro@yandex-team.ru>
*
* (c) 2016 CZ.NIC, z.s.p.o.
* Updated by Jan Moskyto Matejka <mq@ucw.cz>
*
* Can be freely distributed and used under the terms of the GNU GPL.
*/
#ifndef _BIRD_L3VPN_H_
#define _BIRD_L3VPN_H_
#include "nest/protocol.h"
#include "nest/route.h"
struct l3vpn_config {
struct proto_config c;
struct channel_config *vpn;
struct channel_config *ip;
struct channel_config *mpls;
u64 rd; /* VPN route distinguisher */
};
struct l3vpn_proto {
struct proto p;
struct channel *vpn;
struct channel *ip;
struct channel *mpls;
struct fib iptompls; /* FIB to lookup IP->MPLS mappings */
u64 rd; /* VPN route distinguisher */
u32 last_label; /* Last allocated label */
};
extern struct protocol proto_l3vpn;
struct l3vpn_ip_to_mpls {
ea_list el;
eattr ea;
struct adata ad;
struct fib_node n;
};
#define L3VPN_LABEL_AUTO (1<<20)
#endif