blob: dde1bfbec05d070b93d7b221bed00a8d9d3e9e17 [file] [log] [blame]
#ifndef NETLINK_NEXTHOP_ENCAP_H_
#define NETLINK_NEXTHOP_ENCAP_H_
struct nh_encap_ops {
uint16_t encap_type;
int (*build_msg)(struct nl_msg *msg, void *priv);
int (*parse_msg)(struct nlattr *nla, struct rtnl_nexthop *rtnh);
int (*compare)(void *a, void *b);
void (*dump)(void *priv, struct nl_dump_params *dp);
void (*destructor)(void *priv);
};
struct rtnl_nh_encap;
/*
* generic nexthop encap
*/
void nh_set_encap(struct rtnl_nexthop *nh, struct rtnl_nh_encap *rtnh_encap);
int nh_encap_parse_msg(struct nlattr *encap, struct nlattr *encap_type,
struct rtnl_nexthop *rtnh);
int nh_encap_build_msg(struct nl_msg *msg, struct rtnl_nh_encap *rtnh_encap);
void nh_encap_dump(struct rtnl_nh_encap *rtnh_encap, struct nl_dump_params *dp);
int nh_encap_compare(struct rtnl_nh_encap *a, struct rtnl_nh_encap *b);
/*
* MPLS encap
*/
extern struct nh_encap_ops mpls_encap_ops;
#endif