forked from Mirror/frr

Implement interface that allows a client to register a FEC for obtaining a label binding (in-label). Update client whenever the label binding is updated and cleanup when client goes away. Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
165 lines
3.6 KiB
C
165 lines
3.6 KiB
C
/*
|
|
* Copyright (C) 2016 by Open Source Routing.
|
|
*
|
|
* This file is part of GNU Zebra.
|
|
*
|
|
* GNU Zebra is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2, or (at your option) any
|
|
* later version.
|
|
*
|
|
* GNU Zebra is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with GNU Zebra; see the file COPYING. If not, write to the Free
|
|
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
* 02111-1307, USA.
|
|
*/
|
|
|
|
#include <zebra.h>
|
|
#include "zebra/rt.h"
|
|
#include "zebra/zebra_mpls.h"
|
|
|
|
int kernel_add_lsp (zebra_lsp_t *lsp) { return 0; }
|
|
int kernel_upd_lsp (zebra_lsp_t *lsp) { return 0; }
|
|
int kernel_del_lsp (zebra_lsp_t *lsp) { return 0; }
|
|
int mpls_kernel_init (void) { return -1; };
|
|
|
|
int mpls_enabled;
|
|
|
|
char *
|
|
mpls_label2str (u_int8_t num_labels, mpls_label_t *labels,
|
|
char *buf, int len)
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
int
|
|
mpls_str2label (const char *label_str, u_int8_t *num_labels,
|
|
mpls_label_t *labels)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
void
|
|
zebra_mpls_init_tables (struct zebra_vrf *zvrf)
|
|
{
|
|
}
|
|
|
|
void
|
|
zebra_mpls_print_lsp (struct vty *vty, struct zebra_vrf *zvrf, mpls_label_t label,
|
|
u_char use_json)
|
|
{
|
|
}
|
|
|
|
void
|
|
zebra_mpls_print_lsp_table (struct vty *vty, struct zebra_vrf *zvrf,
|
|
u_char use_json)
|
|
{
|
|
}
|
|
|
|
int
|
|
zebra_mpls_write_lsp_config (struct vty *vty, struct zebra_vrf *zvrf)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
zebra_mpls_lsp_label_consistent (struct zebra_vrf *zvrf, mpls_label_t in_label,
|
|
mpls_label_t out_label, enum nexthop_types_t gtype,
|
|
union g_addr *gate, char *ifname, ifindex_t ifindex)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
zebra_mpls_static_lsp_add (struct zebra_vrf *zvrf, mpls_label_t in_label,
|
|
mpls_label_t out_label, enum nexthop_types_t gtype,
|
|
union g_addr *gate, char *ifname, ifindex_t ifindex)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
zebra_mpls_static_lsp_del (struct zebra_vrf *zvrf, mpls_label_t in_label,
|
|
enum nexthop_types_t gtype, union g_addr *gate,
|
|
char *ifname, ifindex_t ifindex)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
void
|
|
zebra_mpls_lsp_schedule (struct zebra_vrf *zvrf)
|
|
{
|
|
}
|
|
|
|
void
|
|
zebra_mpls_close_tables (struct zebra_vrf *zvrf)
|
|
{
|
|
}
|
|
|
|
zebra_fec_t *
|
|
zebra_mpls_fec_for_label (struct zebra_vrf *zvrf, mpls_label_t label)
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
int
|
|
zebra_mpls_label_already_bound (struct zebra_vrf *zvrf, mpls_label_t label)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
zebra_mpls_static_fec_add (struct zebra_vrf *zvrf, struct prefix *p,
|
|
mpls_label_t in_label)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
zebra_mpls_static_fec_del (struct zebra_vrf *zvrf, struct prefix *p)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
zebra_mpls_write_fec_config (struct vty *vty, struct zebra_vrf *zvrf)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
void
|
|
zebra_mpls_print_fec_table (struct vty *vty, struct zebra_vrf *zvrf)
|
|
{
|
|
}
|
|
|
|
void
|
|
zebra_mpls_print_fec (struct vty *vty, struct zebra_vrf *zvrf, struct prefix *p)
|
|
{
|
|
}
|
|
|
|
int
|
|
zebra_mpls_fec_register (struct zebra_vrf *zvrf, struct prefix *p,
|
|
struct zserv *client)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
zebra_mpls_fec_unregister (struct zebra_vrf *zvrf, struct prefix *p,
|
|
struct zserv *client)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
zebra_mpls_cleanup_fecs_for_client (struct zebra_vrf *zvrf, struct zserv *client)
|
|
{
|
|
return 0;
|
|
}
|
|
|