FreeBSD Bugzilla – Attachment 114643 Details for
Bug 156332
net/quagga - update to 0.99.18
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 25.70 KB, created by
Ingo Flaschberger
on 2011-04-11 16:10:17 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Ingo Flaschberger
Created:
2011-04-11 16:10:17 UTC
Size:
25.70 KB
patch
obsolete
>diff -r -N -upwb ../quagga-0.99.17/Makefile ./Makefile >--- ../quagga-0.99.17/Makefile 2011-04-02 13:13:57.000000000 +0000 >+++ ./Makefile 2011-04-02 13:14:33.000000000 +0000 >@@ -6,8 +6,8 @@ > # > > PORTNAME= quagga >-PORTVERSION= 0.99.17 >-PORTREVISION= 5 >+PORTVERSION= 0.99.18 >+PORTREVISION= 1 > CATEGORIES= net ipv6 > MASTER_SITES= http://quagga.net/download/ \ > http://www.ru.quagga.net/download/ \ >diff -r -N -upwb ../quagga-0.99.17/distinfo ./distinfo >--- ../quagga-0.99.17/distinfo 2011-04-02 13:13:57.000000000 +0000 >+++ ./distinfo 2011-04-02 13:14:33.000000000 +0000 >@@ -1,2 +1,2 @@ >-SHA256 (quagga-0.99.17.tar.gz) = 1d77df121a334e9504b45e489ee7ce35bf478e27d33cd2793a23280b59d9efd4 >-SIZE (quagga-0.99.17.tar.gz) = 2202151 >+SHA256 (quagga-0.99.18.tar.gz) = 0cdbe4b90075f4997ca6ecc71ef683a07b4a8ca3c718080fe83f4bcadbcc4d93 >+SIZE (quagga-0.99.18.tar.gz) = 2199014 >diff -r -N -upwb ../quagga-0.99.17/files/patch-bgp_attr ./files/patch-bgp_attr >--- ../quagga-0.99.17/files/patch-bgp_attr 1970-01-01 00:00:00.000000000 +0000 >+++ ./files/patch-bgp_attr 2011-04-02 13:14:06.000000000 +0000 >@@ -0,0 +1,13 @@ >+--- ../quagga-0.99.18_org/bgpd/bgp_attr.c 2011-03-21 15:32:49.000000000 +0100 >++++ bgpd/bgp_attr.c 2011-03-31 19:19:41.000000000 +0200 >+@@ -373,8 +373,8 @@ >+ >+ #ifdef HAVE_IPV6 >+ MIX(attr->extra->mp_nexthop_len); >+- key = jhash2(attr->extra->mp_nexthop_global.s6_addr32, 4, key); >+- key = jhash2(attr->extra->mp_nexthop_local.s6_addr32, 4, key); >++ key = jhash2(attr->extra->mp_nexthop_global.s6_addr, 16, key); >++ key = jhash2(attr->extra->mp_nexthop_global.s6_addr, 16, key); >+ #endif /* HAVE_IPV6 */ >+ } >+ >diff -r -N -upwb ../quagga-0.99.17/files/patch-blackhole ./files/patch-blackhole >--- ../quagga-0.99.17/files/patch-blackhole 1970-01-01 00:00:00.000000000 +0000 >+++ ./files/patch-blackhole 2011-04-02 13:14:06.000000000 +0000 >@@ -0,0 +1,16 @@ >+diff -u -r ../quagga-0.99.18_org/zebra/zebra_vty.c ./zebra/zebra_vty.c >+--- ../quagga-0.99.18_org/zebra/zebra_vty.c 2011-03-21 10:43:52.000000000 +0100 >++++ ./zebra/zebra_vty.c 2011-03-31 17:39:10.000000000 +0200 >+@@ -1169,7 +1169,11 @@ >+ vty_out (vty, " %s", si->gate.ifname); >+ break; >+ case STATIC_IPV4_BLACKHOLE: >+- vty_out (vty, " Null0"); >++ if (CHECK_FLAG(si->flags, ZEBRA_FLAG_REJECT)) { >++ vty_out (vty, " %s", "reject"); >++ } else { >++ vty_out (vty, " Null0"); >++ } >+ break; >+ } >+ >diff -r -N -upwb ../quagga-0.99.17/files/patch-git-1 ./files/patch-git-1 >--- ../quagga-0.99.17/files/patch-git-1 2011-04-02 13:13:57.000000000 +0000 >+++ ./files/patch-git-1 2011-04-02 13:14:06.000000000 +0000 >@@ -1,14 +1,99 @@ >-diff --git bgpd/bgp_route.c bgpd/bgp_route.c >-index 2391f74..1cfc451 100644 >---- bgpd/bgp_route.c >-+++ bgpd/bgp_route.c >-@@ -6145,7 +6145,8 @@ route_vty_out_detail (struct vty *vty, struct bgp *bgp, struct prefix *p, >- bgp_damp_info_vty (vty, binfo); >- >- /* Line 7 display Uptime */ >-- vty_out (vty, " Last update: %s", ctime (&binfo->uptime)); >-+ time_t tbuf = time(NULL) - (bgp_clock() - binfo->uptime); >-+ vty_out (vty, " Last update: %s", ctime(&tbuf)); >+diff --git ospfd/ospf_lsa.h ospfd/ospf_lsa.h >+index fee3470..72e2f8a 100644 >+--- ospfd/ospf_lsa.h >++++ ospfd/ospf_lsa.h >+@@ -114,6 +114,9 @@ struct ospf_lsa >+ >+ /* Refreshement List or Queue */ >+ int refresh_list; >++ >++ /* For Type-9 Opaque-LSAs */ >++ struct ospf_interface *oi; >+ }; >+ >+ /* OSPF LSA Link Type. */ >+diff --git ospfd/ospf_nsm.c ospfd/ospf_nsm.c >+index 279d2a0..cbc3171 100644 >+--- ospfd/ospf_nsm.c >++++ ospfd/ospf_nsm.c >+@@ -216,7 +216,7 @@ ospf_db_summary_add (struct ospf_neighbor *nbr, struct ospf_lsa *lsa) >+ { >+ case OSPF_OPAQUE_LINK_LSA: >+ /* Exclude type-9 LSAs that does not have the same "oi" with "nbr". */ >+- if (lsa->oi != nbr->oi) >++ if (nbr->oi && ospf_if_exists (lsa->oi) != nbr->oi) >+ return 0; >+ break; >+ case OSPF_OPAQUE_AREA_LSA: >+diff --git ospfd/ospf_opaque.c ospfd/ospf_opaque.c >+index 6e90011..aa126e1 100644 >+--- ospfd/ospf_opaque.c >++++ ospfd/ospf_opaque.c >+@@ -251,7 +251,7 @@ struct ospf_opaque_functab >+ void (* config_write_debug )(struct vty *vty); >+ void (* show_opaque_info )(struct vty *vty, struct ospf_lsa *lsa); >+ int (* lsa_originator)(void *arg); >+- void (* lsa_refresher )(struct ospf_lsa *lsa); >++ struct ospf_lsa *(* lsa_refresher )(struct ospf_lsa *lsa); >+ int (* new_lsa_hook)(struct ospf_lsa *lsa); >+ int (* del_lsa_hook)(struct ospf_lsa *lsa); >+ }; >+@@ -354,7 +354,7 @@ ospf_register_opaque_functab ( >+ void (* config_write_debug )(struct vty *vty), >+ void (* show_opaque_info )(struct vty *vty, struct ospf_lsa *lsa), >+ int (* lsa_originator)(void *arg), >+- void (* lsa_refresher )(struct ospf_lsa *lsa), >++ struct ospf_lsa *(* lsa_refresher )(struct ospf_lsa *lsa), >+ int (* new_lsa_hook)(struct ospf_lsa *lsa), >+ int (* del_lsa_hook)(struct ospf_lsa *lsa)) >+ { >+@@ -1608,12 +1608,13 @@ out: >+ return new; >+ } >+ >+-void >++struct ospf_lsa * >+ ospf_opaque_lsa_refresh (struct ospf_lsa *lsa) >+ { >+ struct ospf *ospf; >+ struct ospf_opaque_functab *functab; >+- >++ struct ospf_lsa *new = NULL; >++ >+ ospf = ospf_lookup (); >+ >+ if ((functab = ospf_opaque_functab_lookup (lsa)) == NULL >+@@ -1633,9 +1634,9 @@ ospf_opaque_lsa_refresh (struct ospf_lsa *lsa) >+ ospf_lsa_flush (ospf, lsa); > } >- vty_out (vty, "%s", VTY_NEWLINE); >+ else >+- (* functab->lsa_refresher)(lsa); >++ new = (* functab->lsa_refresher)(lsa); >+ >+- return; >++ return new; > } >+ >+ /*------------------------------------------------------------------------* >+diff --git ospfd/ospf_opaque.h ospfd/ospf_opaque.h >+index f49fe46..2273064 100644 >+--- ospfd/ospf_opaque.h >++++ ospfd/ospf_opaque.h >+@@ -120,7 +120,7 @@ ospf_register_opaque_functab ( >+ void (* config_write_debug )(struct vty *vty), >+ void (* show_opaque_info )(struct vty *vty, struct ospf_lsa *lsa), >+ int (* lsa_originator)(void *arg), >+- void (* lsa_refresher )(struct ospf_lsa *lsa), >++ struct ospf_lsa *(* lsa_refresher )(struct ospf_lsa *lsa), >+ int (* new_lsa_hook)(struct ospf_lsa *lsa), >+ int (* del_lsa_hook)(struct ospf_lsa *lsa) >+ ); >+@@ -143,7 +143,7 @@ extern void ospf_opaque_lsa_originate_schedule (struct ospf_interface *oi, >+ int *init_delay); >+ extern struct ospf_lsa *ospf_opaque_lsa_install (struct ospf_lsa *, >+ int rt_recalc); >+-extern void ospf_opaque_lsa_refresh (struct ospf_lsa *lsa); >++extern struct ospf_lsa *ospf_opaque_lsa_refresh (struct ospf_lsa *lsa); >+ >+ extern void ospf_opaque_lsa_reoriginate_schedule (void *lsa_type_dependent, >+ u_char lsa_type, >diff -r -N -upwb ../quagga-0.99.17/files/patch-git-2 ./files/patch-git-2 >--- ../quagga-0.99.17/files/patch-git-2 2011-04-02 13:13:57.000000000 +0000 >+++ ./files/patch-git-2 2011-04-02 13:14:06.000000000 +0000 >@@ -1,20 +1,33 @@ >-diff --git a/lib/zclient.c b/lib/zclient.c >-index d3d5322..52a3627 100644 >---- lib/zclient.c >-+++ lib/zclient.c >-@@ -339,12 +339,12 @@ zclient_start (struct zclient *zclient) >- /* Create read thread. */ >- zclient_event (ZCLIENT_READ, zclient); >+diff --git bgpd/bgp_route.c bgpd/bgp_route.c >+index 8c05ba6..5c516f0 100644 >+--- bgpd/bgp_route.c >++++ bgpd/bgp_route.c >+@@ -4327,6 +4327,7 @@ ALIAS_DEPRECATED (no_bgp_network_mask_natural, >+ "Specify a BGP backdoor route\n" >+ "AS-Path hopcount limit attribute\n" >+ "AS-Pathlimit TTL, in number of AS-Path hops\n") >++#ifdef HAVE_IPV6 >+ ALIAS_DEPRECATED (ipv6_bgp_network, >+ ipv6_bgp_network_ttl_cmd, >+ "network X:X::X:X/M pathlimit <0-255>", >+@@ -4342,6 +4343,7 @@ ALIAS_DEPRECATED (no_ipv6_bgp_network, >+ "IPv6 prefix <network>/<length>\n" >+ "AS-Path hopcount limit attribute\n" >+ "AS-Pathlimit TTL, in number of AS-Path hops\n") >++#endif /* HAVE_IPV6 */ > >-- /* We need interface information. */ >-- zebra_message_send (zclient, ZEBRA_INTERFACE_ADD); >-- >- /* We need router-id information. */ >- zebra_message_send (zclient, ZEBRA_ROUTER_ID_ADD); >+ /* Aggreagete address: > >-+ /* We need interface information. */ >-+ zebra_message_send (zclient, ZEBRA_INTERFACE_ADD); >+@@ -12958,9 +12960,11 @@ bgp_route_init (void) >+ install_element (BGP_IPV4M_NODE, &no_bgp_network_backdoor_ttl_cmd); >+ install_element (BGP_IPV4M_NODE, &no_bgp_network_mask_backdoor_ttl_cmd); >+ install_element (BGP_IPV4M_NODE, &no_bgp_network_mask_natural_backdoor_ttl_cmd); >+- > + >- /* Flush all redistribute request. */ >- for (i = 0; i < ZEBRA_ROUTE_MAX; i++) >- if (i != zclient->redist_default && zclient->redist[i]) >++#ifdef HAVE_IPV6 >+ install_element (BGP_IPV6_NODE, &ipv6_bgp_network_ttl_cmd); >+ install_element (BGP_IPV6_NODE, &no_ipv6_bgp_network_ttl_cmd); >++#endif >+ } >+ >+ void >diff -r -N -upwb ../quagga-0.99.17/files/patch-git-3 ./files/patch-git-3 >--- ../quagga-0.99.17/files/patch-git-3 2011-04-02 13:13:57.000000000 +0000 >+++ ./files/patch-git-3 2011-04-02 13:14:06.000000000 +0000 >@@ -1,40 +1,26 @@ >-diff --git a/ospf6d/ospf6_spf.c b/ospf6d/ospf6_spf.c >-index bfb6df2..04367f0 100644 >---- ospf6d/ospf6_spf.c >-+++ ospf6d/ospf6_spf.c >-@@ -50,7 +50,9 @@ ospf6_vertex_cmp (void *a, void *b) >- struct ospf6_vertex *vb = (struct ospf6_vertex *) b; >+diff --git lib/command.c lib/command.c >+index 5a13f39..264e0f7 100644 >+--- lib/command.c >++++ lib/command.c >+@@ -3056,7 +3056,7 @@ DEFUN (config_logmsg, >+ if ((level = level_match(argv[0])) == ZLOG_DISABLED) >+ return CMD_ERR_NO_MATCH; > >- /* ascending order */ >-- return (va->cost - vb->cost); >-+ if (va->cost != vb->cost) >-+ return (va->cost - vb->cost); >-+ return (va->hops - vb->hops); >+- zlog(NULL, level, ((message = argv_concat(argv, argc, 1)) ? message : "")); >++ zlog(NULL, level, "%s", ((message = argv_concat(argv, argc, 1)) ? message : "")); >+ if (message) >+ XFREE(MTYPE_TMP, message); >+ return CMD_SUCCESS; >+diff --git lib/if.c lib/if.c >+index b61bdbf..86f754b 100644 >+--- lib/if.c >++++ lib/if.c >+@@ -664,7 +664,7 @@ connected_log (struct connected *connected, char *str) >+ strncat (logbuf, inet_ntop (p->family, &p->u.prefix, buf, BUFSIZ), >+ BUFSIZ - strlen(logbuf)); > } >- >- static int >-@@ -320,22 +322,8 @@ ospf6_spf_install (struct ospf6_vertex *v, >+- zlog (NULL, LOG_INFO, logbuf); >++ zlog (NULL, LOG_INFO, "%s", logbuf); > } > >- prev = (struct ospf6_vertex *) route->route_option; >-- if (prev->hops > v->hops) >-- { >-- for (ALL_LIST_ELEMENTS (prev->child_list, node, nnode, w)) >-- { >-- assert (w->parent == prev); >-- w->parent = v; >-- listnode_add_sort (v->child_list, w); >-- } >-- listnode_delete (prev->parent->child_list, prev); >-- listnode_add_sort (v->parent->child_list, v); >-- >-- ospf6_vertex_delete (prev); >-- route->route_option = v; >-- } >-- else >-- ospf6_vertex_delete (v); >-+ assert (prev->hops <= v->hops); >-+ ospf6_vertex_delete (v); >- >- return -1; >- } >+ /* If two connected address has same prefix return 1. */ >diff -r -N -upwb ../quagga-0.99.17/files/patch-git-4 ./files/patch-git-4 >--- ../quagga-0.99.17/files/patch-git-4 2011-04-02 13:13:57.000000000 +0000 >+++ ./files/patch-git-4 1970-01-01 00:00:00.000000000 +0000 >@@ -1,17 +0,0 @@ >-diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c >-index a5f9552..9102add 100644 >---- bgpd/bgp_packet.c >-+++ bgpd/bgp_packet.c >-@@ -1885,12 +1885,6 @@ bgp_notify_receive (struct peer *peer, bgp_size_t size) >- bgp_notify.subcode == BGP_NOTIFY_OPEN_UNSUP_PARAM ) >- UNSET_FLAG (peer->sflags, PEER_STATUS_CAPABILITY_OPEN); >- >-- /* Also apply to Unsupported Capability until remote router support >-- capability. */ >-- if (bgp_notify.code == BGP_NOTIFY_OPEN_ERR && >-- bgp_notify.subcode == BGP_NOTIFY_OPEN_UNSUP_CAPBL) >-- UNSET_FLAG (peer->sflags, PEER_STATUS_CAPABILITY_OPEN); >-- >- BGP_EVENT_ADD (peer, Receive_NOTIFICATION_message); >- } >- >diff -r -N -upwb ../quagga-0.99.17/files/patch-ospf6d ./files/patch-ospf6d >--- ../quagga-0.99.17/files/patch-ospf6d 1970-01-01 00:00:00.000000000 +0000 >+++ ./files/patch-ospf6d 2011-04-02 13:14:06.000000000 +0000 >@@ -0,0 +1,45 @@ >+diff -u -r ../quagga-0.99.18_org/ospf6d/ospf6_message.c ./ospf6d/ospf6_message.c >+--- ../quagga-0.99.18_org/ospf6d/ospf6_message.c 2011-03-21 14:43:34.000000000 +0100 >++++ ./ospf6d/ospf6_message.c 2011-03-31 17:12:04.000000000 +0200 >+@@ -1396,6 +1396,13 @@ >+ return 0; >+ } >+ >++ if (iobuflen == 0) >++ { >++ zlog_debug ("Unable to send Hello on interface %s iobuflen is 0", >++ oi->interface->name); >++ return 0; >++ } >++ >+ /* set next thread */ >+ oi->thread_send_hello = thread_add_timer (master, ospf6_hello_send, >+ oi, oi->hello_interval); >+diff -u -r ../quagga-0.99.18_org/zebra/kernel_socket.c ./zebra/kernel_socket.c >+--- ../quagga-0.99.18_org/zebra/kernel_socket.c 2011-03-21 10:43:52.000000000 +0100 >++++ ./zebra/kernel_socket.c 2011-03-31 17:38:05.000000000 +0200 >+@@ -280,14 +280,19 @@ >+ sizeof(ifan->ifan_name))); >+ ifp->ifindex = ifan->ifan_index; >+ >++ if_get_flags (ifp); >++ if_get_mtu (ifp); >++ if_get_metric (ifp); >++ >+ if_add_update (ifp); >+ } >+ else if (ifp != NULL && ifan->ifan_what == IFAN_DEPARTURE) >+- if_delete_update (ifp); >+- >+- if_get_flags (ifp); >+- if_get_mtu (ifp); >+- if_get_metric (ifp); >++ { >++ if_get_flags (ifp); >++ if_get_mtu (ifp); >++ if_get_metric (ifp); >++ if_delete_update (ifp); >++ } >+ >+ if (IS_ZEBRA_DEBUG_KERNEL) >+ zlog_debug ("%s: interface %s index %d", >diff -r -N -upwb ../quagga-0.99.17/files/patch-ospf6d-log ./files/patch-ospf6d-log >--- ../quagga-0.99.17/files/patch-ospf6d-log 1970-01-01 00:00:00.000000000 +0000 >+++ ./files/patch-ospf6d-log 2011-04-02 13:14:06.000000000 +0000 >@@ -0,0 +1,302 @@ >+diff -u -r ../quagga-0.99.18_org/ospf6d/ospf6_neighbor.c ./ospf6d/ospf6_neighbor.c >+--- ../quagga-0.99.18_org/ospf6d/ospf6_neighbor.c 2011-03-21 10:43:52.000000000 +0100 >++++ ./ospf6d/ospf6_neighbor.c 2011-03-31 17:19:30.000000000 +0200 >+@@ -141,12 +141,29 @@ >+ THREAD_OFF (on->thread_send_lsack); >+ >+ XFREE (MTYPE_OSPF6_NEIGHBOR, on); >++ >+ } >++ >++const char *ospf6_nsm_event_str[] = >++{ >++ "NoEvent", >++ "HelloReceived", >++ "2-WayReceived", >++ "NegotiationDone", >++ "ExchangeDone", >++ "LoadingDone", >++ "AdjOK?", >++ "SeqNumberMismatch", >++ "BadLSReq", >++ "1-WayReceived", >++ "InactivityTimer" >++}; >+ >+ static void >+-ospf6_neighbor_state_change (u_char next_state, struct ospf6_neighbor *on) >++ospf6_neighbor_state_change (u_char next_state, struct ospf6_neighbor *on, int event) >+ { >+ u_char prev_state; >++ char router_id[16]; >+ >+ prev_state = on->state; >+ on->state = next_state; >+@@ -159,9 +176,25 @@ >+ /* log */ >+ if (IS_OSPF6_DEBUG_NEIGHBOR (STATE)) >+ { >+- zlog_debug ("Neighbor state change %s: [%s]->[%s]", on->name, >+- ospf6_neighbor_state_str[prev_state], >+- ospf6_neighbor_state_str[next_state]); >++ inet_ntop (AF_INET, &on->router_id, router_id, sizeof (router_id)); >++ zlog_debug ("Neighbor state change %s: [%s]->[%s] (%s)", router_id, >++ ospf6_neighbor_state_str[prev_state], >++ ospf6_neighbor_state_str[next_state], >++ ospf6_nsm_event_str [event]); >++ } >++ >++ /* Optionally notify about adjacency changes */ >++ if (CHECK_FLAG(on->ospf6_if->area->ospf6->flag, OSPF6_LOG_ADJACENCY_CHANGES) && >++ (CHECK_FLAG(on->ospf6_if->area->ospf6->flag, OSPF6_LOG_ADJACENCY_DETAIL) || >++ (next_state == OSPF6_NEIGHBOR_FULL) || (next_state < on->state))) >++ { >++ inet_ntop (AF_INET, &on->router_id, router_id, sizeof (router_id)); >++ zlog_notice("AdjChg: Nbr %s on %s: %s -> %s (%s)", >++ router_id, on->ospf6_if->interface->name, >++ ospf6_neighbor_state_str[prev_state], >++ ospf6_neighbor_state_str[next_state], >++ ospf6_nsm_event_str [event]); >++ >+ } >+ >+ if (prev_state == OSPF6_NEIGHBOR_FULL || next_state == OSPF6_NEIGHBOR_FULL) >+@@ -215,7 +248,7 @@ >+ on->ospf6_if->dead_interval); >+ >+ if (on->state <= OSPF6_NEIGHBOR_DOWN) >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_INIT, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_INIT, on, OSPF6_EVENT_HELLO_RECV); >+ >+ return 0; >+ } >+@@ -238,11 +271,11 @@ >+ >+ if (! need_adjacency (on)) >+ { >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_TWOWAY, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_TWOWAY, on, OSPF6_EVENT_2WAY); >+ return 0; >+ } >+ >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXSTART, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXSTART, on, OSPF6_EVENT_2WAY); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_MSBIT); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_MBIT); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_IBIT); >+@@ -319,7 +352,7 @@ >+ } >+ >+ UNSET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_IBIT); >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXCHANGE, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXCHANGE, on, OSPF6_EVENT_NEG_DONE); >+ >+ return 0; >+ } >+@@ -347,9 +380,9 @@ >+ */ >+ >+ if (on->request_list->count == 0) >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_FULL, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_FULL, on, OSPF6_EVENT_EXCH_DONE); >+ else >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_LOADING, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_LOADING, on, OSPF6_EVENT_EXCH_DONE); >+ >+ return 0; >+ } >+@@ -370,7 +403,7 @@ >+ >+ assert (on->request_list->count == 0); >+ >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_FULL, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_FULL, on, OSPF6_EVENT_LOAD_DONE); >+ >+ return 0; >+ } >+@@ -389,7 +422,7 @@ >+ >+ if (on->state == OSPF6_NEIGHBOR_TWOWAY && need_adjacency (on)) >+ { >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXSTART, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXSTART, on, OSPF6_EVENT_ADJ_OK); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_MSBIT); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_MBIT); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_IBIT); >+@@ -402,7 +435,7 @@ >+ else if (on->state >= OSPF6_NEIGHBOR_EXSTART && >+ ! need_adjacency (on)) >+ { >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_TWOWAY, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_TWOWAY, on, OSPF6_EVENT_ADJ_OK); >+ ospf6_lsdb_remove_all (on->summary_list); >+ ospf6_lsdb_remove_all (on->request_list); >+ for (lsa = ospf6_lsdb_head (on->retrans_list); lsa; >+@@ -431,7 +464,7 @@ >+ if (IS_OSPF6_DEBUG_NEIGHBOR (EVENT)) >+ zlog_debug ("Neighbor Event %s: *SeqNumberMismatch*", on->name); >+ >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXSTART, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXSTART, on, OSPF6_EVENT_SEQ_MISS); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_MSBIT); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_MBIT); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_IBIT); >+@@ -467,7 +500,7 @@ >+ if (IS_OSPF6_DEBUG_NEIGHBOR (EVENT)) >+ zlog_debug ("Neighbor Event %s: *BadLSReq*", on->name); >+ >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXSTART, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_EXSTART, on, OSPF6_EVENT_BAD_LSREQ); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_MSBIT); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_MBIT); >+ SET_FLAG (on->dbdesc_bits, OSPF6_DBDESC_IBIT); >+@@ -503,7 +536,7 @@ >+ if (IS_OSPF6_DEBUG_NEIGHBOR (EVENT)) >+ zlog_debug ("Neighbor Event %s: *1Way-Received*", on->name); >+ >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_INIT, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_INIT, on, OSPF6_EVENT_1WAY_RECV); >+ thread_add_event (master, neighbor_change, on->ospf6_if, 0); >+ >+ ospf6_lsdb_remove_all (on->summary_list); >+@@ -538,7 +571,7 @@ >+ on->drouter = on->prev_drouter = 0; >+ on->bdrouter = on->prev_bdrouter = 0; >+ >+- ospf6_neighbor_state_change (OSPF6_NEIGHBOR_DOWN, on); >++ ospf6_neighbor_state_change (OSPF6_NEIGHBOR_DOWN, on, OSPF6_EVENT_INACT_T); >+ thread_add_event (master, neighbor_change, on->ospf6_if, 0); >+ >+ listnode_delete (on->ospf6_if->neighbor_list, on); >+diff -u -r ../quagga-0.99.18_org/ospf6d/ospf6_neighbor.h ./ospf6d/ospf6_neighbor.h >+--- ../quagga-0.99.18_org/ospf6d/ospf6_neighbor.h 2011-03-21 10:43:52.000000000 +0100 >++++ ./ospf6d/ospf6_neighbor.h 2011-03-31 17:20:15.000000000 +0200 >+@@ -107,6 +107,20 @@ >+ >+ extern const char *ospf6_neighbor_state_str[]; >+ >++/* Neighbor event state */ >++#define OSPF6_EVENT_HELLO_RECV 1 >++#define OSPF6_EVENT_2WAY 2 >++#define OSPF6_EVENT_NEG_DONE 3 >++#define OSPF6_EVENT_EXCH_DONE 4 >++#define OSPF6_EVENT_LOAD_DONE 5 >++#define OSPF6_EVENT_ADJ_OK 6 >++#define OSPF6_EVENT_SEQ_MISS 7 >++#define OSPF6_EVENT_BAD_LSREQ 8 >++#define OSPF6_EVENT_1WAY_RECV 9 >++#define OSPF6_EVENT_INACT_T 10 >++ >++extern const char *ospf6_nsm_event_str[]; >++ >+ >+ /* Function Prototypes */ >+ int ospf6_neighbor_cmp (void *va, void *vb); >+diff -u -r ../quagga-0.99.18_org/ospf6d/ospf6_top.c ./ospf6d/ospf6_top.c >+--- ../quagga-0.99.18_org/ospf6d/ospf6_top.c 2011-03-21 14:43:34.000000000 +0100 >++++ ./ospf6d/ospf6_top.c 2011-03-31 17:23:51.000000000 +0200 >+@@ -312,6 +312,60 @@ >+ return CMD_SUCCESS; >+ } >+ >++DEFUN (ospf6_log_adjacency_changes, >++ ospf6_log_adjacency_changes_cmd, >++ "log-adjacency-changes", >++ "Log changes in adjacency state\n") >++{ >++ struct ospf6 *o; >++ o = (struct ospf6 *) vty->index; >++ >++ SET_FLAG(o->flag, OSPF6_LOG_ADJACENCY_CHANGES); >++ return CMD_SUCCESS; >++} >++ >++DEFUN (ospf6_log_adjacency_changes_detail, >++ ospf6_log_adjacency_changes_detail_cmd, >++ "log-adjacency-changes detail", >++ "Log changes in adjacency state\n" >++ "Log all state changes\n") >++{ >++ struct ospf6 *o; >++ o = (struct ospf6 *) vty->index; >++ >++ SET_FLAG(o->flag, OSPF6_LOG_ADJACENCY_CHANGES); >++ SET_FLAG(o->flag, OSPF6_LOG_ADJACENCY_DETAIL); >++ return CMD_SUCCESS; >++} >++ >++DEFUN (no_ospf6_log_adjacency_changes, >++ no_ospf6_log_adjacency_changes_cmd, >++ "no log-adjacency-changes", >++ NO_STR >++ "Log changes in adjacency state\n") >++{ >++ struct ospf6 *o; >++ o = (struct ospf6 *) vty->index; >++ >++ UNSET_FLAG(o->flag, OSPF6_LOG_ADJACENCY_DETAIL); >++ UNSET_FLAG(o->flag, OSPF6_LOG_ADJACENCY_CHANGES); >++ return CMD_SUCCESS; >++} >++ >++DEFUN (no_ospf6_log_adjacency_changes_detail, >++ no_ospf6_log_adjacency_changes_detail_cmd, >++ "no log-adjacency-changes detail", >++ NO_STR >++ "Log changes in adjacency state\n" >++ "Log all state changes\n") >++{ >++ struct ospf6 *o; >++ o = (struct ospf6 *) vty->index; >++ >++ UNSET_FLAG(o->flag, OSPF6_LOG_ADJACENCY_DETAIL); >++ return CMD_SUCCESS; >++} >++ >+ DEFUN (ospf6_interface_area, >+ ospf6_interface_area_cmd, >+ "interface IFNAME area A.B.C.D", >+@@ -648,6 +702,15 @@ >+ if (ospf6->router_id_static != 0) >+ vty_out (vty, " router-id %s%s", router_id, VNL); >+ >++ /* log-adjacency-changes flag print. */ >++ if (CHECK_FLAG(ospf6->flag, OSPF6_LOG_ADJACENCY_CHANGES)) >++ { >++ vty_out(vty, " log-adjacency-changes"); >++ if (CHECK_FLAG(ospf6->flag, OSPF6_LOG_ADJACENCY_DETAIL)) >++ vty_out(vty, " detail"); >++ vty_out(vty, "%s", VTY_NEWLINE); >++ } >++ >+ ospf6_redistribute_config_write (vty); >+ ospf6_area_config_write (vty); >+ >+@@ -700,6 +763,13 @@ >+ >+ install_default (OSPF6_NODE); >+ install_element (OSPF6_NODE, &ospf6_router_id_cmd); >++ >++ /* "ospf log-adjacency-changes" commands. */ >++ install_element (OSPF6_NODE, &ospf6_log_adjacency_changes_cmd); >++ install_element (OSPF6_NODE, &ospf6_log_adjacency_changes_detail_cmd); >++ install_element (OSPF6_NODE, &no_ospf6_log_adjacency_changes_cmd); >++ install_element (OSPF6_NODE, &no_ospf6_log_adjacency_changes_detail_cmd); >++ >+ install_element (OSPF6_NODE, &ospf6_interface_area_cmd); >+ install_element (OSPF6_NODE, &no_ospf6_interface_area_cmd); >+ } >+diff -u -r ../quagga-0.99.18_org/ospf6d/ospf6_top.h ./ospf6d/ospf6_top.h >+--- ../quagga-0.99.18_org/ospf6d/ospf6_top.h 2011-03-21 14:43:34.000000000 +0100 >++++ ./ospf6d/ospf6_top.h 2011-03-31 17:24:33.000000000 +0200 >+@@ -62,7 +62,9 @@ >+ struct thread *maxage_remover; >+ }; >+ >+-#define OSPF6_DISABLED 0x01 >++#define OSPF6_DISABLED 0x01 >++#define OSPF6_LOG_ADJACENCY_CHANGES 0x02 >++#define OSPF6_LOG_ADJACENCY_DETAIL 0x04 >+ >+ /* global pointer for OSPF top data structure */ >+ extern struct ospf6 *ospf6; >diff -r -N -upwb ../quagga-0.99.17/files/patch-ospf6d-segfault ./files/patch-ospf6d-segfault >--- ../quagga-0.99.17/files/patch-ospf6d-segfault 1970-01-01 00:00:00.000000000 +0000 >+++ ./files/patch-ospf6d-segfault 2011-04-02 13:14:06.000000000 +0000 >@@ -0,0 +1,12 @@ >+--- ../quagga-0.99.18_org/ospf6d/ospf6_zebra.c 2011-03-21 10:43:52.000000000 +0100 >++++ ospf6d/ospf6_zebra.c 2011-04-02 00:24:49.000000000 +0200 >+@@ -132,6 +132,9 @@ >+ struct interface *ifp; >+ >+ ifp = zebra_interface_state_read (zclient->ibuf); >++ if (ifp == NULL) >++ return 0; >++ >+ if (IS_OSPF6_DEBUG_ZEBRA (RECV)) >+ zlog_debug ("Zebra Interface state change: " >+ "%s index %d flags %llx metric %d mtu %d", >diff -r -N -upwb ../quagga-0.99.17/files/patch-rtadv ./files/patch-rtadv >--- ../quagga-0.99.17/files/patch-rtadv 1970-01-01 00:00:00.000000000 +0000 >+++ ./files/patch-rtadv 2011-04-11 11:02:18.000000000 +0000 >@@ -0,0 +1,13 @@ >+--- ../quagga-0.99.18_org/zebra/rtadv.c 2011-04-02 13:22:09.000000000 +0000 >++++ zebra/rtadv.c 2011-04-11 11:01:34.000000000 +0000 >+@@ -1388,8 +1388,8 @@ >+ "Neighbor discovery\n" >+ "Default router preference\n" >+ "High default router preference\n" >+- "Low default router preference\n" >+- "Medium default router preference (default)\n") >++ "Medium default router preference (default)\n" >++ "Low default router preference\n") >+ { >+ struct interface *ifp; >+ struct zebra_if *zif;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 156332
: 114643 |
114644
|
114645