[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.