mpe(4) is not installing routes / label in the interface in -current.

Snippet:
# ifconfig mpe0 mplslabel 100
ifconfig: SIOCSETLABEL: Network is unreachable

Quickly looking at the code I found out that since the old MPLS route
installer function (mpe_newlabel) doesn't include an ifa pointer later
on rt_getifa() will fail and return ENETUNREACH.

Trace:
mpe_newlabel -> rtrequest1 -> switch (RTM_ADD) -> rt_getifa

I tried moving it to rt_ifa_add() using my old VPLS datapath diffs,
but there are some other problems like panic()s or NULL MPLS routes
installed for mpeX that might be happening because of my poor
understanding of the new network stack design (no more
ifp->if_lladdr).
(this commit: 
https://github.com/rzalamena/vpls-src/commit/675216b75b665f42b06bd2b0b18cbd0deab84f57)

NOTE: to test mpe(4) I used the claudio@ MPLS article:
http://2011.eurobsdcon.org/papers/jeker/MPLS.pdf

NOTE 2:
Panic trace:
rt_msg2()
sysctl_dumpentry()
rn_walktree()
sysctl_rtable()
sys___sysctl()
syscall()
--- syscall (number 202) ---

Reply via email to