rt_mpls
struct rt_mpls *rtmpls;
rtmpls = (struct rt_mpls *)rt->rt_llinfo;
struct rt_mpls *rt_mpls;
rt->rt_llinfo = malloc(sizeof(struct rt_mpls), M_TEMP, M_NOWAIT|M_ZERO);
rt_mpls = (struct rt_mpls *)rt->rt_llinfo;
rt_mpls->mpls_label = psa_mpls->smpls_label;
rt_mpls->mpls_operation = op;
free(rt->rt_llinfo, M_TEMP, sizeof(struct rt_mpls));
sa_mpls.smpls_label = ((struct rt_mpls *)
info.rti_mpls = ((struct rt_mpls *)
sa_mpls.smpls_label = ((struct rt_mpls *)
info.rti_mpls = ((struct rt_mpls *)
struct mbuf *mpls_shim_swap(struct mbuf *, struct rt_mpls *);
struct mbuf *mpls_shim_push(struct mbuf *, struct rt_mpls *);
rt_mpls = (struct rt_mpls *)rt->rt_llinfo;
if (rt_mpls == NULL || (rt->rt_flags & RTF_MPLS) == 0) {
switch (rt_mpls->mpls_operation) {
m = mpls_shim_push(m, rt_mpls);
m = mpls_shim_swap(m, rt_mpls);
MPLS_LABEL_GET(rt_mpls->mpls_label));
struct rt_mpls *rt_mpls;
MPLS_LABEL_GET(rt_mpls->mpls_label));
struct rt_mpls *rt_mpls;
rt_mpls = (struct rt_mpls *)rt->rt_llinfo;
if (rt_mpls == NULL || (rt->rt_flags & RTF_MPLS) == 0) {
switch (rt_mpls->mpls_operation) {
m = mpls_shim_push(m, rt_mpls);
m = mpls_shim_swap(m, rt_mpls);
mpls_shim_swap(struct mbuf *m, struct rt_mpls *rt_mpls)
shim->shim_label |= rt_mpls->mpls_label & MPLS_LABEL_MASK;
t = rt_mpls->mpls_exp << MPLS_EXP_OFFSET;
mpls_shim_push(struct mbuf *m, struct rt_mpls *rt_mpls)
return (mpls_shim_swap(m, rt_mpls));