mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-28 17:44:38 +00:00
Merge pull request #15397 from idryzhov/zebra-oper
zebra: oper data additions
This commit is contained in:
commit
ac34badf71
@ -14,7 +14,8 @@
|
||||
"frr-zebra:zebra": {
|
||||
"state": {
|
||||
"up-count": 0,
|
||||
"down-count": 0
|
||||
"down-count": 0,
|
||||
"zif-type": "zif-veth"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,8 @@
|
||||
},
|
||||
"state": {
|
||||
"up-count": 0,
|
||||
"down-count": 0
|
||||
"down-count": 0,
|
||||
"zif-type": "zif-veth"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -145,12 +145,6 @@ module frr-zebra {
|
||||
"Zebra interface type bond.";
|
||||
}
|
||||
|
||||
identity zif-bond-slave {
|
||||
base zebra-interface-type;
|
||||
description
|
||||
"Zebra interface type bond slave.";
|
||||
}
|
||||
|
||||
identity zif-macvlan {
|
||||
base zebra-interface-type;
|
||||
description
|
||||
@ -2733,6 +2727,12 @@ module frr-zebra {
|
||||
description
|
||||
"The VNI multicast group for BUM traffic.";
|
||||
}
|
||||
|
||||
leaf bond {
|
||||
type frr-interface:interface-ref;
|
||||
description
|
||||
"The bond interface this interface belongs to.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -802,6 +802,12 @@ const struct frr_yang_module_info frr_zebra_info = {
|
||||
.get_elem = lib_interface_zebra_state_mcast_group_get_elem,
|
||||
}
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-interface:lib/interface/frr-zebra:zebra/state/bond",
|
||||
.cbs = {
|
||||
.get_elem = lib_interface_zebra_state_bond_get_elem,
|
||||
}
|
||||
},
|
||||
{
|
||||
.xpath = "/frr-vrf:lib/vrf/frr-zebra:zebra/router-id",
|
||||
.cbs = {
|
||||
|
@ -285,6 +285,7 @@ struct yang_data *lib_interface_zebra_state_remote_vtep_get_elem(
|
||||
struct nb_cb_get_elem_args *args);
|
||||
struct yang_data *lib_interface_zebra_state_mcast_group_get_elem(
|
||||
struct nb_cb_get_elem_args *args);
|
||||
struct yang_data *lib_interface_zebra_state_bond_get_elem(struct nb_cb_get_elem_args *args);
|
||||
int lib_vrf_zebra_router_id_modify(struct nb_cb_modify_args *args);
|
||||
int lib_vrf_zebra_router_id_destroy(struct nb_cb_destroy_args *args);
|
||||
int lib_vrf_zebra_ipv6_router_id_modify(struct nb_cb_modify_args *args);
|
||||
|
@ -49,8 +49,46 @@ lib_interface_zebra_state_down_count_get_elem(struct nb_cb_get_elem_args *args)
|
||||
struct yang_data *
|
||||
lib_interface_zebra_state_zif_type_get_elem(struct nb_cb_get_elem_args *args)
|
||||
{
|
||||
/* TODO: implement me. */
|
||||
return NULL;
|
||||
const struct interface *ifp = args->list_entry;
|
||||
struct zebra_if *zebra_if;
|
||||
const char *type = NULL;
|
||||
|
||||
zebra_if = ifp->info;
|
||||
|
||||
switch (zebra_if->zif_type) {
|
||||
case ZEBRA_IF_OTHER:
|
||||
type = "frr-zebra:zif-other";
|
||||
break;
|
||||
case ZEBRA_IF_VXLAN:
|
||||
type = "frr-zebra:zif-vxlan";
|
||||
break;
|
||||
case ZEBRA_IF_VRF:
|
||||
type = "frr-zebra:zif-vrf";
|
||||
break;
|
||||
case ZEBRA_IF_BRIDGE:
|
||||
type = "frr-zebra:zif-bridge";
|
||||
break;
|
||||
case ZEBRA_IF_VLAN:
|
||||
type = "frr-zebra:zif-vlan";
|
||||
break;
|
||||
case ZEBRA_IF_MACVLAN:
|
||||
type = "frr-zebra:zif-macvlan";
|
||||
break;
|
||||
case ZEBRA_IF_VETH:
|
||||
type = "frr-zebra:zif-veth";
|
||||
break;
|
||||
case ZEBRA_IF_BOND:
|
||||
type = "frr-zebra:zif-bond";
|
||||
break;
|
||||
case ZEBRA_IF_GRE:
|
||||
type = "frr-zebra:zif-gre";
|
||||
break;
|
||||
}
|
||||
|
||||
if (!type)
|
||||
return NULL;
|
||||
|
||||
return yang_data_new_string(args->xpath, type);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -145,6 +183,28 @@ lib_interface_zebra_state_mcast_group_get_elem(struct nb_cb_get_elem_args *args)
|
||||
return yang_data_new_ipv4(args->xpath, &vni->mcast_grp);
|
||||
}
|
||||
|
||||
/*
|
||||
* XPath: /frr-interface:lib/interface/frr-zebra:zebra/state/bond
|
||||
*/
|
||||
struct yang_data *
|
||||
lib_interface_zebra_state_bond_get_elem(struct nb_cb_get_elem_args *args)
|
||||
{
|
||||
const struct interface *ifp = args->list_entry;
|
||||
struct zebra_if *zebra_if;
|
||||
struct interface *bond;
|
||||
|
||||
if (!IS_ZEBRA_IF_BOND_SLAVE(ifp))
|
||||
return NULL;
|
||||
|
||||
zebra_if = ifp->info;
|
||||
bond = zebra_if->bondslave_info.bond_if;
|
||||
|
||||
if (!bond)
|
||||
return NULL;
|
||||
|
||||
return yang_data_new_string(args->xpath, bond->name);
|
||||
}
|
||||
|
||||
const void *lib_vrf_zebra_ribs_rib_get_next(struct nb_cb_get_next_args *args)
|
||||
{
|
||||
struct vrf *vrf = (struct vrf *)args->parent_list_entry;
|
||||
|
Loading…
Reference in New Issue
Block a user