mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 06:03:10 +00:00
Switch from LOOKUP() to lookup() for rtm_type (see bug #401 for details).
This commit is contained in:
parent
bd6c86d3a3
commit
2d844524ad
@ -1,3 +1,11 @@
|
|||||||
|
2007-09-14 Denis Ovsienko
|
||||||
|
|
||||||
|
* rt_socket.c: (kernel_rtm_ipv4) Use lookup() instead of
|
||||||
|
LOOKUP/mes_lookup() for rtm_type_str, as this is more
|
||||||
|
appropriate for sparse code-spaces (#401).
|
||||||
|
* kernel_socket.c: (rtm_read, rtmsg_debug): Idem.
|
||||||
|
* kernel_socket.[ch]: We don't need rtm_type_str_max any more.
|
||||||
|
|
||||||
2007-09-12 Denis Ovsienko
|
2007-09-12 Denis Ovsienko
|
||||||
|
|
||||||
* rt_socket.c: (kernel_rtm_ipv4) prefix_buf could be passed
|
* rt_socket.c: (kernel_rtm_ipv4) prefix_buf could be passed
|
||||||
|
@ -160,7 +160,6 @@ struct message rtm_type_str[] =
|
|||||||
#endif /* RTM_IFANNOUNCE */
|
#endif /* RTM_IFANNOUNCE */
|
||||||
{0, NULL}
|
{0, NULL}
|
||||||
};
|
};
|
||||||
int rtm_type_str_max = sizeof (rtm_type_str) / sizeof (struct message) - 1;
|
|
||||||
|
|
||||||
struct message rtm_flag_str[] =
|
struct message rtm_flag_str[] =
|
||||||
{
|
{
|
||||||
@ -754,7 +753,7 @@ rtm_read (struct rt_msghdr *rtm)
|
|||||||
return;
|
return;
|
||||||
if (IS_ZEBRA_DEBUG_KERNEL)
|
if (IS_ZEBRA_DEBUG_KERNEL)
|
||||||
zlog_debug ("%s: got rtm of type %d (%s)", __func__, rtm->rtm_type,
|
zlog_debug ("%s: got rtm of type %d (%s)", __func__, rtm->rtm_type,
|
||||||
LOOKUP (rtm_type_str, rtm->rtm_type));
|
lookup (rtm_type_str, rtm->rtm_type));
|
||||||
|
|
||||||
#ifdef RTF_CLONED /*bsdi, netbsd 1.6*/
|
#ifdef RTF_CLONED /*bsdi, netbsd 1.6*/
|
||||||
if (flags & RTF_CLONED)
|
if (flags & RTF_CLONED)
|
||||||
@ -820,17 +819,17 @@ rtm_read (struct rt_msghdr *rtm)
|
|||||||
{
|
{
|
||||||
case ZEBRA_RIB_NOTFOUND:
|
case ZEBRA_RIB_NOTFOUND:
|
||||||
zlog_debug ("%s: %s %s/%d: desync: RR isn't yet in RIB, while already in FIB",
|
zlog_debug ("%s: %s %s/%d: desync: RR isn't yet in RIB, while already in FIB",
|
||||||
__func__, LOOKUP (rtm_type_str, rtm->rtm_type), buf, p.prefixlen);
|
__func__, lookup (rtm_type_str, rtm->rtm_type), buf, p.prefixlen);
|
||||||
break;
|
break;
|
||||||
case ZEBRA_RIB_FOUND_CONNECTED:
|
case ZEBRA_RIB_FOUND_CONNECTED:
|
||||||
case ZEBRA_RIB_FOUND_NOGATE:
|
case ZEBRA_RIB_FOUND_NOGATE:
|
||||||
inet_ntop (AF_INET, &gate.sin.sin_addr, gate_buf, INET_ADDRSTRLEN);
|
inet_ntop (AF_INET, &gate.sin.sin_addr, gate_buf, INET_ADDRSTRLEN);
|
||||||
zlog_debug ("%s: %s %s/%d: desync: RR is in RIB, but gate differs (ours is %s)",
|
zlog_debug ("%s: %s %s/%d: desync: RR is in RIB, but gate differs (ours is %s)",
|
||||||
__func__, LOOKUP (rtm_type_str, rtm->rtm_type), buf, p.prefixlen, gate_buf);
|
__func__, lookup (rtm_type_str, rtm->rtm_type), buf, p.prefixlen, gate_buf);
|
||||||
break;
|
break;
|
||||||
case ZEBRA_RIB_FOUND_EXACT: /* RIB RR == FIB RR */
|
case ZEBRA_RIB_FOUND_EXACT: /* RIB RR == FIB RR */
|
||||||
zlog_debug ("%s: %s %s/%d: done Ok",
|
zlog_debug ("%s: %s %s/%d: done Ok",
|
||||||
__func__, LOOKUP (rtm_type_str, rtm->rtm_type), buf, p.prefixlen);
|
__func__, lookup (rtm_type_str, rtm->rtm_type), buf, p.prefixlen);
|
||||||
rib_lookup_and_dump (&p);
|
rib_lookup_and_dump (&p);
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
@ -843,18 +842,18 @@ rtm_read (struct rt_msghdr *rtm)
|
|||||||
{
|
{
|
||||||
case ZEBRA_RIB_FOUND_EXACT:
|
case ZEBRA_RIB_FOUND_EXACT:
|
||||||
zlog_debug ("%s: %s %s/%d: desync: RR is still in RIB, while already not in FIB",
|
zlog_debug ("%s: %s %s/%d: desync: RR is still in RIB, while already not in FIB",
|
||||||
__func__, LOOKUP (rtm_type_str, rtm->rtm_type), buf, p.prefixlen);
|
__func__, lookup (rtm_type_str, rtm->rtm_type), buf, p.prefixlen);
|
||||||
rib_lookup_and_dump (&p);
|
rib_lookup_and_dump (&p);
|
||||||
break;
|
break;
|
||||||
case ZEBRA_RIB_FOUND_CONNECTED:
|
case ZEBRA_RIB_FOUND_CONNECTED:
|
||||||
case ZEBRA_RIB_FOUND_NOGATE:
|
case ZEBRA_RIB_FOUND_NOGATE:
|
||||||
zlog_debug ("%s: %s %s/%d: desync: RR is still in RIB, plus gate differs",
|
zlog_debug ("%s: %s %s/%d: desync: RR is still in RIB, plus gate differs",
|
||||||
__func__, LOOKUP (rtm_type_str, rtm->rtm_type), buf, p.prefixlen);
|
__func__, lookup (rtm_type_str, rtm->rtm_type), buf, p.prefixlen);
|
||||||
rib_lookup_and_dump (&p);
|
rib_lookup_and_dump (&p);
|
||||||
break;
|
break;
|
||||||
case ZEBRA_RIB_NOTFOUND: /* RIB RR == FIB RR */
|
case ZEBRA_RIB_NOTFOUND: /* RIB RR == FIB RR */
|
||||||
zlog_debug ("%s: %s %s/%d: done Ok",
|
zlog_debug ("%s: %s %s/%d: done Ok",
|
||||||
__func__, LOOKUP (rtm_type_str, rtm->rtm_type), buf, p.prefixlen);
|
__func__, lookup (rtm_type_str, rtm->rtm_type), buf, p.prefixlen);
|
||||||
rib_lookup_and_dump (&p);
|
rib_lookup_and_dump (&p);
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
@ -862,7 +861,7 @@ rtm_read (struct rt_msghdr *rtm)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
zlog_debug ("%s: %s/%d: warning: loopback RTM of type %s received",
|
zlog_debug ("%s: %s/%d: warning: loopback RTM of type %s received",
|
||||||
__func__, buf, p.prefixlen, LOOKUP (rtm_type_str, rtm->rtm_type));
|
__func__, buf, p.prefixlen, lookup (rtm_type_str, rtm->rtm_type));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1063,7 +1062,7 @@ rtm_write (int message,
|
|||||||
static void
|
static void
|
||||||
rtmsg_debug (struct rt_msghdr *rtm)
|
rtmsg_debug (struct rt_msghdr *rtm)
|
||||||
{
|
{
|
||||||
zlog_debug ("Kernel: Len: %d Type: %s", rtm->rtm_msglen, LOOKUP (rtm_type_str, rtm->rtm_type));
|
zlog_debug ("Kernel: Len: %d Type: %s", rtm->rtm_msglen, lookup (rtm_type_str, rtm->rtm_type));
|
||||||
rtm_flag_dump (rtm->rtm_flags);
|
rtm_flag_dump (rtm->rtm_flags);
|
||||||
zlog_debug ("Kernel: message seq %d", rtm->rtm_seq);
|
zlog_debug ("Kernel: message seq %d", rtm->rtm_seq);
|
||||||
zlog_debug ("Kernel: pid %d, rtm_addrs 0x%x", rtm->rtm_pid, rtm->rtm_addrs);
|
zlog_debug ("Kernel: pid %d, rtm_addrs 0x%x", rtm->rtm_pid, rtm->rtm_addrs);
|
||||||
|
@ -29,6 +29,5 @@ extern int ifm_read (struct if_msghdr *);
|
|||||||
extern int rtm_write (int, union sockunion *, union sockunion *,
|
extern int rtm_write (int, union sockunion *, union sockunion *,
|
||||||
union sockunion *, unsigned int, int, int);
|
union sockunion *, unsigned int, int, int);
|
||||||
extern struct message rtm_type_str[];
|
extern struct message rtm_type_str[];
|
||||||
extern int rtm_type_str_max;
|
|
||||||
|
|
||||||
#endif /* __ZEBRA_KERNEL_SOCKET_H */
|
#endif /* __ZEBRA_KERNEL_SOCKET_H */
|
||||||
|
@ -211,14 +211,14 @@ kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib, int family)
|
|||||||
if (!IS_ZEBRA_DEBUG_RIB)
|
if (!IS_ZEBRA_DEBUG_RIB)
|
||||||
inet_ntop (AF_INET, &p->u.prefix, prefix_buf, INET_ADDRSTRLEN);
|
inet_ntop (AF_INET, &p->u.prefix, prefix_buf, INET_ADDRSTRLEN);
|
||||||
zlog_err ("%s: %s/%d: rtm_write() unexpectedly returned %d for command %s",
|
zlog_err ("%s: %s/%d: rtm_write() unexpectedly returned %d for command %s",
|
||||||
__func__, prefix_buf, p->prefixlen, error, LOOKUP (rtm_type_str, cmd));
|
__func__, prefix_buf, p->prefixlen, error, lookup (rtm_type_str, cmd));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} /* if (cmd and flags make sense) */
|
} /* if (cmd and flags make sense) */
|
||||||
else
|
else
|
||||||
if (IS_ZEBRA_DEBUG_RIB)
|
if (IS_ZEBRA_DEBUG_RIB)
|
||||||
zlog_debug ("%s: odd command %s for flags %d",
|
zlog_debug ("%s: odd command %s for flags %d",
|
||||||
__func__, LOOKUP (rtm_type_str, cmd), nexthop->flags);
|
__func__, lookup (rtm_type_str, cmd), nexthop->flags);
|
||||||
} /* for (nexthop = ... */
|
} /* for (nexthop = ... */
|
||||||
|
|
||||||
/* If there was no useful nexthop, then complain. */
|
/* If there was no useful nexthop, then complain. */
|
||||||
|
Loading…
Reference in New Issue
Block a user