[quagga-users 14512] Re: Zebra RTM_NEWROUTE
Jafar Al-Gharaibeh <[email protected]>
| Newsgroups | gmane.network.quagga.user |
|---|---|
| Message-ID | <[email protected]> |
On 11/9/2016 11:58 AM, Arnaud Launay wrote:
> 2016/11/09 16:34:40 ZEBRA: netlink_talk: netlink-cmd (vrf 0) type RTM_NEWROUTE(24), seq=2153396
> 2016/11/09 16:34:40 ZEBRA: netlink-cmd (vrf 0) error: Invalid argument, type=RTM_NEWROUTE(24), seq=2153396, pid=0
These two lines confirm that we are sending a command to the kernel, and
it is not happy about the supplied argument. The first line is where we
actually talk to the kernel, and the error msg in the second line has a
sequence number that matched the first. The next step is to look into
what is wrong with the command we are sending.
The only place where we send RTM_NEWROUTE commands is in rt_netlink.c
in function: netlink_route_multipath(). From a quick code inspection, I
expect to see more log messages before these. Can you please post
earlier logs?
BTW, do you have only ipv4 addresses? or a mix if ipv4 and ipv6?
Do get little bit more info, can you also replace the last line in the
function above:
return netlink_talk (&req.n, &zvrf->netlink_cmd, zvrf);
with this:
/* Talk to netlink socket. */
{
int rc = netlink_talk (&req.n, &zvrf->netlink_cmd, zvrf);
if (rc = -1) // something went wrong!
zlog_debug ("netlink_route_multipath(): nexthop_num(%d) discard(%d)
", nexthop_num, discard);
return rc;
}
You are welcome to print more information there like the contents of
most rtm/nlmsg fields.
Regards,
Jafar