[quagga-dev 16634] Re: [99attendees] [dev] Open source routing @ ietf meetup

2017-07-20 Thread Lou Berger
Thanks all for the (hopefully useful) meetup.  I guess we'll need a larger 
room or restaurant reservation next time!



On July 20, 2017 4:05:16 PM Phil Shafer  wrote:


  Anyone interested in joining a "bring your own lunch" gathering
of folks using/building open source routing code,  please drop in to
"London" on Thursday during lunch (noon).  There is no agenda or slides...


I wanted to pass along a pointer to the software I mentioned at
this meeting:

http://juniper.github.io/libxo/libxo-manual.html
https://github.com/Juniper/libxo

Thanks,
 Phil

___
99attendees mailing list
99attend...@ietf.org
https://www.ietf.org/mailman/listinfo/99attendees




___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16632] Re: Open source routing @ ietf meetup

2017-07-17 Thread Lou Berger
woops - wrong room - Istanbul, not London...

On 7/17/2017 7:42 PM, Lou Berger wrote:
> Hi,
>Anyone interested in joining a "bring your own lunch" gathering
> of folks using/building open source routing code,  please drop in to
> "London" on Thursday during lunch (noon).  There is no agenda or slides...
> 
> Cheers,
> Lou
> 
___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16631] Open source routing @ ietf meetup

2017-07-17 Thread Lou Berger
Hi,
   Anyone interested in joining a "bring your own lunch" gathering
of folks using/building open source routing code,  please drop in to
"London" on Thursday during lunch (noon).  There is no agenda or slides...

Cheers,
Lou
___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16595] Re: Meetup @IETF this week?

2017-03-28 Thread Lou Berger
Hi - given the likely logistics issue of finding a place for folks
during lunch I reserved a room -- Vevey 4

It is bring your own -- see you there anytime between  11:30-1:00 (I'll
be there a few minutes late as I'm going to get my lunch right after the
1st session)...

Lou


On 3/27/2017 7:39 AM, Lou Berger wrote:
> Anyone interested in meeting up this week?  How about continuing the 
> traditional Thursday lunchtime in the hotel lobby?
>
> Lou
>
> PS I'd be happy to discuss the v4 BGP issue that some have reported...
>
>
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16594] Meetup @IETF this week?

2017-03-27 Thread Lou Berger
Anyone interested in meeting up this week?  How about continuing the 
traditional Thursday lunchtime in the hotel lobby?


Lou

PS I'd be happy to discuss the v4 BGP issue that some have reported...



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16403] Thursday lunch meet up @ietf

2016-11-15 Thread Lou Berger

Anyone interested? We can meet up at ietf reception, near park ballroom 2



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16330] Re: [PATCH v2 1/2] bgpd: VRF vty configuration, RIB table creation

2016-10-21 Thread Lou Berger
 Hi Philippe,


On October 20, 2016 9:32:38 AM Philippe Guibert
 wrote:

> On Wed, Oct 19, 2016 at 2:22 PM, Lou Berger  wrote:
>
> Hello Lou,
>
>> I think either we're talking past each other are have some other
>> major disconnect.
>
> Let me reassure you. If both of us speak not at the same time design and
> concepts,this may be problematic :-)

okay, I think ;-)

>  About the concepts you are talking about, I agree with you.
> Regarding design issue, I think there is a misunderstanding because I
> link RD with RTs, within a VRF.
> Whereas you point the following:
> - associate RD with VPN flows
Not sure what you mean here.

I don't understand what "VPN" means to you or in the config model.  BGP
LxVPNs have VRFs and Route Distribution semantics.  Together these
semantics can be combined to support LxVPNs.

I think having a default (outgoing) RD per VRF is fine (and sort of the
"normal" case.)

> - associate RT set with VRF
>
> The design currently is not aware of the underlying VRF it works on.
That's fine.

> One reason is that this work is pure signalling, there is no dataplane
> interaction.

As is always the the case for BGP ;-)

>
> I think it should be possible, to adapt the configuration. For
> instance,  for a VPN network route,
> to know which VRF it uses, and consequently, which RT set.

I agree.

>
> Before going further, can I ask you if we share the same point of view
> about this patchwork issue ?

I think we may have a conceptual model disconnect.  To me a VPN is made
up of a collection on VRFs, and BGP mechanisms are centered arounf these
(VRFs) not VPNs.  Consequently, I'd suggest that the key word VRF be
used vs VPN in config / VTY.  (although if VPN=VRF, always, the change
is just a cosmetic one and might not be worth it.)


> Do you see other points to discuss ?
>

Well, we need to ensure that route distribution happens properly for all
cases (including RR).  See below for more specific comments.


> Best Regards,
>
> Philippe
>
>> Per BGP LxVPNs, we really should distinguish between VRFs and (vpn)
>> route distribution.
>>
>> WRT VRFs:
>>
>> The contents of a VRF imported from BGP is determined by one or more
>> (import) RTs. RDs are ignored at this point.
>>
>> An outgoing VPN route is exported to BGP with one or more (export) RTs.
>> One configured RD is typically used on outgoing routes exported from a
>> VRF (note not VPN) , but multiple routes (identified by different RDs)
>> may exist across a single VPN (as identified by an RT set).
>>
>> WRT Route distribution:
>>
>> Ignoring RT/community filtering, which currently isn't in the code, BGP
>> route distribution basically ignores RTs and uses standard route
>> selection based on NRLI route which includes the RD+prefix.  This means
>> that different RDs can not only be used to segregate prefixes that exist
>> within a VPN (and are identified with disjoint sets of RTs) they can
>> also be use to support multi-path routes within a VPN (and are
>> identified with same/overlapping sets of RTs).  BTW RRs only care about
>> this part.
>>
>> So keying a VPN/VRF off an RD just seems wrong, particularly for the
>> import case where RD is ignored.
>>
>> Lou
>>
>> On 10/19/2016 3:59 AM, Philippe Guibert wrote:
>>> On Tue, Oct 18, 2016 at 3:56 PM, Lou Berger  wrote:
>>>
>>> Hello Lou,
>>>
>>> Please read below my comments.
>>> Consecutive to your feedback, I think there are some improvements to bring,
>>> mainly about configuration and structure naming.
>>>
>>>> It looks like RD is your key to a VRF, is this right?
>>>> This doesn't match the semantics of BGP VPNs, where RDs are independent
>>>> of VRF.  (RT set is really the critical thing.)
>>> Most of the modifications have been done around what is called the
>>> "VRF structure".

This is good and aligned with the suggestion to move config to be per VRF.

>>>
>>> The RD is mapped to that "VRF structure", but the RT also. This is a
>>> one-to-one mapping.
>>> That "VRF structure" has a RIB table where RT imports are processed.
>>>

I think a mapping of VRF to RT set is right.  Having a default RD for
VRF export is also good.

>>> I mean, on the design point of view, I don't make a difference between
>>> a RD and a RT.

I think this is a mistake.  RD is about route (re)distribution
selection.  RT is about topology and VRF control.

>>> I just have to ensure that the incoming structure is available to
>>> import appro

[quagga-dev 16320] Re: Quagga 1.1.0 released

2016-10-19 Thread Lou Berger


On 10/19/2016 5:26 PM, John Kemp wrote:
> We usually disable zebra.  Something like a route server.
we commonly do the same.

> Not sure if this hits other folks as a default behavior, but...
> we get thousands of warning messages like:
>
>   sendmsg_nexthop: Can't send NH register, Zebra client not established
>
> Recommended approach on this one?
set log level to notification, or if you can recompile, delete the log
message. 

Lou

> John Kemp
>
> ---
>
> bgpd/bgp_nht.c:
>
> 387 static void
> 388 sendmsg_nexthop (struct bgp_nexthop_cache *bnc, int command)
> 389 {
> 390   struct stream *s;
> 391   struct prefix *p;
> 392   int ret;
> 393
> 394   /* Check socket. */
> 395   if (!zclient || zclient->sock < 0)
> 396 {
> 397   zlog_debug("%s: Can't send NH register, Zebra client not
> established",
> 398  __FUNCTION__);
> 399   return;
> 400 }
>
>
>
> On 10/18/16 7:50 AM, Paul Jakma wrote:
>> Quagga 1.1.0 has been released, available from the usual place:
>>
>>   https://download.savannah.gnu.org/releases/quagga/
>>
>> This is a release with a number of new features, and many bug fixes.
>> Notably:
>>
>> * Greatly improved nexthop resolution for recursive routes. (Cumulus)
>> * Event driven nexthop resolution for BGP (Cumulus)
>> * Route tags support (Piotr Chytła, Packet Consulting)
>> * Transport of TE related metrics over OSPF, IS-IS (Olivier Dugeon, Orange)
>> * IPv6 Multipath for zebra and BGP (Ayan Banerjee, Cumulus)
>>
>> This release also changed the default of 'link-detect' state,
>> controlling whether zebra will respond to link-state events and
>> consider an interface to be down when link is down. To retain current
>> the behavior save your config before updating, otherwise remove the
>> 'link-detect' flag from your config prior to updating. There is also a
>> new global 'default link-detect (on|off)' flag to configure the global
>> default.
>>
>> This release includes the security fixes of the 1.0.20161017 release.
>>
>> Thanks to all the contributors, who include:
>>
>> Andrej Ota 
>> Avneesh Sachdev 
>> Ayan Banerjee 
>> Balaji 
>> Boian Bonev 
>> boris yakubov 
>> Christian Franke 
>> Christian Franke 
>> Colin Petrie 
>> Daniel Walton 
>> David Lamparter 
>> Denil Vira 
>> Dinesh Dutt 
>> Donald Sharp 
>> Evgeny Uskov 
>> Igor Ryzhov 
>> Jafar Al-Gharaibeh 
>> James Li 
>> Jonathan Hart 
>> kitty 
>> Lou Berger 
>> Matthieu Boutier 
>> Olivier Dugeon 
>> Paul Jakma 
>> Paul Jakma 
>> Paul Jakma 
>> Pawel Wieczorkiewicz 
>> Philippe Guibert 
>> Piotr Chytła 
>> Pradosh Mohapatra 
>> Roman Hoog Antink 
>> Stas Nichiporovich 
>> Timo Teräs 
>> Udaya Shankara KS 
>> Vipin Kumar 
>> Vivek Venkatraman 
>>
>> See the full changelog available at the above URL for further details.
>> A summary of the changes are as follows:
>>
>>  bgp: add "debug bgp allow-martians" next hops and related code/commands
>>  bgp: bgp_nexthop init/free AFI_ETHER related NH tables
>>  bgpd: Add a null check in bgp_address_del() function when connected
>> addresses are removed.
>>  bgpd: add aspath_aggregate_mpath that preserves path length
>>  bgpd: Add [bestpath|multipath] option to 'show ip bgp x.x.x.x'
>>  bgpd: Add clear command to force a bestpath recalculation and
>> re-advertisement of a prefix
>>  bgpd: Add flag to not change e{u,g}id on startup and run as
>> unprivileged user
>>  bgpd: Addition of bgp dampening configuration commands under
>> IPv4/multicast
>>  bgpd: Addition of dampening show commands under v4 unicast/multicast tree
>>  bgpd: Add new configuration cli for graceful restart.
>>  bgpd: Alow gracefull shutdown of peers
>>  bgpd: atomic-aggregate is lost when we aggregate another aggregate that
>> has atomic-aggregate
>>  bgpd: bgp_nexthop_cache not deleted with peers
>>  bgpd: Correct a few fuzz failures in BGP
>>  bgpd: crash if attributes alone consume > 4096 bytes
>>  bgpd: Display BGP paths with unreachable nexthops as invalid
>>  bgpd: ditch unused bgp_node_*() functions
>>  bgpd: divorce router-id logic from CLI & zebra
>>  bgpd, doc: Allow route-map policy modifications to also affect route
>> reflectors.
>>  bgpd, doc, lib, zebra: nexthop-tracking in zebra
>>  bgpd: don't co

[quagga-dev 16310] Re: [PATCH v2 1/2] bgpd: VRF vty configuration, RIB table creation

2016-10-19 Thread Lou Berger
Philippe,

I think either we're talking past each other are have some other
major disconnect.

Per BGP LxVPNs, we really should distinguish between VRFs and (vpn)
route distribution.

WRT VRFs:

The contents of a VRF imported from BGP is determined by one or more
(import) RTs. RDs are ignored at this point.

An outgoing VPN route is exported to BGP with one or more (export) RTs. 
One configured RD is typically used on outgoing routes exported from a
VRF (note not VPN) , but multiple routes (identified by different RDs)
may exist across a single VPN (as identified by an RT set).

WRT Route distribution:

Ignoring RT/community filtering, which currently isn't in the code, BGP
route distribution basically ignores RTs and uses standard route
selection based on NRLI route which includes the RD+prefix.  This means
that different RDs can not only be used to segregate prefixes that exist
within a VPN (and are identified with disjoint sets of RTs) they can
also be use to support multi-path routes within a VPN (and are
identified with same/overlapping sets of RTs).  BTW RRs only care about
this part.

So keying a VPN/VRF off an RD just seems wrong, particularly for the
import case where RD is ignored.

Lou

On 10/19/2016 3:59 AM, Philippe Guibert wrote:
> On Tue, Oct 18, 2016 at 3:56 PM, Lou Berger  wrote:
>
> Hello Lou,
>
> Please read below my comments.
> Consecutive to your feedback, I think there are some improvements to bring,
> mainly about configuration and structure naming.
>
>> It looks like RD is your key to a VRF, is this right?
>> This doesn't match the semantics of BGP VPNs, where RDs are independent
>> of VRF.  (RT set is really the critical thing.)
> Most of the modifications have been done around what is called the
> "VRF structure".
>
> The RD is mapped to that "VRF structure", but the RT also. This is a
> one-to-one mapping.
> That "VRF structure" has a RIB table where RT imports are processed.
>
> I mean, on the design point of view, I don't make a difference between
> a RD and a RT.
> I just have to ensure that the incoming structure is available to
> import appropriate entries.
> in order to import a RT entry, I have to create a RT mapped to an
> other "VRF structure".
>
> If the RT is not mapped to that "VRF structure", then the RIB
> associated to that RT is not present.
> Then the import in the RIB RT will not be possible.
>
> To illustrate, a quick example shows that routerA sends a NLRI entry to 
> routerB.
>
> routerA> rd 200:111 import 100:111 export 100:111 300:111
> routerA> network 10.10.10.0/24 rd 200:111
> routerB> rd 100:111 import 100:111 export 100:111
>
> RouterB will import NLRI entry to RT 100:111
>   This is possible because RouterB has the line rd100:111 ... created.
>
> RouterB will not import NLRI entry to RT 300:111, since there is no
> underlying structure.
>
> About "VRF structure", My intention is not to interfere about current
> VRF implementation in Quagga.
> From the configuration point of view, it is easy to find in literature
> cisco configuration where VRF
> and RD configuration maps together.
> Could you be more specific about the reason to dissociate RD from VRF ?
>
> One modification improvement would consist in :
> - That "VRF structure" could be renamed to "RT/RD structure"
> - some show commands would be impacted. Instead of dumping VRF RIB
> table, one would dump RT/RD RIB table
> - the commit logs would be reworked
>
>> The main implication of
>> this is that multipath/ECMP isn't (at least easily)  supported.
>> Also,
>> best path selection on import routes will be wrong if keyed based on RD
> Multipath feature impacts both global RIB, and RIB per RT.
>
> As before, let me illustrate this with a 3 router setup topology.
> router A) and router B) send 2 NLRI ECMP entries to router C)
>
> routerA> rd 200:111 import 100:111 export 100:111
> routerA> network 10.10.10.0/24 rd 200:111 
>
> routerB> rd 200:111 import 100:111 export 100:111
> routerB> network 10.10.10.0/24 rd 200:111 
>
> routerC> rd 100:111 import 100:111 export 100:111
>
> When receiving a NLRI entry from routerB), and routerA), bgp_update()
> will append the entry in the global RIB, according to RD field.
>
> routerC> show bgp ipv4 vpn
> Route Distinguisher : 200:111
> *> 10.10.10.0/24 
> => 10.10.10.0/24 
>
> Then, the import processing is storing the same 2 entries in RT RIB.
> routerC> show ip bgp rd 100:111
> Route Distinguisher : 100:111
> *> 10.10.10.0/24 
> => 10.10.10.0/24 
>
> By playing with configuration, it is possible to have multipath
> entries in the 

[quagga-dev 16306] Re: [PATCH v2 1/2] bgpd: VRF vty configuration, RIB table creation

2016-10-18 Thread Lou Berger
It looks like RD is your key to a VRF, is this right?

This doesn't match the semantics of BGP VPNs, where RDs are independent
of VRF.  (RT set is really the critical thing.)  The main implication of
this is that multipath/ECMP isn't (at least easily)  supported.   Also,
best path selection on import routes will be wrong if keyed based on RD
and I'm not sure what's being done on route reflectors. 

I really think that BGP VRFs cannot / must not be keyed based on RDs. 
If this is just the config interface, then changing this should be
pretty straight forward.

What do you think?

Lou

PS I think an update to bgpd.texi is needed for this patch

On 10/11/2016 4:17 AM, Philippe Guibert wrote:
> This commit introduces the BGP VRF configuration, and BGP VRF RIB
> table.
> It includes the ability for a BGP to configure its own route
> distinguisher ( aka VRF). New vty commands introduced:
>
> (config-router)# vrf rd 
>
> This structure permits configuring import and export route targets,
> which is defined by RFC4360.
> (config-router)# vrf rd  exports 
> (config-router)# vrf rd  imports 
>
> It brings some improvements.
> - for a BGP speaker when emitting BGP updates, the exported route
> targets will be mapped to BGP extended communities associated with
> the BGP update for the defined Route distinguisher.
> This commit does not enhance the support for emitting those BGP
> extended communities, but provides the mecanism.
> - for a BGP speaker when receiving BGP updaets. Its import route
> target will be looked up, in order to match NLRI route distinguisher.
> Then, if matching, the entry would be exported to a RIB per VRF table.
>
> As mentioned before, the commit also introduces a BGP VRF RIB table per
> Route distinguisher configured. This table aims at receiving BGP NLRI
> entries, with matching import and export route targets.
> This commit does not take into account the fullfill of this table,
> but creates it.
>
> Signed-off-by: David Lamparter 
> Signed-off-by: Philippe Guibert 
> ---
>  bgpd/bgp_route.c | 193 +++--
>  bgpd/bgp_route.h |   4 ++
>  bgpd/bgp_table.h |   3 +
>  bgpd/bgp_vty.c   | 177 +
>  bgpd/bgpd.c  | 199 
> ++-
>  bgpd/bgpd.h  |  58 +---
>  lib/memtypes.c   |   2 +
>  7 files changed, 622 insertions(+), 14 deletions(-)
>
> diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
> index 4cb6c141bcdc..abad79f5c9d4 100644
> --- a/bgpd/bgp_route.c
> +++ b/bgpd/bgp_route.c
> @@ -34,6 +34,7 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, 
> Boston, MA
>  #include "plist.h"
>  #include "thread.h"
>  #include "workqueue.h"
> +#include "hash.h"
>  
>  #include "bgpd/bgpd.h"
>  #include "bgpd/bgp_table.h"
> @@ -61,6 +62,12 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, 
> Boston, MA
>  extern const char *bgp_origin_str[];
>  extern const char *bgp_origin_long_str[];
>  
> +static void
> +bgp_static_withdraw_safi (struct bgp *bgp, struct prefix *p, afi_t afi,
> +  safi_t safi, struct prefix_rd *prd, u_char *tag);
> +static void
> +bgp_static_free (struct bgp_static *bgp_static);
> +
>  static struct bgp_node *
>  bgp_afi_node_get (struct bgp_table *table, afi_t afi, safi_t safi, struct 
> prefix *p,
> struct prefix_rd *prd)
> @@ -77,7 +84,11 @@ bgp_afi_node_get (struct bgp_table *table, afi_t afi, 
> safi_t safi, struct prefix
>prn = bgp_node_get (table, (struct prefix *) prd);
>  
>if (prn->info == NULL)
> - prn->info = bgp_table_init (afi, safi);
> +{
> +  struct bgp_table *newtab = bgp_table_init (afi, safi);
> +  newtab->prd = *prd;
> +  prn->info = newtab;
> +}
>else
>   bgp_unlock_node (prn);
>table = prn->info;
> @@ -1505,12 +1516,86 @@ bgp_process_announce_selected (struct peer *peer, 
> struct bgp_info *selected,
>  else
> bgp_adj_out_unset (rn, peer, p, afi, safi);
>  break;
> +  case BGP_TABLE_VRF:
> +/* never called */
> +assert (0);
>  }
>  
>bgp_attr_flush (&attr);
>return 0;
>  }
>  
> +void bgp_vrf_clean_tables (struct bgp_vrf *vrf)
> +{
> +  afi_t afi;
> +  for (afi = AFI_IP; afi < AFI_MAX; afi++)
> +{
> +  struct bgp_info *ri, *ri_next;
> +  struct bgp_node *rn;
> +
> +  for (rn = bgp_table_top (vrf->rib[afi]); rn; rn = bgp_route_next (rn))
> +for (ri = rn->info; ri; ri = ri_next)
> +  {
> +ri_next = ri->next;
> +bgp_info_reap (rn, ri);
> +  }
> +  bgp_table_finish (&vrf->rib[afi]);
> +
> +  for (rn = bgp_table_top (vrf->route[afi]); rn; rn = bgp_route_next 
> (rn))
> +if (rn->info)
> +  {
> +struct bgp_static *bs = rn->info;
> +bgp_static_withdraw_safi (vrf->bgp, &rn->p, afi, SAFI_MPLS_VPN,
> +   

[quagga-dev 16303] Re: Doing something different wrt patch integration

2016-10-17 Thread Lou Berger
Paul,

So where do you want to go with this?  Perhaps, propose specific
changes to the community (based on current docs, or last round of
proposed) and see if there's buy-in? 

Really, it comes down to how you plan to do things differently for the
next release.

Lou

On 10/3/2016 5:44 AM, Paul Jakma wrote:
> Hi Lou,
>
> On Fri, 30 Sep 2016, Lou Berger wrote:
>
>> Paul,
>>
>> Just restating things I've said here before :
>>
>> - I don't the issue is backlog
> It definitely was an issue. People were complaining about how long stuf 
> had been waiting. I'm not imagining that, pretty sure.
>
> More generally, there are issue_s_. I don't think there is any /one/ 
> issue, the solving of which there is a magic bullet for.
>
>> - I do think the issue is that in order for
>>   organizations/companies/individuals to invest in an open source
>>   project that there needs to be process transparency, predicable
>>   releases, and a deterministic way to get submissions/patches into a
>>   release.
> process transparency, regular releases, deterministic process for 
> submissions, yes, all good. Though "to get submissions/patches into a 
> release" is assuming a bit too much.
>
>> - I frankly don't see how the current model scales or satisfies this.
> Well, based on queue length it has objectively done better than what was 
> there before. As the queue length has gone from increasing to 
> decreasing, and from years of stuff waiting for action on the review to 
> less than a years worth of stuff (assuming Martin's full protocol tests 
> pass and we get a release out RSN).
>
> Is it the best model for a steady state? I don't know. Are there further 
> improvements to make, no doubt.
>
> However, it seemed the best way to get stuff done on the backlog, in a 
> fairly transparent and systematic way, given the lack of willing 
> resources.
>
>> - A bunch of the community worked together to come up with a proposed
>>   new process and wanted to try it out -- which, from my perspective,
>>   you vetoed.
> Cause it wanted to change _everything_:
>
> - The ethos and constitution of Quagga
>
>From one where the onus is on submitters to get submissions to a
>standard high enough in terms of (as applicable) design documentation
>and advance planning, code organisation and style, and testing, so
>that at least no one else strongly enough to object;
>
>To one where alliances of contributors, potentially some with next to
>_no prior involvement_ in Quagga, could band together to shove stuff
>through, and where reviewers with objections would have only days to
>try rally others to their view. To the extent I'm mistaken on that, it
>was to the extent this was under-specified (however, the intent of
>majority voting for stuff to go in was clearly there).
>
>I.e., code going in based on the 51% with the /lowest/ standards, and
>a more political and gameable process.
>
>I think the biggest gulf between the proposers of the mega-changes and
>myself was in this area.
>
> - The integration process was actually _gaining_ overhead and
>bureaucracy from a day to day process.
>
>Patches to require explicit 2nd ACKs - that's overhead. IME with
>Quagga, most stuff doesn't need ACKs. People will object to
>objectionable stuff, and they'll let it pass otherwise. A "Revisions
>needed" model for those minority of patches is more efficient than
>a "ack for every patch".
>
> - The proposed integration process was more a contributors wish list
>than a readily implementable integration process.
>
>Patches to go be applied within days, by who? How?
>
>I've written before about lessons learned in the past from Quagga, on
>patches can more easily fall through the cracks when it isn't clear
>who is responsible for applying. Also "days" - there are a number of
>problems with that, in various dimensions (see also above on ethos).
>
>The contributors view of the process is only half the story. It also
>has to work for and be efficient for the integrator(s). See also
>prior. If you increase the overheads for integrators, then things
>likely get worse.
>
> - Changing the communication tools from email to video conferencing.
>
>Real-time comms is nice for forming opinions, but it's ungood for
>definitive decision making comms. Quagga, as with many open-source
>projects, is distributed across the world, and it impossible to suit
>everyone (and people in global orgs may already have calendar
> 

[quagga-dev 16257] [PATCHv2] bgp: add bgp_isvalid_nexthop helper and additional NHT zebra checks (also restores check from original patch)

2016-10-11 Thread Lou Berger
---
 bgpd/bgp_nht.c | 16 +++-
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c
index b5d830e..171cb20 100644
--- a/bgpd/bgp_nht.c
+++ b/bgpd/bgp_nht.c
@@ -52,6 +52,13 @@ static int make_prefix(int afi, struct bgp_info *ri, struct 
prefix *p);
 static void path_nh_map(struct bgp_info *path, struct bgp_nexthop_cache *bnc,
int keep);
 
+static int
+bgp_isvalid_nexthop (struct bgp_nexthop_cache *bnc)
+{
+  return (bgp_zebra_num_connects() == 0 ||
+  (bnc && CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID)));
+}
+
 int
 bgp_find_nexthop (struct bgp_info *path, int connected)
 {
@@ -63,8 +70,7 @@ bgp_find_nexthop (struct bgp_info *path, int connected)
   if (connected && !(CHECK_FLAG(bnc->flags, BGP_NEXTHOP_CONNECTED)))
 return 0;
 
-  return (bgp_zebra_num_connects() == 0 ||
-  CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID));
+  return (bgp_isvalid_nexthop(bnc));
 }
 
 static void
@@ -194,7 +200,7 @@ bgp_find_or_add_nexthop (afi_t afi, struct bgp_info *ri, 
struct peer *peer,
   else if (peer)
 bnc->nht_info = (void *)peer; /* NHT peer reference */
 
-  return (CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID));
+  return (bgp_isvalid_nexthop(bnc));
 }
 
 void
@@ -497,7 +503,7 @@ evaluate_paths (struct bgp_nexthop_cache *bnc)
* reachable/unreachable.
*/
   if ((CHECK_FLAG(path->flags, BGP_INFO_VALID) ? 1 : 0) !=
- (CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID) ? 1 : 0))
+ (bgp_isvalid_nexthop(bnc) ? 1 : 0))
{
  if (CHECK_FLAG (path->flags, BGP_INFO_VALID))
{
@@ -514,7 +520,7 @@ evaluate_paths (struct bgp_nexthop_cache *bnc)
}
 
   /* Copy the metric to the path. Will be used for bestpath computation */
-  if (CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID) && bnc->metric)
+  if (bgp_isvalid_nexthop(bnc) && bnc->metric)
(bgp_info_extra_get(path))->igpmetric = bnc->metric;
   else if (path->extra)
path->extra->igpmetric = 0;
-- 
2.1.3


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16254] Re: [PATCH] bgp: restore missing check from original ignore NHT change

2016-10-11 Thread Lou Berger


On 10/11/2016 7:04 AM, Paul Jakma wrote:
> I don't understand the subject. This isn't restoring anything, but 
> adding a missing check from the patch to make NHT work without zebra? Or 
> did I somehow drop that chunk from the original patch?
Yes, I patched a different spot - that is the one that is used in my
test cases.  Your change (under my change log) seems legitimate too, but
as far as I can tell it's in a function that is never called.

> Also, what about the tests on NEXTHOP_VALID in evaluate_paths? Do they 
> need to take bgp_zebra_num_connects into account? 
Fair point.  I'm not sure - but I think you are right.

> At which point, better 
> to do this valid check via a helper?
WFM.

Lou

> regards,
>
> Paul
>
> On Mon, 10 Oct 2016, Lou Berger wrote:
>
>> ---
>> bgpd/bgp_nht.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c
>> index b5d830e..7808505 100644
>> --- a/bgpd/bgp_nht.c
>> +++ b/bgpd/bgp_nht.c
>> @@ -194,7 +194,8 @@ bgp_find_or_add_nexthop (afi_t afi, struct bgp_info *ri, 
>> struct peer *peer,
>>   else if (peer)
>> bnc->nht_info = (void *)peer; /* NHT peer reference */
>>
>> -  return (CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID));
>> +  return (bgp_zebra_num_connects() == 0 ||
>> +  CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID));
>> }
>>
>> void
>>


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16230] Re: Proposed 8 testing Update

2016-10-10 Thread Lou Berger

On 10/10/2016 10:16 AM, Paul Jakma wrote:
> On Mon, 10 Oct 2016, Martin Winter wrote:
>
>> > Not what the exact plans is, but I prefer either a release branch 
>> > started now or new commits which are not only bug fixes to be held up 
>> > for a week to let the code “settle” and give everyone time to test.
> Ok, lets wait till the end of the week then.
>

I sent two NHT related changes to the list.  The first cleans up a
warning, so is optional.  The second change is a must - my other testing
is looking good.

Lou


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

[quagga-dev 16228] [PATCHv3 0/4] bgpd: add L3/L2VPN Virtual Network Control feature

2016-10-10 Thread Lou Berger
This is the third update of the Virtual Network Control feature.
Information on the previous version can be found in the archive at:
   https://lists.quagga.net/pipermail/quagga-dev/2016-May/015364.html
which was reviewed and ACK'ed on list.  

This patch set has been updated to the latest master, and combines
changes made during the ACK'ing process.  As before details in changes
and code can be found at https://github.com/LabNConsulting/quagga-vnc

The first version was submitted in March of 2014.

This patch set includes:
[PATCH 1/4] bgpd: eliminate RD related duplicate code in bgp_encap.c 
[PATCH 2/4] lib: add skiplist
[PATCH 3/4] lib: add route_table_get_default_delegate
[PATCH 4/4] bgpd: add L3/L2VPN Virtual Network Control feature

___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16227] [PATCHv3 2/4] lib: add skiplist

2016-10-10 Thread Lou Berger
---
 lib/Makefile.am |   6 +-
 lib/skiplist.c  | 683 
 lib/skiplist.h  | 159 +
 3 files changed, 845 insertions(+), 3 deletions(-)
 create mode 100644 lib/skiplist.c
 create mode 100644 lib/skiplist.h

diff --git a/lib/Makefile.am b/lib/Makefile.am
index be8495f..23aa179 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -14,7 +14,7 @@ libzebra_la_SOURCES = \
filter.c routemap.c distribute.c stream.c str.c log.c plist.c \
zclient.c sockopt.c smux.c agentx.c snmp.c md5.c if_rmap.c keychain.c 
privs.c \
sigevent.c pqueue.c jhash.c memtypes.c workqueue.c vrf.c \
-   event_counter.c nexthop.c
+   event_counter.c nexthop.c skiplist.c
 
 BUILT_SOURCES = memtypes.h route_types.h gitversion.h
 
@@ -30,7 +30,7 @@ pkginclude_HEADERS = \
plist.h zclient.h sockopt.h smux.h md5.h if_rmap.h keychain.h \
privs.h sigevent.h pqueue.h jhash.h zassert.h memtypes.h \
workqueue.h route_types.h libospf.h vrf.h fifo.h event_counter.h \
-   nexthop.h
+   nexthop.h skiplist.h
 
 noinst_HEADERS = \
plist_int.h
@@ -62,7 +62,7 @@ GITH=gitversion.h
 gitversion.h.tmp: $(srcdir)/../.git
@PERL@ $(srcdir)/gitversion.pl $(srcdir) > ${GITH}.tmp
 gitversion.h: gitversion.h.tmp
-   { test -f ${GITH} && diff -s -q ${GITH}.tmp ${GITH}; } || cp -v 
${GITH}.tmp ${GITH}
+   { test -f ${GITH} && diff -s -q ${GITH}.tmp ${GITH}; } || cp -v 
${GITH}.tmp ${GITH} 
 
 else
 .PHONY: gitversion.h
diff --git a/lib/skiplist.c b/lib/skiplist.c
new file mode 100644
index 000..8cf6158
--- /dev/null
+++ b/lib/skiplist.c
@@ -0,0 +1,683 @@
+/*
+ * Copyright 1990 William Pugh 
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * Permission to include in quagga provide on March 31, 2016
+ */
+
+/*
+ * Skip List impementation based on code from William Pugh.
+ * ftp://ftp.cs.umd.edu/pub/skipLists/
+ * 
+ * Skip Lists are a probabilistic alternative to balanced trees, as
+ * described in the June 1990 issue of CACM and were invented by 
+ * William Pugh in 1987. 
+ * 
+ * This file contains source code to implement a dictionary using 
+ * skip lists and a test driver to test the routines.
+ * 
+ * A couple of comments about this implementation:
+ *   The routine randomLevel has been hard-coded to generate random
+ *   levels using p=0.25. It can be easily changed.
+ *   
+ *   The insertion routine has been implemented so as to use the
+ *   dirty hack described in the CACM paper: if a random level is
+ *   generated that is more than the current maximum level, the
+ *   current maximum level plus one is used instead.
+ * 
+ *   Levels start at zero and go up to MaxLevel (which is equal to
+ * (MaxNumberOfLevels-1).
+ * 
+ * The run-time flag SKIPLIST_FLAG_ALLOW_DUPLICATES determines whether or
+ * not duplicates are allowed for a given list. If set, duplicates are
+ * allowed and act in a FIFO manner. If not set, an insertion of a value
+ * already in the list updates the previously existing binding.
+ * 
+ * BitsInRandom is defined to be the number of bits returned by a call to
+ * random(). For most all machines with 32-bit integers, this is 31 bits
+ * as currently set. 
+ */
+
+
+#include 
+
+#include "memory.h"
+#include "log.h"
+#include "vty.h"
+#include "skiplist.h"
+
+
+#define BitsInRandom 31
+
+#define MaxNumberOfLevels 16
+#define MaxLevel (MaxNumberOfLevels-1)
+#define newNodeOfLevel(l) XCALLOC(MTYPE_SKIP_LIST_NODE, sizeof(struct 
skiplistnode)+(l)*sizeof(struct skiplistnode *))
+
+static int randomsLeft;
+static int randomBits;
+static struct skiplist *skiplist_last_created; /* debugging hack */
+
+#if 1
+#define CHECKLAST(sl) do {\
+if ((sl)->header->forward[0] && !(sl)->last) assert(0);\
+if (!(sl)->header->forward[0] && (sl)->last) assert(0);\
+} while (0)
+#else
+#define CHECKLAST(sl)
+#endif
+
+
+static int
+randomLevel()
+{
+register int level = 0;
+register int b;
+
+do {
+   if (randomsLeft <= 0) {
+   randomBits = random();
+   randomsLeft = BitsInRandom/2;
+   }
+   b = randomBits&3;
+

[quagga-dev 16229] [PATCHv3 1/4] bgpd: eliminate RD related duplicate code in bgp_encap.c decode_rd_... apis are declared global in bgp_mplsvpn.c

2016-10-10 Thread Lou Berger
---
 bgpd/bgp_encap.c   | 45 -
 bgpd/bgp_mplsvpn.c |  8 
 bgpd/bgp_mplsvpn.h |  5 +
 3 files changed, 9 insertions(+), 49 deletions(-)

diff --git a/bgpd/bgp_encap.c b/bgpd/bgp_encap.c
index edd9d76..8361d3f 100644
--- a/bgpd/bgp_encap.c
+++ b/bgpd/bgp_encap.c
@@ -45,51 +45,6 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, 
Boston, MA
 #include "bgpd/bgp_vty.h"
 #include "bgpd/bgp_encap.h"
 
-static u_int16_t
-decode_rd_type (u_char *pnt)
-{
-  u_int16_t v;
-  
-  v = ((u_int16_t) *pnt++ << 8);
-  v |= (u_int16_t) *pnt;
-  return v;
-}
-
-
-static void
-decode_rd_as (u_char *pnt, struct rd_as *rd_as)
-{
-  rd_as->as  = (u_int16_t) *pnt++ << 8;
-  rd_as->as |= (u_int16_t) *pnt++;
-  
-  rd_as->val  = ((u_int32_t) *pnt++) << 24;
-  rd_as->val |= ((u_int32_t) *pnt++) << 16;
-  rd_as->val |= ((u_int32_t) *pnt++) << 8;
-  rd_as->val |= (u_int32_t) *pnt;
-}
-
-static void
-decode_rd_as4 (u_char *pnt, struct rd_as *rd_as)
-{
-  rd_as->as  = (u_int32_t) *pnt++ << 24;
-  rd_as->as |= (u_int32_t) *pnt++ << 16;
-  rd_as->as |= (u_int32_t) *pnt++ << 8;
-  rd_as->as |= (u_int32_t) *pnt++;
-  
-  rd_as->val  = ((u_int32_t) *pnt++ << 8);
-  rd_as->val |= (u_int32_t) *pnt;
-}
-
-static void
-decode_rd_ip (u_char *pnt, struct rd_ip *rd_ip)
-{
-  memcpy (&rd_ip->ip, pnt, 4);
-  pnt += 4;
-  
-  rd_ip->val = ((u_int16_t) *pnt++ << 8);
-  rd_ip->val |= (u_int16_t) *pnt;
-}
-
 static void
 ecom2prd(struct ecommunity *ecom, struct prefix_rd *prd)
 {
diff --git a/bgpd/bgp_mplsvpn.c b/bgpd/bgp_mplsvpn.c
index 047105d..392a239 100644
--- a/bgpd/bgp_mplsvpn.c
+++ b/bgpd/bgp_mplsvpn.c
@@ -35,7 +35,7 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, 
Boston, MA
 #include "bgpd/bgp_mplsvpn.h"
 #include "bgpd/bgp_packet.h"
 
-static u_int16_t
+u_int16_t
 decode_rd_type (u_char *pnt)
 {
   u_int16_t v;
@@ -57,7 +57,7 @@ decode_label (u_char *pnt)
 }
 
 /* type == RD_TYPE_AS */
-static void
+void
 decode_rd_as (u_char *pnt, struct rd_as *rd_as)
 {
   rd_as->as = (u_int16_t) *pnt++ << 8;
@@ -70,7 +70,7 @@ decode_rd_as (u_char *pnt, struct rd_as *rd_as)
 }
 
 /* type == RD_TYPE_AS4 */
-static void
+void
 decode_rd_as4 (u_char *pnt, struct rd_as *rd_as)
 {
   rd_as->as  = (u_int32_t) *pnt++ << 24;
@@ -83,7 +83,7 @@ decode_rd_as4 (u_char *pnt, struct rd_as *rd_as)
 }
 
 /* type == RD_TYPE_IP */
-static void
+void
 decode_rd_ip (u_char *pnt, struct rd_ip *rd_ip)
 {
   memcpy (&rd_ip->ip, pnt, 4);
diff --git a/bgpd/bgp_mplsvpn.h b/bgpd/bgp_mplsvpn.h
index 3299b9c..3fbbd33 100644
--- a/bgpd/bgp_mplsvpn.h
+++ b/bgpd/bgp_mplsvpn.h
@@ -41,9 +41,14 @@ struct rd_ip
   u_int16_t val;
 };
 
+extern u_int16_t decode_rd_type (u_char *);
 extern void bgp_mplsvpn_init (void);
 extern int bgp_nlri_parse_vpn (struct peer *, struct attr *, struct bgp_nlri 
*);
 extern u_int32_t decode_label (u_char *);
+extern void encode_label(u_int32_t, u_char *);
+extern void decode_rd_as (u_char *, struct rd_as *);
+extern void decode_rd_as4 (u_char *, struct rd_as *);
+extern void decode_rd_ip (u_char *, struct rd_ip *);
 extern int str2prefix_rd (const char *, struct prefix_rd *);
 extern int str2tag (const char *, u_char *);
 extern char *prefix_rd2str (struct prefix_rd *, char *, size_t);
-- 
2.1.3


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16226] [PATCHv3 3/4] lib: add route_table_get_default_delegate

2016-10-10 Thread Lou Berger
---
 lib/table.c | 6 ++
 lib/table.h | 3 +++
 2 files changed, 9 insertions(+)

diff --git a/lib/table.c b/lib/table.c
index da21361..a026b29 100644
--- a/lib/table.c
+++ b/lib/table.c
@@ -520,6 +520,12 @@ static route_table_delegate_t default_delegate = {
   .destroy_node = route_node_destroy
 };
 
+route_table_delegate_t *
+route_table_get_default_delegate(void)
+{
+  return &default_delegate;
+}
+
 /*
  * route_table_init
  */
diff --git a/lib/table.h b/lib/table.h
index 2ffd79b..16a91b4 100644
--- a/lib/table.h
+++ b/lib/table.h
@@ -141,6 +141,9 @@ extern struct route_table *route_table_init (void);
 extern struct route_table *
 route_table_init_with_delegate (route_table_delegate_t *);
 
+extern route_table_delegate_t *
+route_table_get_default_delegate(void);
+
 extern void route_table_finish (struct route_table *);
 extern void route_unlock_node (struct route_node *node);
 extern struct route_node *route_top (struct route_table *);
-- 
2.1.3


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16223] [PATCH] bgp: restore missing check from original ignore NHT change

2016-10-10 Thread Lou Berger
---
 bgpd/bgp_nht.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c
index b5d830e..7808505 100644
--- a/bgpd/bgp_nht.c
+++ b/bgpd/bgp_nht.c
@@ -194,7 +194,8 @@ bgp_find_or_add_nexthop (afi_t afi, struct bgp_info *ri, 
struct peer *peer,
   else if (peer)
 bnc->nht_info = (void *)peer; /* NHT peer reference */
 
-  return (CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID));
+  return (bgp_zebra_num_connects() == 0 ||
+  CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID));
 }
 
 void
-- 
2.1.3


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16217] [PATCH] bgp: fix warning in bgp_nht.c

2016-10-10 Thread Lou Berger
---
 bgpd/bgp_nht.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c
index 0cfcadd..b5d830e 100644
--- a/bgpd/bgp_nht.c
+++ b/bgpd/bgp_nht.c
@@ -40,6 +40,7 @@
 #include "bgpd/bgp_debug.h"
 #include "bgpd/bgp_nht.h"
 #include "bgpd/bgp_fsm.h"
+#include "bgpd/bgp_zebra.h"
 
 extern struct zclient *zclient;
 extern struct bgp_table *bgp_nexthop_cache_table[AFI_MAX];
-- 
2.1.3


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16208] Re: Proposed 8 testing Update

2016-10-07 Thread Lou Berger
woops, guess I should have checked the repo before sending (re #1) -
nice to see the change!!!


On 10/7/2016 1:15 PM, Lou Berger wrote:
> Paul/All,
>
> A couple of suggestions:
>
> 1) do the update to master now and release once the integration run
> completes
>
> 2) start immediately on the next release
>
> 3) require any multipart pass pull+regression using dev/automerge branch
> (you choose if only ack'ed patches should be pull requested or not.)
>
> Lou
>
> On 10/7/2016 12:44 PM, Paul Jakma wrote:
>> On Fri, 7 Oct 2016, Igor Ryzhov wrote:
>>
>>> Maybe you can also apply them and include into the release?
>> I'll have a look and see.
>>
>> Though, be even better to get just to steady integration and releases. 
>> There's no reason not to have releases every couple of months - assuming 
>> there's new stuff to be released.
>>
>> regards,


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16207] Re: Proposed 8 testing Update

2016-10-07 Thread Lou Berger
Paul/All,

A couple of suggestions:

1) do the update to master now and release once the integration run
completes

2) start immediately on the next release

3) require any multipart pass pull+regression using dev/automerge branch
(you choose if only ack'ed patches should be pull requested or not.)

Lou

On 10/7/2016 12:44 PM, Paul Jakma wrote:
> On Fri, 7 Oct 2016, Igor Ryzhov wrote:
>
>> Maybe you can also apply them and include into the release?
> I'll have a look and see.
>
> Though, be even better to get just to steady integration and releases. 
> There's no reason not to have releases every couple of months - assuming 
> there's new stuff to be released.
>
> regards,


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16202] Re: [PATCH] bgp: ignore NHT when bgpd has never connected zebra

2016-10-07 Thread Lou Berger
I wanted to avoid race conditions related to zebra restarting - just in 
case such occured.


So current logic is use NHT if zebra *ever* seen/connected (and not of 
zebra currently connected.)


Lou


On October 7, 2016 5:43:15 AM Paul Jakma  wrote:


Thanks.

On Thu, 6 Oct 2016, Lou Berger wrote:


+int zclient_num_connects;


Why not just a zclient_connected() type helper to check if zclient->sock
is negative or >= 0?

regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
  "Someone's been mean to you! Tell me who it is, so I can punch him 
tastefully."
-- Ralph Bakshi's Mighty Mouse





___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16200] Re: Proposed 8 testing Update

2016-10-06 Thread Lou Berger



On October 6, 2016 11:47:59 AM Paul Jakma  wrote:


On Thu, 6 Oct 2016, Lou Berger wrote:


One outstanding issue for the release is operation of BGP without
zebra. (The NHT change basically introduces a requirement to run BGP
with zebra, while there are route server/reflector configs which are
viable now running only BGP.)



I suggest changing the NHT code to either (a) automatically operate /
adjust to when zebra isn't present or (b) have a bgp config option to
ignore NHT, e.g., 'no bgp nexthop-tracking'.

Do you/anyone have a preference?  -- Mine is (a).


Definitely a.



Great.  You should have the patch.


I (or Paul Z.) can propose a patch for this change.


Cool.

So, that'd be a release blocker, but not a 'ff master' blocker, right?


Agreed!

Lou


regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
I do desire we may be better strangers.
-- William Shakespeare, "As You Like It"





___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16194] Re: Proposed 8 testing Update

2016-10-06 Thread Lou Berger


On 10/6/2016 9:35 AM, Martin Winter wrote:
> I think something to address before a release, but not sure if we should
> hold off merging to master because of it.
>
> Lou, are you proposing to fix this before merging to master?

No.  Please merge to master ASAP.

This said -- just sending patch (based on ff-2016091901) now...

Lou

>
> -  Martin
>
> On 6 Oct 2016, at 6:30, Lou Berger wrote:
>
>> Paul,
>>
>> On October 6, 2016 6:05:14 AM Paul Jakma  wrote:
>>
>> ...
>>> One change from the last release in BGP is ANVL-BGPPLUS-17.1 related to
>>> address used for nexthop - NHT related? Is it serious?
>>>
>>> Looks acceptable generally.
>>>
>> One outstanding issue for the release is operation of BGP without zebra.
>>  (The NHT change basically introduces a requirement to run BGP with
>> zebra, while there are route server/reflector configs which are viable
>> now running only BGP.)
>>
>> I suggest changing the NHT code to either (a) automatically operate /
>> adjust to when zebra isn't present or (b) have a bgp config option to
>> ignore NHT, e.g., 'no bgp nexthop-tracking'.
>>
>> Do you/anyone have a preference?  -- Mine is (a).
>>
>> I (or Paul Z.) can propose a patch for this change.
>>
>> Lou
>>


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16195] [PATCH] bgp: ignore NHT when bgpd has never connected zebra

2016-10-06 Thread Lou Berger
---
 quagga/bgpd/bgp_nht.c   |  3 ++-
 quagga/bgpd/bgp_zebra.c | 11 +++
 quagga/bgpd/bgp_zebra.h |  2 ++
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/quagga/bgpd/bgp_nht.c b/quagga/bgpd/bgp_nht.c
index 591fbf9..c4acb66 100644
--- a/quagga/bgpd/bgp_nht.c
+++ b/quagga/bgpd/bgp_nht.c
@@ -192,7 +192,8 @@ bgp_find_or_add_nexthop (afi_t afi, struct bgp_info *ri, 
struct peer *peer,
   else if (peer)
 bnc->nht_info = (void *)peer; /* NHT peer reference */
 
-  return (CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID));
+  return (bgp_zebra_num_connects() == 0 ||
+  CHECK_FLAG(bnc->flags, BGP_NEXTHOP_VALID));
 }
 
 void
diff --git a/quagga/bgpd/bgp_zebra.c b/quagga/bgpd/bgp_zebra.c
index 854d93d..974baed 100644
--- a/quagga/bgpd/bgp_zebra.c
+++ b/quagga/bgpd/bgp_zebra.c
@@ -54,6 +54,8 @@ struct in_addr router_id_zebra;
 struct stream *bgp_nexthop_buf = NULL;
 struct stream *bgp_ifindices_buf = NULL;
 
+int zclient_num_connects;
+
 /* Router-id update message from zebra. */
 static int
 bgp_router_id_update (int command, struct zclient *zclient, zebra_size_t 
length,
@@ -1187,12 +1189,15 @@ bgp_zclient_reset (void)
 static void
 bgp_zebra_connected (struct zclient *zclient)
 {
+  zclient_num_connects++;
   zclient_send_requests (zclient, VRF_DEFAULT);
 }
 
 void
 bgp_zebra_init (struct thread_master *master)
 {
+  zclient_num_connects = 0;
+
   /* Set default values. */
   zclient = zclient_new (master);
   zclient_init (zclient, ZEBRA_ROUTE_BGP);
@@ -1223,3 +1228,9 @@ bgp_zebra_destroy(void)
   zclient_free(zclient);
   zclient = NULL;
 }
+
+int
+bgp_zebra_num_connects(void)
+{
+  return zclient_num_connects;
+}
diff --git a/quagga/bgpd/bgp_zebra.h b/quagga/bgpd/bgp_zebra.h
index 9a592c3..5d4ed62 100644
--- a/quagga/bgpd/bgp_zebra.h
+++ b/quagga/bgpd/bgp_zebra.h
@@ -48,4 +48,6 @@ extern struct interface *if_lookup_by_ipv4_exact (struct 
in_addr *);
 extern struct interface *if_lookup_by_ipv6 (struct in6_addr *);
 extern struct interface *if_lookup_by_ipv6_exact (struct in6_addr *);
 
+extern int bgp_zebra_num_connects(void);
+
 #endif /* _QUAGGA_BGP_ZEBRA_H */
-- 
2.1.3


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16191] Re: Proposed 8 testing Update

2016-10-06 Thread Lou Berger
Paul,

On October 6, 2016 6:05:14 AM Paul Jakma  wrote:

...
>
> One change from the last release in BGP is ANVL-BGPPLUS-17.1 related to
> address used for nexthop - NHT related? Is it serious?
>
> Looks acceptable generally.
>

One outstanding issue for the release is operation of BGP without zebra.
 (The NHT change basically introduces a requirement to run BGP with
zebra, while there are route server/reflector configs which are viable
now running only BGP.)

I suggest changing the NHT code to either (a) automatically operate /
adjust to when zebra isn't present or (b) have a bgp config option to
ignore NHT, e.g., 'no bgp nexthop-tracking'.

Do you/anyone have a preference?  -- Mine is (a).

I (or Paul Z.) can propose a patch for this change.

Lou


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16154] Re: Doing something different wrt patch integration

2016-09-30 Thread Lou Berger
Paul,

Just restating things I've said here before :

- I don't the issue is backlog

- I do think the issue is that in order for
organizations/companies/individuals to invest in an open source project
that there needs to be process transparency, predicable releases, and a
deterministic way to get submissions/patches into a release.

- I frankly don't see how the current model scales or satisfies this. 

- A bunch of the community worked together to come up with a proposed
new process and wanted to try it out  -- which, from my perspective, you
vetoed. 

I think these leaves the ball in your court.

Lou


On 9/30/2016 6:35 AM, Paul Jakma wrote:
> On Wed, 21 Sep 2016, Lou Berger wrote:
>
>> I hope the the last two releases have convinced you that we need to do 
>> something different WRT patch integration.
> Convinced in what sense? Also, the implication is that you feel I am 
> against changing /anything/ - which is not at all the case.
>
> High level objectives of getting patches reviewed, decided on and 
> integrated/pushed-back quickly, efficiently, transparently, reliably? 
> Who could disagree with that?
>
> Determining how to change things to improve on delivery of those goals, 
> by teasing out the strands of the problem, sorting the objective from 
> the subject (and where possible finding ways to transform as much of the 
> subjective into the objective as possible), and determining as 
> analytically as possible how proposed chnages affect the different 
> constraints (at least some of which are in tension): Great.
>
> Throwing everything up in the air, changing everything at the same time 
> (from communication methods, to constitution) - less keen on that.
>
> 
>
> And there were big changes when I started full-time again. Vincent 
> started with the batched, systematic, review process of the backlog in 
> patchwork. I continued on with that, changed some logging aspects from 
> email to git.
>
> Is that process ideal for a non-backlogged, steady-state? Perhaps not.
>
> However, the problem then was backlog. And optimising integrator 
> throughput - while not regressing back to more ad-hoc much less 
> systematic working - to get the backlog done seemed to be a high 
> priority. That hopefully really is close to done now, with the final CI 
> obstacle found, and we can close off a large swathe of old stuff and 
> release.
>
> It could have gone faster perhaps, with more co-operation and fewer 
> other distractions. But hey.
>
> regards,


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16152] Re: round-8: tentative proposed head for master

2016-09-30 Thread Lou Berger
woops - you're right - these are BGP_ignore actions...

Lou


On 9/30/2016 10:49 AM, Paul Jakma wrote:
> Which change?
>
> There's no changes to OpenXXX?




___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16150] Re: round-8: tentative proposed head for master

2016-09-30 Thread Lou Berger
The change I submitted continues the original use of NHT information for
Idle (start event) and Active (retry) states, i.e., just removes NHT
info in Connect state. 

Keeping these event sources seems fine (at least based on testing) and
not clear to me very significant, but I haven't traced through all the
possible generation of NHT events. 

I have no strong option on keeping the original event mapping code or
the intro of an NHT event - I can see arguments for/against both.  But
I'm not comfortable with the into of the new transitions at this point -
certainly I'm skeptical about the change in Connect and OpenXXX states. 

Lou

On 9/30/2016 10:17 AM, Paul Jakma wrote:
> On Fri, 30 Sep 2016, Lou Berger wrote:
>
>> It's unclear to me why an NHT should *ever* trigger a state machine 
>> change.  At this point, I'm more comfortable with going back to not 
>> changing BGP FSM state than introducing the three new FSM changes you 
>> have in the code...
> The 3 FSM changes are basically the exact same as the NHT code was 
> doing, except without calling connect_check on Connect.
>
> I.e. the major functional difference to yours is that it retains going 
> through the ConnectRetry_timer_expired event on Connect as the prior NHT 
> code was doing.
>
> The other differences are cosmetic, to just do it via the existing FSM, 
> so it's obvious. If one FSM is hard to understand, two different 
> interacting FSMs is harder still.
>
>> Why do you think the state transitions are are appropriate based on an 
>> NHT_Update?  What are the real sources of NHT_Updates?  If BGP itself, 
>> as the prior case, these should certainly be ignored.
> The source is a message from zebra.
>
> If connections that are OpenSent+ can ignore NHT events, then those 
> events can also be ignored for Connect and Active. Trying to optimise 
> for bringing up links and short-circuit the connect-retry timer in case 
> of some link event pertinent to the peer address, I assume.
>
> Remove that and simplify it all, or keep?
>
> regards,


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16147] Re: round-8: tentative proposed head for master

2016-09-30 Thread Lou Berger
It's unclear to me why an NHT should *ever* trigger a state machine
change.  At this point, I'm more comfortable with going back to not
changing BGP FSM state than introducing the three new FSM changes you
have in the code...

Why do you think the state transitions are are appropriate based on an
NHT_Update?  What are the real sources of NHT_Updates?  If BGP itself,
as the prior case, these should certainly be ignored.

Lou

On 9/30/2016 9:41 AM, Paul Jakma wrote:
> Hi Lou,
>
> On Fri, 30 Sep 2016, Paul Jakma wrote:
>
>> On Thu, 29 Sep 2016, Lou Berger wrote:
>>
>>>  looks like the NHT code is generating an event into the state machine
>>>  that it shouldn't be.  I removed this and checked it into my work
>>>  area.   See
>>>  
>>> https://github.com/LabNConsulting/quagga-vnc/commit/7162337f9261b91056b95a673a54ad595aef3e5f
>>>  Kudos to Martin for logs/pcaps/discussion and the system that id'ed this
>>>  issue and will verify the fix.
>> Yeah, I'd come to the same conclusion yesterday with my own test-case (again 
>> based on logs and pcaps from Martin) and emailed him. :)
> So, I have:
>
>http://git.savannah.gnu.org/cgit/quagga.git/commit/?id=26943e36
>
> The whole bgp_fsm_nht_update can just be removed, and this second 
> NHT-dedicated, mini-sub-FSM removed and the event handled via the main 
> FSM.
>
> Indeed, is it even necessary to tickle Active/Connect connections to 
> make them reconnect cause of an NHT event? In which case, the fix is 
> just removing code.
>
> ?
>
> regards,


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16139] Re: round-8: tentative proposed head for master

2016-09-29 Thread Lou Berger
looks like the NHT code is generating an event into the state machine
that it shouldn't be.  I removed this and checked it into my work
area.   See
https://github.com/LabNConsulting/quagga-vnc/commit/7162337f9261b91056b95a673a54ad595aef3e5f

Kudos to Martin for logs/pcaps/discussion and the system that id'ed this
issue and will  verify the fix.  I'll push my changes into dev/automerge
and see how it goes.  The push will include my merged VNC code (disabled
by default) too.

Lou

On 9/29/2016 6:28 PM, Lou Berger wrote:
> Just walked through the code a bit -- looks like quagga needs to add
> support for DelayOpen(Timer) when receiving a new tcp connection...
>
> Lou
>
>
> On 9/29/2016 9:29 AM, Paul Jakma wrote:
>> On Thu, 22 Sep 2016, Paul Jakma wrote:
>>
>>> Just the session setup with the test tools the final issue. I've been 
>>> adapting Martin's bgptool test code to test BGP collision handling. 
>>> Not found the problem so far. Unfortunately, I have other stuff 
>>> occupying me until early next week now.
>> So, the issue here seems to be that:
>>
>> - the other side of Martin's tests waits for a connection from bgpd, to
>>know that bgpd is Active. The other side does not send SYN|ACK though,
>>the bgpd side host is resending its SYNs.
>>
>> - however somehow bgpd thinks its connection succeeds, so it raises
>>TCP_connection_open, and the peer goes into a state where
>>collision-detection will consider it (OpenSent).
>>
>> - the other side connects to bgpd, this succeeds.
>>
>> - bgpd closes the inbound connection, cause it thinks its outbound tcp
>>is open, BGP FSM is in OpenSent, and its own RID is higher - so its
>>outbound has priority.
>>
>> The problem presumably lies in bgp_connect_check() getting things wrong 
>> somehow, but how
>>
>> If so, this must be a very old issue.
>>
>> regards,
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16137] Re: round-8: tentative proposed head for master

2016-09-29 Thread Lou Berger
Just walked through the code a bit -- looks like quagga needs to add
support for DelayOpen(Timer) when receiving a new tcp connection...

Lou


On 9/29/2016 9:29 AM, Paul Jakma wrote:
> On Thu, 22 Sep 2016, Paul Jakma wrote:
>
>> Just the session setup with the test tools the final issue. I've been 
>> adapting Martin's bgptool test code to test BGP collision handling. 
>> Not found the problem so far. Unfortunately, I have other stuff 
>> occupying me until early next week now.
> So, the issue here seems to be that:
>
> - the other side of Martin's tests waits for a connection from bgpd, to
>know that bgpd is Active. The other side does not send SYN|ACK though,
>the bgpd side host is resending its SYNs.
>
> - however somehow bgpd thinks its connection succeeds, so it raises
>TCP_connection_open, and the peer goes into a state where
>collision-detection will consider it (OpenSent).
>
> - the other side connects to bgpd, this succeeds.
>
> - bgpd closes the inbound connection, cause it thinks its outbound tcp
>is open, BGP FSM is in OpenSent, and its own RID is higher - so its
>outbound has priority.
>
> The problem presumably lies in bgp_connect_check() getting things wrong 
> somehow, but how
>
> If so, this must be a very old issue.
>
> regards,


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16110] Re: Question/issue on BGP NHT in 8/proposed/ff

2016-09-23 Thread Lou Berger
oh - and forgot this:

3) How does NHT work when zebra is not running???

   i.e., doesn't this break all deployments where zebra isn't used?

Thanks,

Lou


On 9/22/2016 4:48 PM, Lou Berger wrote:
> Hi,
>
> I think this question is for Donald/Dinesh.
>
> I'm a bit unsure how the new NHT code works with:
>
> 1) route servers/route reflectors
>
> 2) when routes for one AFI (say v6) is carried over a peering of a
> different afi (say v4)
>
> Can someone explain?
>
> Thanks,
>
> Lou
>
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16109] Question/issue on BGP NHT in 8/proposed/ff

2016-09-22 Thread Lou Berger
Hi,

I think this question is for Donald/Dinesh.

I'm a bit unsure how the new NHT code works with:

1) route servers/route reflectors

2) when routes for one AFI (say v6) is carried over a peering of a
different afi (say v4)

Can someone explain?

Thanks,

Lou


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16106] Re: round-8: tentative proposed head for master

2016-09-21 Thread Lou Berger
fyi - this branch looks pretty good -- on our end all execution tests
and valgrind exits cleanly, but memstats does not exit cleanly (see
below).  I suspect this has to do with order of cleanup and nothing
substantive as valgrind is clean.

Nice to (almost) have a new stable master!

Lou

-

 Leaked type: Temporary memory : 92 blocks  
 Leaked type: Temporary memory : 1 blocks  
 Leaked type: Temporary memory : 91 blocks   
 Leaked type: Temporary memory : 66 blocks   

On 9/13/2016 5:54 AM, p...@jakma.org wrote:
> Hi Martin,
>
> I've got a head of commits that pass your CI (tested via the auto-merge 
> feature) at:
>
>
> http://git.savannah.gnu.org/cgit/quagga.git/log/?h=volatile/patch-tracking/8/proposed/ff-2016091301
>
> It's 173 commits odd. Including a CVE fix for an issue with MRT dumping 
> that can lead to an ABRT.
>
> I believe you wanted to do a final full compliance run, before 
> integration to master. After which we can do a release, and attack the 
> next set of patches (which may also be a larger set than ideal, cause of 
> the length of r8, but still more manageable - so we should converge on a 
> more sane, faster turn-around on these soon).
>
> regards,


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16105] Re: round-8: tentative proposed head for master

2016-09-21 Thread Lou Berger
Paul,

it would be good have dev/automerge updated to match the release (once
it happens -- hopefully soon) so that we / others can update their
patches to the latest known good point and then submit pull request to
get CI and an integrated branch...

I hope the the last two releases have convinced you that we need to do
something different WRT patch integration.

Lou

On 9/21/2016 8:54 AM, Paul Jakma wrote:
> On Wed, 21 Sep 2016, Lou Berger wrote:
>
>> Paul,
>>
>> does 8/proposed/ff-<...> match dev/automerge?  If not can you submit a
>> pull request to get them aligned?
> I'm just pushing ff-... - they get CIed automatically (it'll poll 
> itself, or when I visit the right web-page for the branch).
>
> At the moment, everything seems to be fine, except some weird 
> corner-case interactions between the tests and BGP and 
> collision-detection. One test fails without the OPEN reform patches, but 
> with them another one fails.
>
> regards,


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16103] Re: round-8: tentative proposed head for master

2016-09-21 Thread Lou Berger
Paul,

does 8/proposed/ff-<...> match dev/automerge?  If not can you submit a
pull request to get them aligned?

Thanks,

Lou


On 9/15/2016 6:50 PM, Martin Winter wrote:
> On 15 Sep 2016, at 8:48, Paul Jakma wrote:
>
>> On Thu, 15 Sep 2016, Paul Jakma wrote:
>>
>>> So how was it not in the OPEN?
>> Sigh. It's cause the af config is not transferred to accept peer.
> So I assume you found this issue?
> Or do you still need help reproducing the problem?
>
> - Martin
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16072] Re: [PATCH] bgpd: fix leak introduced by (peer) nexthop tracking

2016-09-07 Thread Lou Berger


On 9/7/2016 8:47 AM, Lou Berger wrote:
> This is great.  I'll run our basic ~15 minute regression with valgrind
> against it and let you know the results.
The only think I'm seeing is:
2016/09/07 08:54:38 BGP: Terminating on signal
bgpd: memstats: Current memory utilization in module LIB:
bgpd: memstats:  Temporary memory  : 66
bgpd: memstats: NOTE: If configuration exists, utilization may be expected.

*but* valgrind reports no leaks - so am a bit confused why memstat is
reporting allocation, valgrind isn't seeing this.  Perhaps cleanup
ordering has changed relative to memstats printing.  If it's still there
once the branch has stabilized, I can look into it...

Lou


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16070] Re: [PATCH] bgpd: fix leak introduced by (peer) nexthop tracking

2016-09-07 Thread Lou Berger

On 9/7/2016 6:53 AM, Paul Jakma wrote:
> On Tue, 6 Sep 2016, Paul Jakma wrote:
>
>> I have another patch that makes valgrind clean for me on the bncs, but 
>> I left the bncs in place while the peer is defined. See patch posted 
>> just there.
> Ok, my variation on your fix (hope you don't mind me re-doing that 
not at all.

> - I 
> noted what the leak was from your patch, 
humm, don't think this is right as all our patches are run against
valgrind prior to submitting. 

Now, it does look like this came from an integration problem as we added
the AFI and someone else added the new per afi processing.  As both sets
of patches were sitting in the patch list the current process has the
integrator (release master) needing to find / fix these. 

This goes to process and how we need patches submitted against an active
dev branch so that the submitter (who ever submitted last in this case)
does the integration and can resolves any problems/leaks.  This would be
both more scalable and efficient as a single integrators (release
master) doesn't need to learn all the changes/interactions.

I'll be happy to resubmit (including pull request) our outstanding
patches against the dev/automerge branch once /8 is done to ensure it
integrates cleanly and passes martin's tests.

> but started again to try work 
> out the refcounting) + your other leak fix + your AFI_ETHER patch (which 
> I havn't tested) + my OPEN/FSM fixes (CI with previous hit some 
> collision handling problem in bringing up sessions):
>
> - valgrinds clean from start to finish with some simple BGP sessions for
>me.
>
> - passes Martin's torture testing
>
> Which is on top of the other stuff from r8 and NHT, etc.
This is great.  I'll run our basic ~15 minute regression with valgrind
against it and let you know the results.

Lou

> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16050] Re: [PATCH] bgpd: fix leak introduced by (peer) nexthop tracking

2016-09-05 Thread Lou Berger
Let's get the rest of the patches through regression and into automerge
and then see how it does with valgrind...


On 9/5/2016 12:51 PM, Paul Jakma wrote:
> The question is whether there's actually a leak?



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16047] [PATCH] bgp: bgp_nexthop init/free AFI_ETHER related NH tables

2016-09-05 Thread Lou Berger
---
 bgpd/bgp_nexthop.c | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/bgpd/bgp_nexthop.c b/bgpd/bgp_nexthop.c
index 434b2cd..b8b3b93 100644
--- a/bgpd/bgp_nexthop.c
+++ b/bgpd/bgp_nexthop.c
@@ -1492,6 +1492,11 @@ bgp_scan_init (void)
   bgp_nexthop_cache_table[AFI_IP6] = cache1_table[AFI_IP6];
   bgp_connected_table[AFI_IP6] = bgp_table_init (AFI_IP6, SAFI_UNICAST);
 
+  cache1_table[AFI_ETHER] = bgp_table_init (AFI_ETHER, SAFI_UNICAST);
+  cache2_table[AFI_ETHER] = bgp_table_init (AFI_ETHER, SAFI_UNICAST);
+  bgp_nexthop_cache_table[AFI_ETHER] = cache1_table[AFI_ETHER];
+  bgp_connected_table[AFI_ETHER] = bgp_table_init (AFI_ETHER, SAFI_UNICAST);
+
   /* Make BGP scan thread. */
   bgp_scan_thread = thread_add_timer (bm->master, bgp_scan_timer, 
   NULL, bgp_scan_interval);
@@ -1534,6 +1539,19 @@ bgp_scan_finish (void)
   if (bgp_connected_table[AFI_IP6])
 bgp_table_unlock (bgp_connected_table[AFI_IP6]);
   bgp_connected_table[AFI_IP6] = NULL;
+
+  if (cache1_table[AFI_ETHER])
+bgp_table_unlock (cache1_table[AFI_ETHER]);
+  cache1_table[AFI_ETHER] = NULL;
+
+  if (cache2_table[AFI_ETHER])
+bgp_table_unlock (cache2_table[AFI_ETHER]);
+  cache2_table[AFI_ETHER] = NULL;
+
+  if (bgp_connected_table[AFI_ETHER])
+bgp_table_unlock (bgp_connected_table[AFI_ETHER]);
+  bgp_connected_table[AFI_ETHER] = NULL;
+
 }
 
 void
-- 
2.1.3


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16046] Re: [PATCH] bgpd: fix leak introduced by (peer) nexthop tracking

2016-09-05 Thread Lou Berger
I'm testing a fix right now that inits (and frees ) AFI_ETHER tables...


On 9/5/2016 11:46 AM, Paul Jakma wrote:
> On Mon, 5 Sep 2016, Paul Jakma wrote:
>
>> Also, if I go back to the commit before, i.e. 'bgpd, zebra: Use next 
>> hop tracking for connected routes too' plus 'bgpd: Remove unused and 
>> leaking code' effectively, then it passes Martin's test but 'show ip 
>> nexthop' can still crash it:
>> ==16194== Process terminating with default action of signal 6 (SIGABRT)
>> ==16194==at 0x5A1B6F5: raise (in /usr/lib64/libc-2.23.so)
>> ==16194==by 0x5A1D2F9: abort (in /usr/lib64/libc-2.23.so)
>> ==16194==by 0x4E70EC0: core_handler (sigevent.c:242)
>> ==16194==by 0x5A1B76F: ??? (in /usr/lib64/libc-2.23.so)
>> ==16194==by 0x43A7C5: bgp_table_top (bgp_table.h:160)
>> ==16194==by 0x43A7C5: show_ip_bgp_nexthop_table (bgp_nexthop.c:424)
> This one is trivial it seems, just a missing null check in the loop in 
> the command.
>
> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16026] Re: Quagga project governance

2016-08-15 Thread Lou Berger
June was 6-7 weeks ago (which is a bit more than a few days) and, we
don't have a stable ff branch.  I suggest that it's time to hit the
process reset.

now.

This isn't to say that there hasn't been real work done (Almost all by
Paul, on 8/proposed/ff, and Martin on dev/automerge), but we really a
more saleable and  deterministic process.

At this point it seems to me that we should cut R1.1 based on the
portion of 8/proposed/ff that is passing regression (which is in
dev/automerge) and then move to the github pull request based approach
outlined in
https://lists.quagga.net/pipermail/quagga-dev/2016-August/016102.html . 
This way multiple folks can attack the backlog in parallel, and future
submitters become responsible for error free integration.

Clearly this last part will need some process discussions and we can
have those based on the latest round of docs. E.g., we will need to
think about one off patches that come in only to the list -- I'm willing
martin can do this simply based on his patch reporting to patchworks and
I bet he can even set it up that pull requests are reported to the mail
list so the list can continue to track changes...

Lou

On 6/28/2016 11:26 AM, Vincent JARDIN wrote:
> Le 28/06/2016 16:03, Lou Berger a écrit :
>> On 06/28/2016 09:54 AM, Donald Sharp wrote:
>>>>  I
>>>> won't be paying full attention to any review comments because I will
>>>> be on vacation the 1-10 of July, but hope to resolve all issues upon
>>>> getting back in a timely manner.
>> Being forever the optimist - we'll plan/hope to have all issues resolved
>> *before*  you return!
> I can hardly follow all the emails, there are too many!
>
> My take is simple, from previous Paul's comment I do see:
>http://patchwork.quagga.net/bundle/paul/round-8/
> and
>  
> http://git.savannah.gnu.org/cgit/quagga.git/log/?h=volatile%2Fpatch-tracking%2F8%2Fproposed%2Fff
>
> if that's show up into head within few days, we'll *all be happy, am I 
> correct*? Then, we'll be able to slowly restart to be back to a normal 
> project/life that can evolve based on recent 
> Lou/Martin/Paul/Donal/myself/Olivier/etc. comments.
>
> Thank you,
>Vincent
>
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

[quagga-dev 16019] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-08-05 Thread Lou Berger
What's the alternative - a broken base/mainline?  How does this help
anything?

Lou

On 8/5/2016 9:42 AM, Paul Jakma wrote:
> On Fri, 5 Aug 2016, Lou Berger wrote:
>
>> As long as we skip patches that break existing protocols/functionality,
> So does someone want to do the required collating, sifting and 
> cherry-picking/rebasing of stuff, combined with pull requests to 
> Martin's auto-CI branch to find the errant patches?
>
> I'm a bit limited on cycles for next 2 weeks.
>
> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16016] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-08-05 Thread Lou Berger
As long as we skip patches that break existing protocols/functionality,
I agree. -- Let's get things moving!


On 8/5/2016 7:49 AM, Nick Hilliard wrote:
> On 5 Aug 2016, at 12:18, Paul Jakma  wrote:
>> If there are no conceptual objections to what's queued in ff, then we 
>> continue with merging and fix the bugs later. No?
> Wfm. There's too much queued up in the commit queues to block on these 
> problems. Pressing on will not impede fixes. 
>
> Nick
>
>
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16015] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-08-05 Thread Lou Berger

Paul,

Imo we should leverage regression testing to identify which patches / patch 
sets introduce problems and either skip those or get them fixed before 
including them.


Set another way, for my prospective, pushing the portion of proposed 8 to 
master that passes Martin's regression tests is reasonable; but pushing 
code known to introduce problems isn't.


What about working with Martin to automatically go through the patch sets 
and any that pass bring into his  Auto branch. Then you or the patch 
authors can work to resolve the problem introduced in the specific patch / 
patch sets. What do you think?


Lou


On August 5, 2016 5:19:12 AM Paul Jakma  wrote:


On Thu, 4 Aug 2016, Martin Winter wrote:


If someone has any other ideas, then please speak up.


If there are no conceptual objections to what's queued in ff, then we
continue with merging and fix the bugs later. No?

regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
I know the answer!  The answer lies within the heart of all mankind!
The answer is twelve?  I think I'm in the wrong building.
-- Charles Schulz





___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16010] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-08-04 Thread Lou Berger



On August 3, 2016 4:16:02 PM "Martin Winter" 
 wrote:




...
Great.. so building the code now works on all the OS’es tested by our
CI system.

Now we need the routing protocols to work :-(

See https://ci1.netdef.org/browse/QUAGGA-QMASTER23-1

In my few basic checks, one of the ISIS tests, 2 of the IPv4 BGP tests
and one of the IPv6 BGP tests fail. :-(



So what's the plan to resolve the issues? More step by step regression 
testing, something else?


Lou



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

[quagga-dev 16007] Re: [PATCH] bgp_route.c fix memory leak Introduced by: Author: Pradosh Mohapatra Date: Mon Nov 9 20:21:41 2015 -0500

2016-08-03 Thread Lou Berger
8/proposed/ff-2016080201 looks good in our (bgpd only) testing.

Lou

On 8/2/2016 8:54 AM, Lou Berger wrote:
> Yes. I believe it wasn't there until the second version of the branch, so 
> didn't see it at first. But the second patch is still needed. Well I would 
> like to see for regression results on it from Martin, as I only tested bgpd 
> and it does have some zebra implications.
>
> Lou
>
>
>
>
> On August 2, 2016 8:50:11 AM Paul Jakma  wrote:
>
>> I'd already applied this based on the other email, made up my own commit
>> subject for you:
>>
>> http://git.savannah.gnu.org/gitweb/?p=quagga.git;a=commitdiff;h=811586ad4cfedd5b5d6d6c1f8a2d674b84ba637e
>>
>> Presumably that's OK?
>>
>> regards,
>>
>> Paul
>>
>> On Mon, 1 Aug 2016, Lou Berger wrote:
>>
>>>bgpd, doc, lib, zebra: nexthop-tracking in zebra
>>> ---
>>> bgpd/bgp_route.c | 5 -
>>> 1 file changed, 5 deletions(-)
>>>
>>> diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
>>> index a88a022..4cb6c14 100644
>>> --- a/bgpd/bgp_route.c
>>> +++ b/bgpd/bgp_route.c
>>> @@ -3778,14 +3778,9 @@ bgp_static_withdraw (struct bgp *bgp, struct prefix 
>>> *p, afi_t afi,
>>> {
>>>   struct bgp_node *rn;
>>>   struct bgp_info *ri;
>>> -  struct bgp_info *new;
>>>
>>>   /* Make new BGP info. */
>>>   rn = bgp_node_get (bgp->rib[afi][safi], p);
>>> -  new = info_make(ZEBRA_ROUTE_BGP, BGP_ROUTE_STATIC, bgp->peer_self,
>>> - bgp_attr_default_intern(BGP_ORIGIN_IGP), rn);
>>> -
>>> -  SET_FLAG (new->flags, BGP_INFO_VALID);
>>>
>>>   /* Check selected route and self inserted route. */
>>>   for (ri = rn->info; ri; ri = ri->next)
>>>
>> --
>> Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
>> Fortune:
>> Every word is like an unnecessary stain on silence and nothingness.
>>  -- Beckett
>>
>
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 16002] Re: [PATCH] bgp_route.c fix memory leak Introduced by: Author: Pradosh Mohapatra Date: Mon Nov 9 20:21:41 2015 -0500

2016-08-02 Thread Lou Berger
Yes. I believe it wasn't there until the second version of the branch, so 
didn't see it at first. But the second patch is still needed. Well I would 
like to see for regression results on it from Martin, as I only tested bgpd 
and it does have some zebra implications.


Lou




On August 2, 2016 8:50:11 AM Paul Jakma  wrote:


I'd already applied this based on the other email, made up my own commit
subject for you:

http://git.savannah.gnu.org/gitweb/?p=quagga.git;a=commitdiff;h=811586ad4cfedd5b5d6d6c1f8a2d674b84ba637e

Presumably that's OK?

regards,

Paul

On Mon, 1 Aug 2016, Lou Berger wrote:


   bgpd, doc, lib, zebra: nexthop-tracking in zebra
---
bgpd/bgp_route.c | 5 -
1 file changed, 5 deletions(-)

diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index a88a022..4cb6c14 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -3778,14 +3778,9 @@ bgp_static_withdraw (struct bgp *bgp, struct prefix 
*p, afi_t afi,

{
  struct bgp_node *rn;
  struct bgp_info *ri;
-  struct bgp_info *new;

  /* Make new BGP info. */
  rn = bgp_node_get (bgp->rib[afi][safi], p);
-  new = info_make(ZEBRA_ROUTE_BGP, BGP_ROUTE_STATIC, bgp->peer_self,
- bgp_attr_default_intern(BGP_ORIGIN_IGP), rn);
-
-  SET_FLAG (new->flags, BGP_INFO_VALID);

  /* Check selected route and self inserted route. */
  for (ri = rn->info; ri; ri = ri->next)



--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
Every word is like an unnecessary stain on silence and nothingness.
-- Beckett





___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15995] Re: CI Testresult: FAILED (Re: [quagga-dev, 15986] bgp_route.c fix memory leak Introduced by: Author: Pradosh Mohapatra Date: Mon Nov 9 20:21:41 2015

2016-08-01 Thread Lou Berger
ahh, perhaps was a rebase sometime today -- is a duplicate of this one...


On 8/1/2016 5:51 PM, Martin Winter wrote:
> On 1 Aug 2016, at 14:43, Lou Berger wrote:
>
>> Try applying to volatile/patch-tracking/8/proposed/ff-2016080101
> That’s what I did. Commit 27185a96 is the last commit on
> volatile/patch-tracking/8/proposed/ff-2016080101
> (Commit “*: Remove some for statement declarations” by Paul)
>
> - Martin
>
>> (sigh for want of a development mainline...)
>>
>> On 8/1/2016 5:38 PM, Martin Winter wrote:
>>> Resubmitted to be tested on top of commit 27185a96 (latest in
>>> proposed/8/ff branch)
>>>
>>> Testrun is at https://ci1.netdef.org/browse/QUAGGA-QPWORK-344
>>>
>>> But still failed:
>>> Git Patch: Using "git apply" for patch 2030
>>> error: patch failed: bgpd/bgp_route.c:3778
>>> error: bgpd/bgp_route.c: patch does not apply
>>>
>>> - Martin
>>>
>>> On 1 Aug 2016, at 14:23, Lou Berger wrote:
>>>
>>>> no surprise here -- this patch applies to 8/proposed/ff
>>>>
>>>> Lou
>>>>
>>>> On 8/1/2016 5:20 PM, cisys...@netdef.org wrote:
>>>>> Continous Integration Result: FAILED
>>>>>
>>>>> See below for issues.
>>>>> This is an EXPERIMENTAL automated CI system.
>>>>> For questions and feedback, feel free to email
>>>>> Martin Winter .
>>>>>
>>>>> Patches applied :
>>>>>   Patchwork 2030: http://patchwork.quagga.net/patch/2030
>>>>>[quagga-dev,15986] bgp_route.c fix memory leak Introduced by:
>>>>> Author: Pradosh Mohapatra  Date: Mon
>>>>> Nov 9 20:21:41 2015 -0500
>>>>> Tested on top of Git : 5f67888 (as of 20160429.234845 UTC)
>>>>> CI System Testrun URL:
>>>>> https://ci1.netdef.org/browse/QUAGGA-QPWORK-343/
>>>>>
>>>>>
>>>>> Get source and apply patch from patchwork: Failed
>>>>> 
>>>>>> Applying Patchwork patch 2030
>>>>>> 
>>>>>> Git Patch: Using "git apply" for patch 2030
>>>>>> error: patch failed: bgpd/bgp_route.c:3778
>>>>>> error: bgpd/bgp_route.c: patch does not apply
>>>>> Regards,
>>>>>   NetDEF/OpenSourceRouting Continous Integration (CI) System
>>>>>
>>>>> ---
>>>>> OpenSourceRouting.org is a project of the Network Device Education
>>>>> Foundation,
>>>>> For more information, see www.netdef.org and
>>>>> www.opensourcerouting.org
>>>>> For questions in regards to this CI System, contact Martin Winter,
>>>>> mwin...@netdef.org
>>>>>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

[quagga-dev 15993] [PATCH] bgpd: fix leak introduced by (peer) nexthop tracking

2016-08-01 Thread Lou Berger
---
 bgpd/bgp_fsm.c |  3 +++
 bgpd/bgp_nht.c | 39 +++
 bgpd/bgp_nht.h |  8 
 3 files changed, 50 insertions(+)

diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
index d84a865..8001e3b 100644
--- a/bgpd/bgp_fsm.c
+++ b/bgpd/bgp_fsm.c
@@ -457,6 +457,8 @@ bgp_stop (struct peer *peer)
   BGP_EVENT_FLUSH (peer);
 }
 
+  bgp_drop_peer_nexthop(family2afi(peer->su.sa.sa_family), peer);
+
   /* Increment Dropped count. */
   if (peer->status == Established)
 {
@@ -721,6 +723,7 @@ bgp_start (struct peer *peer)
 
   bgp_find_or_add_nexthop(family2afi(peer->su.sa.sa_family), NULL, peer,
  connected);
+
   status = bgp_connect (peer);
 
   switch (status)
diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c
index 34b5fd1..2549e9e 100644
--- a/bgpd/bgp_nht.c
+++ b/bgpd/bgp_nht.c
@@ -90,6 +90,45 @@ bgp_unlink_nexthop (struct bgp_info *path)
 }
 }
 
+void
+bgp_drop_peer_nexthop (afi_t afi, struct peer *peer)
+{
+  struct bgp_node *rn;
+  struct prefix p;
+
+  if (peer == NULL)
+return;
+
+  if (afi == AFI_IP)
+{
+  p.family = AF_INET;
+  p.prefixlen = IPV4_MAX_BITLEN;
+  p.u.prefix4 = peer->su.sin.sin_addr;
+}
+  else if (afi == AFI_IP6)
+{
+  p.family = AF_INET6;
+  p.prefixlen = IPV6_MAX_BITLEN;
+  p.u.prefix6 = peer->su.sin6.sin6_addr;
+} 
+  else
+return; /* unknown AFI */
+
+  rn = bgp_node_get (bgp_nexthop_cache_table[afi], &p);
+
+  if (rn->info)
+{  
+  struct bgp_nexthop_cache *bnc;
+  bnc = rn->info;
+  unregister_nexthop(bnc);
+  bnc->node->info = NULL;
+  bgp_unlock_node(bnc->node);
+  bnc_free(bnc);
+}
+
+  bgp_unlock_node (rn);
+}
+
 int
 bgp_find_or_add_nexthop (afi_t afi, struct bgp_info *ri, struct peer *peer,
 int connected)
diff --git a/bgpd/bgp_nht.h b/bgpd/bgp_nht.h
index 2bced7f..08e7019 100644
--- a/bgpd/bgp_nht.h
+++ b/bgpd/bgp_nht.h
@@ -55,4 +55,12 @@ extern int bgp_find_or_add_nexthop(afi_t a, struct bgp_info 
*p,
  */
 extern void bgp_unlink_nexthop(struct bgp_info *p);
 
+/**
+ * bgp_unlink_nexthop() - Drop the nexthop object based on a peer.
+ * ARGUMENTS:
+ *   a - afi: AFI_IP or AF_IP6
+ *   peer - The BGP peer associated with this NHT
+ */
+extern void bgp_drop_peer_nexthop(afi_t afi, struct peer *peer);
+
 #endif /* _BGP_NHT_H */
-- 
2.1.3


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15992] Re: CI Testresult: FAILED (Re: [quagga-dev, 15986] bgp_route.c fix memory leak Introduced by: Author: Pradosh Mohapatra Date: Mon Nov 9 20:21:41 2015

2016-08-01 Thread Lou Berger
Try applying to volatile/patch-tracking/8/proposed/ff-2016080101

Lou

(sigh for want of a development mainline...)

On 8/1/2016 5:38 PM, Martin Winter wrote:
> Resubmitted to be tested on top of commit 27185a96 (latest in 
> proposed/8/ff branch)
>
> Testrun is at https://ci1.netdef.org/browse/QUAGGA-QPWORK-344
>
> But still failed:
>   Git Patch: Using "git apply" for patch 2030
>   error: patch failed: bgpd/bgp_route.c:3778
>   error: bgpd/bgp_route.c: patch does not apply
>
> - Martin
>
> On 1 Aug 2016, at 14:23, Lou Berger wrote:
>
>> no surprise here -- this patch applies to 8/proposed/ff
>>
>> Lou
>>
>> On 8/1/2016 5:20 PM, cisys...@netdef.org wrote:
>>> Continous Integration Result: FAILED
>>>
>>> See below for issues.
>>> This is an EXPERIMENTAL automated CI system.
>>> For questions and feedback, feel free to email
>>> Martin Winter .
>>>
>>> Patches applied :
>>>   Patchwork 2030: http://patchwork.quagga.net/patch/2030
>>>[quagga-dev,15986] bgp_route.c fix memory leak Introduced by: 
>>> Author: Pradosh Mohapatra  Date: Mon 
>>> Nov 9 20:21:41 2015 -0500
>>> Tested on top of Git : 5f67888 (as of 20160429.234845 UTC)
>>> CI System Testrun URL: 
>>> https://ci1.netdef.org/browse/QUAGGA-QPWORK-343/
>>>
>>>
>>> Get source and apply patch from patchwork: Failed
>>> 
>>>> Applying Patchwork patch 2030
>>>> 
>>>> Git Patch: Using "git apply" for patch 2030
>>>> error: patch failed: bgpd/bgp_route.c:3778
>>>> error: bgpd/bgp_route.c: patch does not apply
>>> Regards,
>>>   NetDEF/OpenSourceRouting Continous Integration (CI) System
>>>
>>> ---
>>> OpenSourceRouting.org is a project of the Network Device Education 
>>> Foundation,
>>> For more information, see www.netdef.org and 
>>> www.opensourcerouting.org
>>> For questions in regards to this CI System, contact Martin Winter, 
>>> mwin...@netdef.org
>>>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15989] Re: CI Testresult: FAILED (Re: [quagga-dev, 15986] bgp_route.c fix memory leak Introduced by: Author: Pradosh Mohapatra Date: Mon Nov 9 20:21:41 2015

2016-08-01 Thread Lou Berger
no surprise here -- this patch applies to 8/proposed/ff

Lou

On 8/1/2016 5:20 PM, cisys...@netdef.org wrote:
> Continous Integration Result: FAILED
>
> See below for issues.
> This is an EXPERIMENTAL automated CI system.
> For questions and feedback, feel free to email
> Martin Winter .
>
> Patches applied :
>   Patchwork 2030: http://patchwork.quagga.net/patch/2030
>[quagga-dev,15986] bgp_route.c fix memory leak Introduced by: Author: 
> Pradosh Mohapatra  Date: Mon Nov 9 20:21:41 
> 2015 -0500
> Tested on top of Git : 5f67888 (as of 20160429.234845 UTC)
> CI System Testrun URL: https://ci1.netdef.org/browse/QUAGGA-QPWORK-343/
>
>
> Get source and apply patch from patchwork: Failed
> 
>> Applying Patchwork patch 2030
>> 
>> Git Patch: Using "git apply" for patch 2030
>> error: patch failed: bgpd/bgp_route.c:3778
>> error: bgpd/bgp_route.c: patch does not apply
> Regards,
>   NetDEF/OpenSourceRouting Continous Integration (CI) System
>
> ---
> OpenSourceRouting.org is a project of the Network Device Education Foundation,
> For more information, see www.netdef.org and www.opensourcerouting.org
> For questions in regards to this CI System, contact Martin Winter, 
> mwin...@netdef.org
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15987] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-08-01 Thread Lou Berger
I'll send patches to the list for these (1st one already sent).

Lou


On 8/1/2016 12:57 PM, Paul Jakma wrote:
> - bgpd: Remove unused and leaking code
>
>(Lou's fix, left the other leak alone for now (?))



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15986] [PATCH] bgp_route.c fix memory leak Introduced by: Author: Pradosh Mohapatra Date: Mon Nov 9 20:21:41 2015 -0500

2016-08-01 Thread Lou Berger
bgpd, doc, lib, zebra: nexthop-tracking in zebra
---
 bgpd/bgp_route.c | 5 -
 1 file changed, 5 deletions(-)

diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index a88a022..4cb6c14 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -3778,14 +3778,9 @@ bgp_static_withdraw (struct bgp *bgp, struct prefix *p, 
afi_t afi,
 {
   struct bgp_node *rn;
   struct bgp_info *ri;
-  struct bgp_info *new;
 
   /* Make new BGP info. */
   rn = bgp_node_get (bgp->rib[afi][safi], p);
-  new = info_make(ZEBRA_ROUTE_BGP, BGP_ROUTE_STATIC, bgp->peer_self,
- bgp_attr_default_intern(BGP_ORIGIN_IGP), rn);
-
-  SET_FLAG (new->flags, BGP_INFO_VALID);
 
   /* Check selected route and self inserted route. */
   for (ri = rn->info; ri; ri = ri->next)
-- 
2.1.3


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15953] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-07-26 Thread Lou Berger
Paul,

On 7/26/2016 2:53 PM, Paul Jakma wrote:
> On Tue, 26 Jul 2016, Lou Berger wrote:
>
>>>> Paul,
>>>>How do you want to proceed?
>>> Would it be easy to fix with a cleanup patch?
>> Do you want it formally?  Informally, as tested:
> I was thinking more of your comment on the globals? :) Want to fix that 
> now or later?
I think later is fine given current VRF support.

>  And who wants to do it?
I think it's the first one who gets there.  I looked at the cumulus
github and see they have it fixed.  I'd say the first one who sees this
problem in a feature they are working on fix it if the cumulus doesn't
beat them.  Alternatively next hop tracking can be stripped out, but I'd
prefer to have the code feature set increase, even if incrementally. -
Just one opinion and to be clear, I don't feel strongly either way in
this case.
 
> On the below, I'd just delete it - 
okay,

Thanks,
Lou
> though someone needs to look deeper 
> into the bgp_find_or_add_nexthop removal? Donald?
>
> regards,
>
> Paul
>
>> diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
>> index d84a865..46562cd 100644
>> --- a/bgpd/bgp_fsm.c
>> +++ b/bgpd/bgp_fsm.c
>> @@ -718,9 +718,10 @@ bgp_start (struct peer *peer)
>>   /* Register to be notified on peer up */
>>   if ((peer->ttl == 1) || (peer->gtsm_hops == 1))
>> connected = 1;
>> -
>> +#if 0
>>   bgp_find_or_add_nexthop(family2afi(peer->su.sa.sa_family), NULL, peer,
>>  connected);
>> +#endif
>>   status = bgp_connect (peer);
>>
>>   switch (status)
>> diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
>> index a88a022..a8801c5 100644
>> --- a/bgpd/bgp_route.c
>> +++ b/bgpd/bgp_route.c
>> @@ -3778,15 +3778,18 @@ bgp_static_withdraw (struct bgp *bgp, struct
>> prefix *p, afi_t afi,
>> {
>>   struct bgp_node *rn;
>>   struct bgp_info *ri;
>> +#if 0
>>   struct bgp_info *new;
>> +#endif
>>
>>   /* Make new BGP info. */
>>   rn = bgp_node_get (bgp->rib[afi][safi], p);
>> +#if 0
>>   new = info_make(ZEBRA_ROUTE_BGP, BGP_ROUTE_STATIC, bgp->peer_self,
>>  bgp_attr_default_intern(BGP_ORIGIN_IGP), rn);
>>
>>   SET_FLAG (new->flags, BGP_INFO_VALID);
>> -
>> +#endif
>>   /* Check selected route and self inserted route. */
>>   for (ri = rn->info; ri; ri = ri->next)
>> if (ri->peer == bgp->peer_self
>>
>>
>>
>>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15950] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-07-26 Thread Lou Berger

Paul,

On 7/26/2016 12:13 PM, Paul Jakma wrote:
> On Tue, 26 Jul 2016, Lou Berger wrote:
>
>> As far as I can tell new is not used/leaked -- any idea why this was 
>> added (by Pradosh)?
> Unused code is easy to remove. ;)
>
>> This looks like is the result of bgp_start
>>
>>  bgp_find_or_add_nexthop(family2afi(peer->su.sa.sa_family), NULL, peer,
>>  connected);
>>
>> commenting it out also solves the leak, but can't say what impact this
>> has operationally.
>>
>> One additional comment: the use of globals in NHT (rather than per bgp 
>> instance variables) is really ugly from the VRF standpoint and will 
>> need to moved at some point.
> Would agree in principle, without remembering the code.
suspect this is a functional change, but have not investigated.

>
>> Paul,
>>How do you want to proceed?
> Would it be easy to fix with a cleanup patch?
Do you want it formally?  Informally, as tested:

diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
index d84a865..46562cd 100644
--- a/bgpd/bgp_fsm.c
+++ b/bgpd/bgp_fsm.c
@@ -718,9 +718,10 @@ bgp_start (struct peer *peer)
   /* Register to be notified on peer up */
   if ((peer->ttl == 1) || (peer->gtsm_hops == 1))
 connected = 1;
-
+#if 0
   bgp_find_or_add_nexthop(family2afi(peer->su.sa.sa_family), NULL, peer,
  connected);
+#endif
   status = bgp_connect (peer);
 
   switch (status)
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index a88a022..a8801c5 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -3778,15 +3778,18 @@ bgp_static_withdraw (struct bgp *bgp, struct
prefix *p, afi_t afi,
 {
   struct bgp_node *rn;
   struct bgp_info *ri;
+#if 0
   struct bgp_info *new;
+#endif
 
   /* Make new BGP info. */
   rn = bgp_node_get (bgp->rib[afi][safi], p);
+#if 0
   new = info_make(ZEBRA_ROUTE_BGP, BGP_ROUTE_STATIC, bgp->peer_self,
  bgp_attr_default_intern(BGP_ORIGIN_IGP), rn);
 
   SET_FLAG (new->flags, BGP_INFO_VALID);
-
+#endif
   /* Check selected route and self inserted route. */
   for (ri = rn->info; ri; ri = ri->next)
 if (ri->peer == bgp->peer_self




___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15945] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-07-26 Thread Lou Berger
Hi Donald, (Paul)


On 7/25/2016 7:55 PM, Donald Sharp wrote:
> I don't see anything else that is obvious, there are lots of other
> commits that touch code in bgp :(
Yes, but testing shows which patches introduces the leaks - sorry...

>
> Memory leak fix for BGP Nexthop leaking:
> https://github.com/CumulusNetworks/quagga/commit/7898cb4f5ef311589be9c3c9a3aab41d5b16b989
>
> donald
>
> On Wed, Jul 20, 2016 at 12:31 PM, Lou Berger  wrote:
>> The branch passes our short regression (the longer test is running) with
>> the same memory leaks:
>>
>> per: https://lists.quagga.net/pipermail/quagga-dev/2016-July/015982.html
>>
>>
>> #1
>>
>>   Author: Pradosh Mohapatra > <https://lists.quagga.net/mailman/listinfo/quagga-dev>>
>>   Date:   Mon Nov 9 20:21:41 2015 -0500
>>
>> bgpd, doc, lib, zebra: nexthop-tracking in zebra
>>
>> 0. Introduction
>>
>> This is the design specification for next hop tracking feature in
>> Quagga.
>> ...
>>
>>   Leaked type: BGP route : 40 blocks
>>   Leaked type: BGP extra attributes : 40 blocks
This is fixed by:
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index a88a022..a8801c5 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -3778,15 +3778,18 @@ bgp_static_withdraw (struct bgp *bgp, struct
prefix *p, afi_t afi,
 {
   struct bgp_node *rn;
   struct bgp_info *ri;
+#if 0
   struct bgp_info *new;
+#endif
 
   /* Make new BGP info. */
   rn = bgp_node_get (bgp->rib[afi][safi], p);
+#if 0
   new = info_make(ZEBRA_ROUTE_BGP, BGP_ROUTE_STATIC, bgp->peer_self,
  bgp_attr_default_intern(BGP_ORIGIN_IGP), rn);
 
   SET_FLAG (new->flags, BGP_INFO_VALID);
-
+#endif

As far as I can tell new is not used/leaked -- any idea why this was
added (by Pradosh)?

>>
>> #2
>>
>>Author: Dinesh Dutt > <https://lists.quagga.net/mailman/listinfo/quagga-dev>>
>>Date:   Tue May 19 17:47:21 2015 -0700
>>
>> bgpd, zebra: Use next hop tracking for connected routes too
>>
>> Allow next hop tracking to work with connected routes
>> And cleanup obsolete code in bgp_scan and bgp_import.
>>
>>
>>   Leaked type: BGP nexthop : 7 blocks
This looks like is the result of bgp_start

  bgp_find_or_add_nexthop(family2afi(peer->su.sa.sa_family), NULL, peer,
  connected);

commenting it out also solves the leak, but can't say what impact this
has operationally.

One additional comment: the use of globals in NHT (rather than per bgp
instance variables) is really ugly from the VRF standpoint and will need
to moved at some point.

Paul,
How do you want to proceed?

Lou

>> Lou
>>
>> On 7/20/2016 5:34 PM, Paul Jakma wrote:
>>> Hi,
>>>
>>> I've shuffled in Donald's fix, and did the shuffling for Lou's testing.
>>> Published the rebased head to:
>>>
>>>volatile/patch-tracking/8/proposed/ff-2016072001
>>>
>>> Hopefully there's no further probs with it and we can bump master along
>>> to that head soon, and crank through the next batch.
>>>
>>> regards,
>>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15924] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-07-20 Thread Lou Berger

Id say give them / someone a chance to  provide a fix...


On July 20, 2016 10:01:47 PM Paul Jakma  wrote:


On Wed, 20 Jul 2016, Lou Berger wrote:


The branch passes our short regression (the longer test is running) with
the same memory leaks:

per: https://lists.quagga.net/pipermail/quagga-dev/2016-July/015982.html


#1

 Author: Pradosh Mohapatra https://lists.quagga.net/mailman/listinfo/quagga-dev>>
 Date:   Mon Nov 9 20:21:41 2015 -0500

   bgpd, doc, lib, zebra: nexthop-tracking in zebra



  Author: Dinesh Dutt https://lists.quagga.net/mailman/listinfo/quagga-dev>>
  Date:   Tue May 19 17:47:21 2015 -0700

   bgpd, zebra: Use next hop tracking for connected routes too


So do we drop those, or leave them in and wait for the fixes?

I think Timo Teras' NHRP work depends on these, IIRC.

regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
The easiest way to get the root password is to become system admin.
-- Unknown source





___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15921] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-07-20 Thread Lou Berger
The branch passes our short regression (the longer test is running) with
the same memory leaks:

per: https://lists.quagga.net/pipermail/quagga-dev/2016-July/015982.html


#1

  Author: Pradosh Mohapatra https://lists.quagga.net/mailman/listinfo/quagga-dev>>
  Date:   Mon Nov 9 20:21:41 2015 -0500

bgpd, doc, lib, zebra: nexthop-tracking in zebra
   
0. Introduction
   
This is the design specification for next hop tracking feature in
Quagga.
... 

  Leaked type: BGP route : 40 blocks 
  Leaked type: BGP extra attributes : 40 blocks

#2

   Author: Dinesh Dutt https://lists.quagga.net/mailman/listinfo/quagga-dev>>
   Date:   Tue May 19 17:47:21 2015 -0700

bgpd, zebra: Use next hop tracking for connected routes too
   
Allow next hop tracking to work with connected routes
And cleanup obsolete code in bgp_scan and bgp_import.
   

  Leaked type: BGP nexthop : 7 blocks

Lou

On 7/20/2016 5:34 PM, Paul Jakma wrote:
> Hi,
>
> I've shuffled in Donald's fix, and did the shuffling for Lou's testing. 
> Published the rebased head to:
>
>volatile/patch-tracking/8/proposed/ff-2016072001
>
> Hopefully there's no further probs with it and we can bump master along 
> to that head soon, and crank through the next batch.
>
> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15918] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-07-19 Thread Lou Berger
Hi Paul,


On 7/19/2016 12:00 PM, Paul Jakma wrote:
> On Wed, 13 Jul 2016, Lou Berger wrote:
>
>> The quick test with the offending patch removed looked good. It just 
>> found the already reported memory leak.  I've started a more 
>> comprehensive test on whole branch -- will take a~2.5 hours to run.
> Cool.
>
> I'll shuffle that from 'ff' to a 'nits' branch. And also have a look at 
> the 'make check' one Martin reported and see if about shuffling a fix in 
> after it - or squashing one in.
thanks.
> I gather people want any such rebased head to have a new name ('ffv2'?), 
> rather than re-using the old label for a new, non-fast-foward-mergable 
> head?
v2 would be great.

>> I'm also rerunning the step-wise basic (4min) regression through every 
>> other commit to find the origin of the memory leak. -- just 109 (out 
>> of 160) remaining!
> Ouch.
Actually not really a big deal at 4 min a run.

> For specific issues, git bisect can help. The '-x' argument to git 
> rebase is also good (I try do a -x 'make -j3' rebase to at least check 
> compile works - though there have been some patch-series submitted that 
> don't compile on a per-commit basis).

The overall regression is done, and was pretty painless to automate.  
I'll publish the detailed results when I have  some time -- not this
week though...

Lou
> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15919] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-19 Thread Lou Berger
Thanks!


On 7/19/2016 12:03 PM, Paul Jakma wrote:
>> > PS I rebased the following commits to be 1st in order to get the
>> > regression environment running:
> K, will do same.



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15909] Meet up @ ietf this week?

2016-07-17 Thread Lou Berger
Anyone interested in meeting up this week? No particular agenda?. How about 
Thursday lunchtime in the hotel lobby?


Lou



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15900] bgpd memory leaks in 8/proposed/ff

2016-07-13 Thread Lou Berger
looks like there are two different new leakers in proposed/8/ff (as
identified by our quick/basic regression tests)

#1

  Author: Pradosh Mohapatra 
  Date:   Mon Nov 9 20:21:41 2015 -0500

bgpd, doc, lib, zebra: nexthop-tracking in zebra
   
0. Introduction
   
This is the design specification for next hop tracking feature in
Quagga.
... 

  Leaked type: BGP route : 40 blocks 
  Leaked type: BGP extra attributes : 40 blocks

#2

   Author: Dinesh Dutt 
   Date:   Tue May 19 17:47:21 2015 -0700

bgpd, zebra: Use next hop tracking for connected routes too
   
Allow next hop tracking to work with connected routes
And cleanup obsolete code in bgp_scan and bgp_import.
   

  Leaked type: BGP nexthop : 7 blocks




___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15899] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-13 Thread Lou Berger
this passes the quick regression test...


On 7/13/2016 11:02 AM, Donald Sharp wrote:
> This should fix the issue.
>
> diff --git a/lib/thread.c b/lib/thread.c
> index a26b43a..6fcddd7 100644
> --- a/lib/thread.c
> +++ b/lib/thread.c
> @@ -790,7 +790,7 @@ funcname_thread_add_read_write (int dir, struct
> thread_master *m,
>else
>  fdset = &m->writefd;
>
> -  if (FD_ISSET (fd, &m->readfd))
> +  if (FD_ISSET (fd, fdset))
>  {
>zlog (NULL, LOG_WARNING, "There is already %s fd [%d]",
> (dir = THREAD_READ) ? "read" : "write", fd);
>
> On Wed, Jul 13, 2016 at 6:22 AM, Paul Jakma  wrote:
>> Hi Lou,
>>
>> Thanks. Donald had another patch in that series, 0b697fa9281a62 / "ib: Add
>> ability to use poll() instead of select", but had indicated that was kind of
>> preliminary still and that he wanted to do further work on it.
>>
>> If you drop the below, do you find further probs?
>>
>> regards,
>>
>> Paul
>>
>>
>> On Wed, 13 Jul 2016, Lou Berger wrote:
>>
>>> This is patch that's breaking bgpd in 8/proposed/ff
>>>
>>> Author: Donald Sharp 
>>> Date:   Fri Mar 4 15:28:56 2016 -0500
>>>
>>>lib: Refactor read/write functionality
>>>
>>>Both the read and write functions used the same code
>>>slightly modified for reading and writing.  Combine this
>>>code together.
>>>
>>>Signed-off-by: Donald Sharp 
>>>
>>>Edited-by: Paul Jakma  to retain the
>>>external library symbols, for ease of merging.
>>>
>>>
>>> On 7/12/2016 7:55 PM, Lou Berger wrote:
>>>> Just an update: we've hooked our regression system into the github
>>>> mirror and are now running minimal  regression tests on bgpd.  The tests
>>>> start at a commit and move to the head of the branch, commit by commit
>>>> -- pretty simple approach.
>>>>
>>>> Each run does a compile, basic adjacency checks, some unicast and VRF
>>>> route distributions and checks the results against a reference (known
>>>> good run).  Each run takes about 4 minutes and there are about 160
>>>> commits in /8/proposed/ff - currently has about 150 to go.
>>>>
>>>> I'll provide an update once we have interesting results.
>>>>
>>>> Lou
>>>>
>>>> PS I rebased the following commits to be 1st in order to get the
>>>> regression environment running:
>>>>
>>>> Author: Lou Berger 
>>>> Date:   Tue May 17 07:10:37 2016 -0400
>>>>
>>>> bgpd: Add flag to not change e{u,g}id on startup and run as
>>>> unprivileged user
>>>>
>>>> * bgp_main.c: add -S / --skip_runas flag to not change effective
>>>> user/group
>>>>   on start up.  Enables bgpd to be run by unprivileged user.
>>>>
>>>> Author: Lou Berger 
>>>> Date:   Tue May 17 07:10:36 2016 -0400
>>>>
>>>> bgp: add "debug bgp allow-martians" next hops and related
>>>> code/commands
>>>>
>>>> Author: Lou Berger 
>>>> Date:   Tue May 17 12:19:51 2016 -0400
>>>>
>>>> lib: change command logging to be off by default
>>>>
>>>> * lib/vty.c: add 'log_command' to enable logging of vty commands
>>>> executed.
>>>>   Default command logging to off.
>>>>
>>>>
>>>>
>>>> On 7/11/2016 5:44 AM, Lou Berger wrote:
>>>>>>> Any luck pinning down what commits are causing which issues for you?
>>>>>>>
>>>>> Not yet.  Thinking I'll try to wire into our regression system in some
>>>>> way...
>>>>>
>>>
>>>
>>> ___
>>> Quagga-dev mailing list
>>> Quagga-dev@lists.quagga.net
>>> https://lists.quagga.net/mailman/listinfo/quagga-dev
>>>
>> --
>> Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
>> Fortune:
>> If dolphins are so smart, why did Flipper work for television?



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15898] Re: [PATCH 10/10] bgpd: add L3/L2VPN Virtual Network Control feature

2016-07-13 Thread Lou Berger
FYI we have pushed an updated rev of our patches that address comments
received to date -- mainly bug fixes.  We're not planning on any
additional changes at the moment.  The rebased (to be integrated
version) is available at

https://github.com/LabNConsulting/quagga-vnc/tree/patches/R1.0.20160315%2Bvnc/v4

v3 contains the changes from the previously reviewed version.

We will submit as a replacement patch set as soon we can rebase based on
proposed/8

Lou

On 6/17/2016 1:31 PM, Lou Berger wrote:
> Philippe,
>
> okay fixes pushed to v2 (including removing v6 ifdefs) to show changes
> and v3* posted to show final results.  We have a couple of more issues
> to deal with (skiplist license and a bug fix we're testing).  Once these
> are resolved we'll submit a formal patch update. 
>
> BTW V3 has the references you asked for in the log.
>
> *
> https://github.com/LabNConsulting/quagga-vnc/tree/patches/R1.0.20160315%2Bvnc/v3
>
> On 6/17/2016 10:10 AM, Lou Berger wrote:
>> On 6/17/2016 9:15 AM, Philippe Guibert wrote:
>>> On Thu, Jun 16, 2016 at 8:52 PM, Lou Berger  wrote:
>>>
>>> Hello Lou,
>>>
>>>> Philippe,
>>>>
>>>> I've posted a fix to this (patch on patch) in
>>>>
>>>> https://github.com/LabNConsulting/quagga-vnc/commit/cd54370cb94d598aa95bd7561cc012200920d97a
>>>>
>>> I posted 2 minor comments:
>>>
>>> 1) The code has been compacted; however i fear this may lead to
>>> confusion ( especially because you perform if() just behind #endif
>>> macro).
>>> instead of:
>>>
>>> #if ENABLE_BGP_VNC
>>> if (v != RD_TYPE_VNC_ETH)
>>> #endif
>>> v |= (u_int16_t) *pnt;
>>>
>>> I would do:
>>>
>>> #if ENABLE_BGP_VNC
>>> if (v != RD_TYPE_VNC_ETH)
>>>v |= (u_int16_t) *pnt;
>>> #else
>>> v |= (u_int16_t) *pnt;
>>> #endif
>>>
>>> IMHO, I think this brings more clarity about the algorithm in place.
>> I considered this, but I hate duplicate code so came down on the other
>> side.  But I was on the fence, so will make this change.
>>
>>
>>> 2) duplicate encode_rd stuff
>>>> this was covered in the v2 patch just sent to the list.
>>> point 2 is resolved by v2 patch then.
>>>
>>>> okay, will post a pointer to v3 once we resolve the 2 minor comments.
>>> waiting for v3 version with point 1) fix to ack.
>> Thanks!
>> Lou
>>>> Thanks,
>>>>
>>> Thanks,
>>>
>>> Philippe
>>>
>>
>> ___
>> Quagga-dev mailing list
>> Quagga-dev@lists.quagga.net
>> https://lists.quagga.net/mailman/listinfo/quagga-dev
>>
>
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15897] Re: bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-07-13 Thread Lou Berger
Paul,

On 7/13/2016 6:46 AM, Lou Berger wrote:
> Paul,
>
> The quick test with the offending patch removed looked good. It just
> found the already reported memory leak.  I've started a more
> comprehensive test on whole branch -- will take a~2.5 hours to run. 
BGPd (VNC) regression passed with the offending patch omitted.  The only
problem seen was the memory leak:
Leaked type: BGP nexthop : 7 blocks0  1
Leaked type: BGP route : 40 blocks 0  1
Leaked type: BGP extra attributes : 40 blocks  0  1

> I'm also rerunning the step-wise basic (4min) regression through every
> other commit to find the origin of the memory leak. --  just 109 (out of
> 160) remaining!

The next issue is:
isis_vty.o: In function `no_dynamic_hostname':
isis_vty.c:(.text+0x15b9): undefined reference to
`isis_area_dynhostname_set'

with

  Author: David Lamparter 
  Date:   Tue May 24 18:26:48 2016 +0200

isisd: API: basic circuit config
   
Create isis_vty.c and start moving off CLI functions into that.  These
then call newly-added "nice" API wrappers.
   
Patch contains significant work authored by Christian Franke.
   
Signed-off-by: David Lamparter 

This is fixed by the subsequent isisd testing, so I'm testing after that
patch set in search of the source of the leak.

Lou

> Lou
>
> On 7/13/2016 6:22 AM, Paul Jakma wrote:
>> Hi Lou,
>>
>> Thanks. Donald had another patch in that series, 0b697fa9281a62 / "ib: 
>> Add ability to use poll() instead of select", but had indicated that was 
>> kind of preliminary still and that he wanted to do further work on it.
>>
>> If you drop the below, do you find further probs?
>>
>> regards,
>>
>> Paul
>>
>> On Wed, 13 Jul 2016, Lou Berger wrote:
>>
>>> This is patch that's breaking bgpd in 8/proposed/ff
>>>
>>> Author: Donald Sharp 
>>> Date:   Fri Mar 4 15:28:56 2016 -0500
>>>
>>>lib: Refactor read/write functionality
>>>
>>>Both the read and write functions used the same code
>>>slightly modified for reading and writing.  Combine this
>>>code together.
>>>
>>>Signed-off-by: Donald Sharp 
>>>
>>>Edited-by: Paul Jakma  to retain the
>>>external library symbols, for ease of merging.
>>>
>>>
>>> On 7/12/2016 7:55 PM, Lou Berger wrote:
>>>> Just an update: we've hooked our regression system into the github
>>>> mirror and are now running minimal  regression tests on bgpd.  The tests
>>>> start at a commit and move to the head of the branch, commit by commit
>>>> -- pretty simple approach.
>>>>
>>>> Each run does a compile, basic adjacency checks, some unicast and VRF
>>>> route distributions and checks the results against a reference (known
>>>> good run).  Each run takes about 4 minutes and there are about 160
>>>> commits in /8/proposed/ff - currently has about 150 to go.
>>>>
>>>> I'll provide an update once we have interesting results.
>>>>
>>>> Lou
>>>>
>>>> PS I rebased the following commits to be 1st in order to get the
>>>> regression environment running:
>>>>
>>>> Author: Lou Berger 
>>>> Date:   Tue May 17 07:10:37 2016 -0400
>>>>
>>>> bgpd: Add flag to not change e{u,g}id on startup and run as
>>>> unprivileged user
>>>>
>>>> * bgp_main.c: add -S / --skip_runas flag to not change effective
>>>> user/group
>>>>   on start up.  Enables bgpd to be run by unprivileged user.
>>>>
>>>> Author: Lou Berger 
>>>> Date:   Tue May 17 07:10:36 2016 -0400
>>>>
>>>> bgp: add "debug bgp allow-martians" next hops and related code/commands
>>>>
>>>> Author: Lou Berger 
>>>> Date:   Tue May 17 12:19:51 2016 -0400
>>>>
>>>> lib: change command logging to be off by default
>>>>
>>>> * lib/vty.c: add 'log_command' to enable logging of vty commands
>>>> executed.
>>>>   Default command logging to off.
>>>>
>>>>
>>>>
>>>> On 7/11/2016 5:44 AM, Lou Berger wrote:
>>>>>>> Any luck pinning down what commits are causing which issues for you?
>>>>>>>
>>>>> Not yet.  Thinking I'll try to wire into our regression system in some 
>>>>> way...
>>>>>
>>>
>>> ___
>>> Quagga-dev mailing list
>>> Quagga-dev@lists.quagga.net
>>> https://lists.quagga.net/mailman/listinfo/quagga-dev
>>>
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15894] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-13 Thread Lou Berger
Just an update: we've hooked our regression system into the github
mirror and are now running minimal  regression tests on bgpd.  The tests
start at a commit and move to the head of the branch, commit by commit
-- pretty simple approach. 

Each run does a compile, basic adjacency checks, some unicast and VRF
route distributions and checks the results against a reference (known
good run).  Each run takes about 4 minutes and there are about 160
commits in /8/proposed/ff - currently has about 150 to go.

I'll provide an update once we have interesting results.

Lou

PS I rebased the following commits to be 1st in order to get the
regression environment running:

Author: Lou Berger 
Date:   Tue May 17 07:10:37 2016 -0400

bgpd: Add flag to not change e{u,g}id on startup and run as
unprivileged user
   
* bgp_main.c: add -S / --skip_runas flag to not change effective
user/group
  on start up.  Enables bgpd to be run by unprivileged user.

Author: Lou Berger 
Date:   Tue May 17 07:10:36 2016 -0400

bgp: add "debug bgp allow-martians" next hops and related code/commands

Author: Lou Berger 
Date:   Tue May 17 12:19:51 2016 -0400

lib: change command logging to be off by default
   
* lib/vty.c: add 'log_command' to enable logging of vty commands
executed.
  Default command logging to off.



On 7/11/2016 5:44 AM, Lou Berger wrote:
>> > Any luck pinning down what commits are causing which issues for you?
>> >
> Not yet.  Thinking I'll try to wire into our regression system in some way...
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15892] bgpd regression of 8/ff results (was Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch)

2016-07-13 Thread Lou Berger
Paul,

The quick test with the offending patch removed looked good. It just
found the already reported memory leak.  I've started a more
comprehensive test on whole branch -- will take a~2.5 hours to run. 

I'm also rerunning the step-wise basic (4min) regression through every
other commit to find the origin of the memory leak. --  just 109 (out of
160) remaining!

Lou

On 7/13/2016 6:22 AM, Paul Jakma wrote:
> Hi Lou,
>
> Thanks. Donald had another patch in that series, 0b697fa9281a62 / "ib: 
> Add ability to use poll() instead of select", but had indicated that was 
> kind of preliminary still and that he wanted to do further work on it.
>
> If you drop the below, do you find further probs?
>
> regards,
>
> Paul
>
> On Wed, 13 Jul 2016, Lou Berger wrote:
>
>> This is patch that's breaking bgpd in 8/proposed/ff
>>
>> Author: Donald Sharp 
>> Date:   Fri Mar 4 15:28:56 2016 -0500
>>
>>lib: Refactor read/write functionality
>>
>>Both the read and write functions used the same code
>>slightly modified for reading and writing.  Combine this
>>code together.
>>
>>Signed-off-by: Donald Sharp 
>>
>>Edited-by: Paul Jakma  to retain the
>>external library symbols, for ease of merging.
>>
>>
>> On 7/12/2016 7:55 PM, Lou Berger wrote:
>>> Just an update: we've hooked our regression system into the github
>>> mirror and are now running minimal  regression tests on bgpd.  The tests
>>> start at a commit and move to the head of the branch, commit by commit
>>> -- pretty simple approach.
>>>
>>> Each run does a compile, basic adjacency checks, some unicast and VRF
>>> route distributions and checks the results against a reference (known
>>> good run).  Each run takes about 4 minutes and there are about 160
>>> commits in /8/proposed/ff - currently has about 150 to go.
>>>
>>> I'll provide an update once we have interesting results.
>>>
>>> Lou
>>>
>>> PS I rebased the following commits to be 1st in order to get the
>>> regression environment running:
>>>
>>> Author: Lou Berger 
>>> Date:   Tue May 17 07:10:37 2016 -0400
>>>
>>> bgpd: Add flag to not change e{u,g}id on startup and run as
>>> unprivileged user
>>>
>>> * bgp_main.c: add -S / --skip_runas flag to not change effective
>>> user/group
>>>   on start up.  Enables bgpd to be run by unprivileged user.
>>>
>>> Author: Lou Berger 
>>> Date:   Tue May 17 07:10:36 2016 -0400
>>>
>>> bgp: add "debug bgp allow-martians" next hops and related code/commands
>>>
>>> Author: Lou Berger 
>>> Date:   Tue May 17 12:19:51 2016 -0400
>>>
>>> lib: change command logging to be off by default
>>>
>>> * lib/vty.c: add 'log_command' to enable logging of vty commands
>>> executed.
>>>   Default command logging to off.
>>>
>>>
>>>
>>> On 7/11/2016 5:44 AM, Lou Berger wrote:
>>>>>> Any luck pinning down what commits are causing which issues for you?
>>>>>>
>>>> Not yet.  Thinking I'll try to wire into our regression system in some 
>>>> way...
>>>>
>>
>>
>> ___
>> Quagga-dev mailing list
>> Quagga-dev@lists.quagga.net
>> https://lists.quagga.net/mailman/listinfo/quagga-dev
>>


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15890] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-13 Thread Lou Berger
[also a resend...]

This is patch that's breaking bgpd in 8/proposed/ff

Author: Donald Sharp 
Date:   Fri Mar 4 15:28:56 2016 -0500

lib: Refactor read/write functionality
   
Both the read and write functions used the same code
slightly modified for reading and writing.  Combine this
code together.
   
Signed-off-by: Donald Sharp 
   
Edited-by: Paul Jakma  to retain the
external library symbols, for ease of merging.


On 7/13/2016 6:10 AM, Lou Berger wrote:
> [resend as this message didn't seem to make it to the list...]
>
> Just an update: we've hooked our regression system into the github
> mirror and are now running minimal  regression tests on bgpd.  The tests
> start at a commit and move to the head of the branch, commit by commit
> -- pretty simple approach.
> Each run does a compile, basic adjacency checks, some unicast and VRF
> route distributions and checks the results against a reference (known
> good run).  Each run takes about 4 minutes and there are about 160
> commits in /8/proposed/ff - currently has about 150 to go.
>
> I'll provide an update once we have interesting results.
>
> Lou
>
> PS I rebased the following commits to be 1st in order to get the
> regression environment running:
>
> Author: Lou Berger 
> Date:   Tue May 17 07:10:37 2016 -0400
>
> bgpd: Add flag to not change e{u,g}id on startup and run as
> unprivileged user
>* bgp_main.c: add -S / --skip_runas flag to not change effective
> user/group
>   on start up.  Enables bgpd to be run by unprivileged user.
>
> Author: Lou Berger 
> Date:   Tue May 17 07:10:36 2016 -0400
>
> bgp: add "debug bgp allow-martians" next hops and related code/commands
>
> Author: Lou Berger 
> Date:   Tue May 17 12:19:51 2016 -0400
>
> lib: change command logging to be off by default
>* lib/vty.c: add 'log_command' to enable logging of vty commands
> executed.
>   Default command logging to off.
>
>
>
> On 7/11/2016 5:44 AM, Lou Berger wrote:
>>>> Any luck pinning down what commits are causing which issues for you?
>>>>
>> Not yet.  Thinking I'll try to wire into our regression system in some way...
>>
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15889] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-13 Thread Lou Berger
This is patch that's breaking bgpd in 8/proposed/ff

Author: Donald Sharp 
Date:   Fri Mar 4 15:28:56 2016 -0500

lib: Refactor read/write functionality
   
Both the read and write functions used the same code
slightly modified for reading and writing.  Combine this
code together.
   
Signed-off-by: Donald Sharp 
   
Edited-by: Paul Jakma  to retain the
external library symbols, for ease of merging.


On 7/12/2016 7:55 PM, Lou Berger wrote:
> Just an update: we've hooked our regression system into the github
> mirror and are now running minimal  regression tests on bgpd.  The tests
> start at a commit and move to the head of the branch, commit by commit
> -- pretty simple approach. 
>
> Each run does a compile, basic adjacency checks, some unicast and VRF
> route distributions and checks the results against a reference (known
> good run).  Each run takes about 4 minutes and there are about 160
> commits in /8/proposed/ff - currently has about 150 to go.
>
> I'll provide an update once we have interesting results.
>
> Lou
>
> PS I rebased the following commits to be 1st in order to get the
> regression environment running:
>
> Author: Lou Berger 
> Date:   Tue May 17 07:10:37 2016 -0400
>
> bgpd: Add flag to not change e{u,g}id on startup and run as
> unprivileged user
>
> * bgp_main.c: add -S / --skip_runas flag to not change effective
> user/group
>   on start up.  Enables bgpd to be run by unprivileged user.
>
> Author: Lou Berger 
> Date:   Tue May 17 07:10:36 2016 -0400
>
> bgp: add "debug bgp allow-martians" next hops and related code/commands
>
> Author: Lou Berger 
> Date:   Tue May 17 12:19:51 2016 -0400
>
> lib: change command logging to be off by default
>
> * lib/vty.c: add 'log_command' to enable logging of vty commands
> executed.
>   Default command logging to off.
>
>
>
> On 7/11/2016 5:44 AM, Lou Berger wrote:
>>>> Any luck pinning down what commits are causing which issues for you?
>>>>
>> Not yet.  Thinking I'll try to wire into our regression system in some way...
>>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15888] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-13 Thread Lou Berger
[resend as this message didn't seem to make it to the list...]

Just an update: we've hooked our regression system into the github
mirror and are now running minimal  regression tests on bgpd.  The tests
start at a commit and move to the head of the branch, commit by commit
-- pretty simple approach.
Each run does a compile, basic adjacency checks, some unicast and VRF
route distributions and checks the results against a reference (known
good run).  Each run takes about 4 minutes and there are about 160
commits in /8/proposed/ff - currently has about 150 to go.

I'll provide an update once we have interesting results.

Lou

PS I rebased the following commits to be 1st in order to get the
regression environment running:

Author: Lou Berger 
Date:   Tue May 17 07:10:37 2016 -0400

bgpd: Add flag to not change e{u,g}id on startup and run as
unprivileged user
   * bgp_main.c: add -S / --skip_runas flag to not change effective
user/group
  on start up.  Enables bgpd to be run by unprivileged user.

Author: Lou Berger 
Date:   Tue May 17 07:10:36 2016 -0400

bgp: add "debug bgp allow-martians" next hops and related code/commands

Author: Lou Berger 
Date:   Tue May 17 12:19:51 2016 -0400

lib: change command logging to be off by default
   * lib/vty.c: add 'log_command' to enable logging of vty commands
executed.
  Default command logging to off.



On 7/11/2016 5:44 AM, Lou Berger wrote:
>> > Any luck pinning down what commits are causing which issues for you?
>> >
> Not yet.  Thinking I'll try to wire into our regression system in some way...
>


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15884] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-11 Thread Lou Berger



On July 11, 2016 4:40:25 AM Paul Jakma  wrote:


On Thu, 7 Jul 2016, Paul Jakma wrote:


On Thu, 7 Jul 2016, Lou Berger wrote:


Nope, but dropping this fixes another issue: normal updates are also taking
1-2 *minutes*. Also, adjacencies are taking longer than normal to come up


Weird.


Any luck pinning down what commits are causing which issues for you?



Not yet.  Thinking I'll try to wire into our regression system in some way...


regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
The person who's taking you to lunch has no intention of paying.





___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15881] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-07 Thread Lou Berger


On 7/7/2016 12:58 PM, Paul Jakma wrote:
> On Thu, 7 Jul 2016, Lou Berger wrote:
>
>> Looks like this fixes the exit problem.  Two issues I see immediately 
>> are:
>>   ==12640== {
>>   
>>   Memcheck:Leak
>>   fun:calloc
>>   fun:zcalloc
>>   fun:bnc_new
>>   fun:bgp_find_or_add_nexthop
>>   fun:bgp_start
>>   fun:bgp_event
>>   fun:bgp_start_timer
>>   fun:thread_call
>>   fun:main
>> }
>>
>> 2 some new log messages generated every seconds
>> 2016/07/07 09:02:35 BGP: There is already write fd [14]
>> 2016/07/07 09:02:35 BGP: There is already write fd [16]
>> 2016/07/07 09:02:35 BGP: There is already write fd [17]
> Hmm, not sure what those are about. Can be fixed later maybe.
>
>> Updates of the VPN & Encap SAFIs are still not working in an RR 
>> config.
> Ah.
>
> The adjacencies issue, I wonder is that e27c516d, the connect timer 
> change?

Nope, but dropping this fixes another issue: normal updates are also
taking 1-2 *minutes*.
Also, adjacencies are taking longer than normal to come up

>> ahh, why not just different branches, e.g., 
>> patch-tracking/8/proposed/{v1,v2,v3}/... They are cheap and easy?  vN 
>> can contain all the changes, V(N=1) is created when rebases are done 
>> to clean up the history/log
> Or just use the commit ID? If you want a stable number, the first X 
> digits of the commit ID already automatically provide it.
The version approach allows all to see the changes that go in on top of
what was sent to the list.  This will certainly facilitate authors
reviewing changes to their submissions -- a good thing IMO - as well as
give you the clean history/logs you are looking for.

Lou

> Can also use 'hidden' branches/refs outside of refs/heads, e.g. in 
> refs/patch-tracking instead. They won't be fetched automatically, won't 
> appear in gitweb, etc.
>
> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15879] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-07 Thread Lou Berger


On 7/7/2016 8:43 AM, Paul Jakma wrote:
> On Thu, 7 Jul 2016, Paul Jakma wrote:
>
>> Unfortunately, that means the ff, nits and pushback tracking heads are going 
>> to get non-fast-forward updated.
> I've fixed the issue and updated {pushback,nits}/{a,b} and ff.
Looks like this fixes the exit problem.  Two issues I see immediately are:

1 valgrind:
==12640== 192 bytes in 3 blocks are definitely lost in loss record 1 of 1
==12640==at 0x4A057BB: calloc (vg_replace_malloc.c:593)
==12640==by 0x4C27B1: zcalloc (memory.c:89)
==12640==by 0x47EF2E: bnc_new (bgp_nexthop.c:80)
==12640==by 0x4A3697: bgp_find_or_add_nexthop (bgp_nht.c:126)
==12640==by 0x43850C: bgp_start (bgp_fsm.c:722)
==12640==by 0x439528: bgp_event (bgp_fsm.c:1177)
==12640==by 0x4370DE: bgp_start_timer (bgp_fsm.c:227)
==12640==by 0x4BFC4E: thread_call (thread.c:1358)
==12640==by 0x423007: main (bgp_main.c:489)
==12640==
{
   
   Memcheck:Leak
   fun:calloc
   fun:zcalloc
   fun:bnc_new
   fun:bgp_find_or_add_nexthop
   fun:bgp_start
   fun:bgp_event
   fun:bgp_start_timer
   fun:thread_call
   fun:main
}

2 some new log messages generated every seconds
2016/07/07 09:02:35 BGP: There is already write fd [14]
2016/07/07 09:02:35 BGP: There is already write fd [16]
2016/07/07 09:02:35 BGP: There is already write fd [17]

Updates of the VPN & Encap SAFIs are still not working in an RR config. 
There also seems something wrong with bringing up adjacencies in
general, but again I'm out of time on this for a bit...

> Unfortunately, the new refs are not fast-forward-mergable. In the longer 
> run, if volatile refs are an issue then maybe we just have to pass the 
> bare commit IDs around for staging trees.
ahh, why not just different branches, e.g.,
patch-tracking/8/proposed/{v1,v2,v3}/...
They are cheap and easy?  vN can contain all the changes, V(N=1) is
created when rebases are done to clean up the history/log

> Other alternatives would be not have staging trees, but then you're 
> going to have very messy histories with edits and little fixes scattered 
> all around the place, and intermingled with numerous reverts. 
The above addresses this without forced pushes - although I'm not sure I
care so much about a messy log

Lou

> The former 
> will make life harder for anyone who wants to backport fixes to an older 
> release; both may make life _more_ miserable for anyone following along 
> with out-of-tree work (e.g. WIP stuff, whatever).
>
> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15875] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-07 Thread Lou Berger




On July 7, 2016 6:00:15 AM Paul Jakma  wrote:


On Thu, 7 Jul 2016, Paul Jakma wrote:


Ah, it's my bad. 'lib: keep hash of node's commands to detect
duplicate installs' I missed adding the basic commands to other nodes
besides VIEW and ENABLE.


How did 'exit' get into your config file though?



We have a config file generation tool that for largely historic reasons 
generates a format that should equally work with cut and paste to the terminal.


Sure we can change the tool, but unless the change (and backwards 
incompatibility) is intended, imo we shouldn't.


Lou


Though we did accept it, it's not something we ever wrote out into
config files AFAIK.

regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
Insomnia isn't anything to lose sleep over.





___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15869] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-06 Thread Lou Berger
Paul,


On July 6, 2016 10:53:19 AM Paul Jakma  wrote:

> On Wed, 6 Jul 2016, Lou Berger wrote:
>
>> - bgpd now starts, but exit is no longer supported in config files
>> (which breaks existing configs) for example
>>
>>router bgp 123
>>
>>...
>>
>>exit
>
> Are you testing at 'ff' (which will need a forced update, if you've
> previously fetched it - note; as will all these heads)? Or at
> 'pushback/b (which is sort of what 'ff' used to be at)?
>
It was a new clone:
 git clone git://git.savannah.nongnu.org/quagga.git 8ff-v3
 cd 8ff-v3
 git checkout -t remotes/origin/volatile/patch-tracking/8/proposed/ff


> I'm guessing that if the problme is that 'exit' that it is due to:
>
> 'lib, vtysh: Add support for marking a file with appropriate end of
> context'
>

nope, is due to changes in lib/command.c in 8/ff

> Which I have in the 'pushback/b' subset, pending a comment to Dinesh
> about compatibility. If you test from:
>
> proposed/ff - commit 4adca54da37e3d9360bcb4ab6d69ff20821ff31e
>
no joy

> does it work? If that works), a test from:
>
> proposed/nits/b - commit 77a73bee9b636024bbc9e8ba7803b8f08d675c7d
>
> Would be useful. Does that work?
no

>
>> - I did a simple test propagating a VPN safi update (in a RR config) and
>> the route didn't propagate.
>>
>>  I have to run to meetings, but something in update processing is
>> definitely broken.
>
> Ok, if you can isolate to where, that'd be good.
ci, ci, ci, ci...

I don't have a good automated way to go backwards at the moment.  Maybe
Martin does - I probably won't have time to try to isolate until the end
of the week (and ID cutoff).  I'll see if Paul Z can...

>
> Also, it could be my editing. I had to do a lot of editing to fix merge
> issues, I might have fat-fingered stuff (no doubt did somewhere).
> Apologies in advance.

Understood - know you're working hard on this...
Lou
>
> regards,
> --
> Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
> Fortune:
> All the existing 2.0.x kernels are to buggy for 2.1.x to be the
> main goal.
>   -- Alan Cox
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15862] Re: Someone rebased volatile/patch-tracking/8/proposed/ff branch

2016-07-06 Thread Lou Berger
Thanks for the progress!

- bgpd now starts, but exit is no longer supported in config files
(which breaks existing configs) for example

router bgp 123

...

exit

- I did a simple test propagating a VPN safi update (in a RR config) and
the route didn't propagate. 

  I have to run to meetings, but something in update processing is
definitely broken.

Lou

On 7/6/2016 9:08 AM, Paul Jakma wrote:
> On Wed, 6 Jul 2016, Paul Jakma wrote:
>
>> Hi,
>>
>> I've reset the ref of the subject again. This time, it might hopefully stay 
>> stable, and further changes limited to after it (but no hard promises on 
>> that).
> Sigh, I screwed something up. I'll have to reset those heads again, 
> sorry.
>
> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15852] Re: Time for an experiment? (Was: focus: patchwork drain vs project updates)

2016-07-05 Thread Lou Berger


On 7/5/2016 8:42 AM, Vincent JARDIN wrote:
> Le 05/07/2016 12:11, Lou Berger a écrit :
>> If there are not roundskeepers  interested in trying this what's the harm?
> we'll unfocus and we'll never close the current effort.
>
right - which is the same point I was implicitly making WRT the process
discussions.

Most of us are sitting on the sidelines at the moment in a holding
pattern, it seems a waste to have had all this discussion and interest
and have nothing come of it.

If no one else is interested in trying out the new process, then this
itself is good information too. (but I also do think we need to allow
time for folks to consider this too.) 

Lou


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

[quagga-dev 15849] Re: Time for an experiment? (Was: focus: patchwork drain vs project updates)

2016-07-05 Thread Lou Berger



On July 5, 2016 3:10:34 AM Vincent JARDIN  wrote:


Le 5 juil. 2016 05:50, "Lou Berger"  a écrit :


So in thinking about this a bit, perhaps there's something useful that
we can try in parallel with the single-person focused effort of
proposed/8 (or 9) -- what about trying out the new process in a test
repo on github?


No, it will add mess on the mess.

That was the point of using a separate branch, if something doesn't go well 
we just abandon it. If there are not roundskeepers  interested in trying 
this what's the harm?


Lou
___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

[quagga-dev 15845] Time for an experiment? (Was: focus: patchwork drain vs project updates)

2016-07-04 Thread Lou Berger
So in thinking about this a bit, perhaps there's something useful that
we can try in parallel with the single-person focused effort of
proposed/8 (or 9) -- what about trying out the new process in a test
repo on github?

We could follow the proposed rolling integration process based on
patches ack'ed/discussed on quagga-dev,  using a new/non-conflicting
branch (e.g., 'dev/master'), and all those who have contributed to the
process as the initial maintainer set  (listed below + whoever else -
I'm sure Martin/Donald are on the list.)

Anyone interested in trying it out? 

Lou

PS I suspect my timing might be bad given this is a high vacation
week/period. So may need to give a little bit for folks to respond...

On 6/29/2016 6:21 AM, Vincent JARDIN wrote:
> All,
>
> There are many messages to update Quagga's organization. It is a good 
> way to proceed and we'll have to do something.
>
> However, from facts, we all see that
>http://patchwork.quagga.net/
> needed to be drained. Some patches were 4y+ old.
>
> So, I strongly believe that for the benefits of everyone,
>1st: patchwork needs to be drained,
>  http://patchwork.quagga.net/bundle/paul/round-8/
>
>2nd: we need all the ff to be applied onto the head:
>
> http://git.savannah.gnu.org/cgit/quagga.git/log/?h=volatile/patch-tracking/8/proposed/ff
>
> Currently, it is being done by Paul. So Thank you!
>
>3rd: finish the drain of patchwork (round 9?). Maybe it could be 
> started in parallel while Paul is finishing the round 8. To do it in 
> parallel, it would/could be expedite if patchwork could get some ack't, 
> for instance,
>http://patchwork.quagga.net/patch/1652/
> no one did ack't it. It is important to get a review or an ack.
>
>4th: then, let's update Quagga's organization for the benefits of 
> everyone. Many comments from Lou/Martin/Jafar/Paul/Donald/Olivier/etc. 
> are very valid.
>
> So, instead of getting many emails about new Quagga's organization, I 
> would rather prefer to see emails that review patches. Then, once 
> patches will be merged into the head, let's fix the organization.
>
> Let's be focus all together,
>   Vincent
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15760] Re: Quagga project governance

2016-06-28 Thread Lou Berger
On 06/28/2016 09:54 AM, Donald Sharp wrote:
>  I
> won't be paying full attention to any review comments because I will
> be on vacation the 1-10 of July, but hope to resolve all issues upon
> getting back in a timely manner.

Being forever the optimist - we'll plan/hope to have all issues resolved
*before* you return!

Lou

___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15757] Dispute resolution (was: Quagga project governance)

2016-06-28 Thread Lou Berger
[Separating threads - here]

Paul,   

On 6/28/2016 9:02 AM, Paul Jakma wrote:
> On Tue, 28 Jun 2016, Paul Jakma wrote:
> 
>> That's what has driven us to here. I simply can not fail to mention 
>> the facts of this, because this is the _prime point of disagreement_ 
>> between us.
> And I tried just to gently pushback on the majority voting stuff 
> initially, however to no avail. The more that wasn't heard, the more 
> explicit I had to get on why this bothers me particularly in this 
> context.

In the current proposal/discussion, disputes are resolved based on
majority voting of *maintainers*.  While there has been some discussion
on simple (>1/2) vs super (2/3s) majority, I haven't heard anyone else
support the position of any holding veto power.  Do you really think
that majority voting of *maintainers* is unreasonable?

Lou

> Sorry. But hey.
>
> regards,


___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15753] Re: Quagga project governance

2016-06-28 Thread Lou Berger
Paul,

So you'll discuss details once proposed as a patch to HACKING.md?
Doesn't sound like the right place for some of this, but sure -
shouldn't be hard to merge as there's not much overlap.  In fact, I just
did the merge (in
https://docs.google.com/document/d/19DZcT0cJUSYxVIFenHvGFhLLUmLTRFHuMNZcI7aUNGA/edit#)
by dropping HACKING.md at the start.

It probably makes sense to ensure the new pieces are largely agreed to
before submitting as patch (by Donald?) as well as formatted
consistently with HACKING.md.

Donald,
Does this work for you?  Where do we stand with resolving comments and
getting general agreement on the Maintainers doc?

Lou


On June 28, 2016 6:54:44 AM Paul Jakma  wrote:

> On Tue, 28 Jun 2016, Lou Berger wrote:
>
>> Being unwilling to directly comment on, or contribute to a community
>> developed document seems a bit unreasonable to me.
>
> One existed. Written by a number of people over the years. It's not
> perfect, but what is?
>
> It starts with:
>
> "This is a living document. Suggestions for updates, via the
>[quagga-dev list].., are welcome."
>
> Ignoring that and starting from scratch of itself I took to be sending a
> message, to an extent.
>
> If you want evolve, evolve things.
>
> regards,
> --
> Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
> Fortune:
> The brain is a wonderful organ; it starts working the moment you get up
> in the morning, and does not stop until you get to work.
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15750] Re: Quagga project governance

2016-06-28 Thread Lou Berger

Paul,

On June 28, 2016 6:02:28 AM Paul Jakma  wrote:
...


I don't think I am being that unreasonable.



Being unwilling to directly comment on, or contribute to a community 
developed document seems a bit unreasonable to me.


...


Funnily enough, when I explain the prime point of disagreement,


I expect that each of us has different issues we're interested in seeing 
addressed. Having the process(es) documented allows us all to ensure that 
our favorites are covered in an acceptable fashion , as well as understand 
what else governs this collaborative effort.


If you don't like what's been jointly hacked, please put forward an 
alternate starting point that we can all discuss. (Recall that the text 
that you sent to this in February has been already added to the relevant 
google docs.)


Thanks,
Lou



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15734] Re: Quagga project governance

2016-06-27 Thread Lou Berger
Paul,


On 6/27/2016 8:22 AM, Paul Jakma wrote:
> [any 'you' in the below may be general case than you specifically]
Thanks -- glad to see you're not singling me out ;-) 

It would be good to hear from others too (BTW there were a slew of folks
who fully participated in the last call -- and I wasn't one as I could
only stay for ~20 minutes) --I don't think I'm the only one that cares
about this -- if I am, I'll shut up and leave the list in peace.  But
perhaps it's because I have less "skin in the game" as I'm not, and
don't expect to be, a candidate for Maintainer.

> On Mon, 27 Jun 2016, Lou Berger wrote:
>
>>>  In terms of specific development processes, things have evolved and
>>>  should continue to evolve.
>> Why is this recent discussion anything than an evolution of the 
>> process?
> If it's meant to be evolution, show me the evolutionary path? Give me a 
> "diff" from the current processes to what is being proposed?
Again, if there was a document to diff against, we could do this -- but
there isn't one!

To (hopefully help) I've added the text from
https://lists.quagga.net/pipermail/quagga-dev/2016-February/014883.html
to the strawman process and maintainers doc to help move this along.

> Just the fact one must have a Google account to participate in this 
> suggests this is far from an evolution.

This is incorrect - all one needs is a browser.   To demonstrate, I made
the above changes without using any google account.

>
>> I accept that there may not be as much understand and context of 
>> quagga's history as think there should be. But if those that have the 
>> history or are not participating in the discussion , that history will 
>> be missed. While this isn't preferred, we can't compel people to 
>> participate.
> That's a 2-way street.
>
>> And it has seemed to have left you somewhat abandoned by the other 
>> "maintainers".
> Look, it really gives me _no_ joy to make other people unhappy. 
> Honestly. I _want_ you to be happy, and if you want a project where:
>
> - Decisions are made by Google Hangouts at a time that suits US TZ
The last text I saw said that decisions are reviewed/confirmed on list.

> - Contributors can game (consciously or not) things by simply ignoring
>comments for nearly 2 years, then rally others to vote in their
>changes en bloc with talk about how the development process is broken,
>_failing to mention_ how they helped break it.
I agree this is wrong.

> - Any old crap goes into master, just if whatever random 'Acks'
>(completely immune to gaming is that!), and anyone who might have
>views just happens to have taken even a brief holiday (cause,
>holidays, who needs those).
I'm not sure how to deal with this -- if a patch is updated and
resubmitted it's discussed by those participating.  Personally I like a
model of 5+ maintainers and one maintainer ack is required for inclusion
in mainline. (Note I say mainline, which may or may not differ from master.)

>[the goal of reducing rebases is a good one, and fast cycles and
> auto-collated proposed trees would help with that, but some of what
> I've read so far is just "I want magic ponies!" in that regard]
>
> Then _please_ go set up that project. I'm _*begging*_ you. _How clear do 
> I have to be?_
>
> Really, we'll _all_ be happier.
>
> Me, I'm going to:
>
> - Keep going through the last of the backlog, and sort it out.
>
> - Get the obvious stuff in ASAP, get nits pushed back ASAP to the
>contributors so they can fix them, and derail stuff that needs wider
>discussion (and sorry that just happens in distributed, decentralised
>development sometimes - people just /happen/ to pull in different
>directions, and it needs resolving; and the outcome can mean
>significant reworking or even lost work; it happens, it happens to
>me].
>
> - Listen to people's comments on patches, including my own. I manage to
>listen to other people's opinions on my patches - I might not like the
>comments or agree with them. I don't see why this is a problem in a
>well functioning community.
>
> - Find people willing to help constructively, who are willing to work to
>consensus
>
>[that can mean going with majority opinion usually, but still
>respecting people when there's something they really don't get on with
>- e.g. like trying to push binding majority votes through, in order to
>try get around comments on a series of their patches].
>
> I'm more than willing to share Quagga with others. The people involved - 

[quagga-dev 15731] Re: Quagga project governance

2016-06-27 Thread Lou Berger

Paul,

You cover a lot of ground in your message.  Along the way you pointed to a 
message from February which says:


In terms of specific development processes, things have evolved and should 
continue to evolve.


Why is this recent discussion anything than an evolution of the process? In 
fact if this was a document rather than an email, I'm sure it would have 
been the foundation for much of the recent discussion.


I accept that there may not be as much understand and context of quagga's 
history as think there should be. But if those that have the history or are 
not  participating in the discussion , that history will be missed. While 
this isn't preferred, we can't compel people to participate. And it has 
seemed to have left you somewhat abandoned by the other "maintainers". But 
to me this this highlights the need for a   process that is sufficiently 
documented to withstand the disappearance of individuals no matter how 
short that time may be. Which of course brings us back to the maintainers 
document...


Lou


On June 27, 2016 7:15:12 AM Paul Jakma  wrote:


On Fri, 24 Jun 2016, Lou Berger wrote:


I personally don't recall a discussion on this on list, but perhaps
missed it.


Well, we started this last year with Vincent leading by example and just
getting stuck in to stuff in patchwork, reviewing it and summarising to
list:

  https://lists.quagga.net/pipermail/quagga-dev/2015-June/012751.html

I brought up workflows and using git branches to track:

  https://lists.quagga.net/pipermail/quagga-dev/2015-June/012859.html

I also mentioned having some kind of technical panel / committee
whatever:

  https://lists.quagga.net/pipermail/quagga-dev/2015-June/012804.html

[I have actually had that kind of discussion with various people, inc.
Greg and Martin over the years, on NPOs (UK has very low overhead
options here), on having technical committees with constitution docs,
etc. Greg has mentioned SPI in the past. Often the feedback has been
(inc. from Martin on the "Quagga Architecture Review Committee" proposal
I had discussed with him over a year ago) that these things seem too
formal and high-overhead for a free software project. I've actually been
*persuaded* by that, and now mostly think the important thing is to just
get on with the technical stuff].

After Vincent got the ball rolling:

  https://lists.quagga.net/pipermail/quagga-dev/2015-July/012966.html
  https://lists.quagga.net/pipermail/quagga-dev/2015-August/013032.html
  https://lists.quagga.net/pipermail/quagga-dev/2015-September/013172.html
  https://lists.quagga.net/pipermail/quagga-dev/2015-October/013352.html

Note that as of round-3, the incoming since that process was started
(and a bit more) was dealt with. It was keeping up with what was coming
in.

Donald started with rebasing Cumulus patches, take-1:

  https://lists.quagga.net/pipermail/quagga-dev/2015-November/013591.html

Take-2:

  https://lists.quagga.net/pipermail/quagga-dev/2015-November/013637.html

Take-3:

  https://lists.quagga.net/pipermail/quagga-dev/2015-November/013683.html

I pointing out I had long-standing comments on some. Also, some new ones
generate a discussion, but are re-staged.

Donald starts r5:

  https://lists.quagga.net/pipermail/quagga-dev/2015-November/013952.html

Also, more versions of take-3:

  
https://lists.quagga.net/pipermail/quagga-dev/2015-December/014154.htmlhttps://lists.quagga.net/pipermail/quagga-dev/2015-December/014154.html
  https://lists.quagga.net/pipermail/quagga-dev/2015-December/014221.html

I'm not blaming anyone per se - stuff goes missing sometimes, and things
are harder to track when there are large backlogs - but both still have
various patches with comments. The comments were either mentioned recent
to above, or there was even a discussion on the list recent to that
(e.g. lifting the cluster-ID check in the BGP decision process).

We had round 6, which mostly went on behind the scenes.

We had a discussion on tools in Jan, e.g. on Gerrit:

  https://lists.quagga.net/pipermail/quagga-dev/2016-January/014620.html

It's worth noting that Gerrit's workflow is very much based around
rebasing - for those complaining about rebasing.

A summary of the governance status and contribution proces was sent to
the list in Feb:

   https://lists.quagga.net/pipermail/quagga-dev/2016-February/014883.html

Updating HACKING was lagging, but there were other changes to HACKING
still being discussed I think. However, the whole point is that this
process should be somewhat self-documenting to contributors by way of
summary emails and git branches. E.g.:

   http://git.savannah.gnu.org/cgit/quagga.git/refs/

or 'git fetch ' and you *see* the refs for the
rounds being fetched, and you can easily examine them with 'gitk --all'.

Now, could be that still isn't clear enough, in which case, we need some
other tool. So discuss that. I lean to

[quagga-dev 15729] Re: Quagga project governance

2016-06-27 Thread Lou Berger

Paul,

I can only comment on one part of your message,

On June 27, 2016 5:55:02 AM Paul Jakma  wrote:


...
Comments on the document I'm sure I've made either on that call I was
on, to Lou in private email thereafter, or here on list.



I think folks tried to address your comments as they understood them. 
Looking at your  example,  the last time I looked this had been changed 
/addressed. While meetings continue to play an important role,  final 
decisions are to be reviewed/discussed on the list.


One of the issues with making comments privately, whether it be on the 
process or on patches , is that the reason for changes (and hold ups) isn't 
clear to everyone involved. And this translates to some of those changes 
not being agreed upon or understood.


As the maintainers document is the one that seems furthest along, i think 
it would be really helpful to send your specific edits/comments on the 
document to the list - or make them on the google doc as you prefer. I 
suspect this is the only way for us all to really understand where there 
are disagreements.


Lou







___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15723] Re: Quagga project governance

2016-06-24 Thread Lou Berger
Paul,


On 6/24/2016 11:33 AM, Paul Jakma wrote:
> On Fri, 24 Jun 2016, Lou Berger wrote:
>
>> I can only speak to what's motivated my participation in this
>> discussion. I think the root issues I'd like to see addressed are:
>> 1.  no ability to predict when the next release with *any* fixes will be
>> available
>> 2.  lack of an active (rolling) development/integration master branch
>> 3.  lack of visibility and transparency in the integration and release
>> process
> The process developed late last year, initiated by Vincent and developed 
> into roughly month-based rounds of queueing patches objectively (i.e. 
> hoovering up everything possible from patchwork that came in since last 
> round); posting summary mails of said 'proposed' queue to the list; 
> having a bounded review period; and then sorting patches into:
>
> - deferred
> - rejected
> - accepted
>
> based on the feedback, then testing 'accepted' and merging into master, 
> was supposed to have answered 2 and 3. Though 'deferred' probably not a 
> good idea, and 'rejected' probably should be 'pushedback' or somesuch.
>
> Particularly on 3, the idea being that between the summary mail at the 
> start of the review period and 'gitk --all' at the end, it'd be very 
> clear what went where.
>
> To what extent did that fail to be transparent.
so this is respect to 3.

I personally don't recall a discussion on this on list, but perhaps
missed it.  I also don't see the process documented anywhere.  Also,
it's unclear how patches Ack'ed on list would end up anywhere but
accepted.  -- Keep in mind, my perspective is as user and contributor,
not maintainer.

> On 2, it seemed to be going well. We had (almost) month based 
> integration rounds, and had (from whatever arbitrary starting point in 
> patchwork) clear everything in patchwork from at least that point 
> forward.
>
> Why was that not meeting the 'active integration head' objective?
It comes down to where I should do my development, test and
submissions.  Right now there is no changes between releases except at
the last minute (or couple of weeks).  This means:
- no testing on ack'ed patches
- no easy way for a user to see if an issue is addressed by the dev branch
- submitted patches are often out of date (and need rebasing) and
occasionally are duplicative

> Further, why did that break down earlier this year? (I know what it 
> looks like to me, and I have asked this question several times now on 
> list, and no one answers).

I have no idea.  I only got involved beyond the contributor level once
things broke down.

>> I probably wouldn't have cared enough to speak up on 3 if 1 and 2
>> weren't issues.
> Great, so why not propose fixes that make reference to the current 
> practices?
This is where I started, but couldn't find it documented anywhere. And
it seemed that others had their own ideas.

>  Rather than just go with a clean-sheet document that (at 
> best) ignores prior experience and lessons and the realities of 
> integration.
What about any of the 3 discussed documents leads you to conclude they
are clean-sheet documents?  I see folks that have been active for a
while contributing to each?

> Indeed, it's primary feature (in the early draft I read) seemed to be 
> "Let's have one branch for Paul, and another for those who don't want to 
> deal with Paul's comments" - and you can imagine what I feel about that.
I read this as allowing for Paul's approach given his long role in the
project, but doing so in a way that allows the community to change based
on community consensus.  I personally think a single definitive quagga
release that comes out 2 or 3 times a year would be preferred, but my
understanding is that you vetoed this.

> (And my comments were not even that onerous AFAIK; some are pretty damn 
> reasonable too; and I even offered the code for some).
I'm not tracking the drafts as closely as some, but I don't recall
seeing any changes or comments in the google docs from you (or for that
matter on this list).  Perhaps I missed them.  Either way, it would be
good to see your specific comments.

Thanks,
Lou

> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15720] Re: Quagga project governance

2016-06-24 Thread Lou Berger
Paul,

On 6/24/2016 10:51 AM, Paul Jakma wrote:
> On Fri, 24 Jun 2016, Lou Berger wrote:
>
>> I think this goes to the root of the recent discussions:
> Oh, and while that might go to the root of some discussion, what caused 
> those discussions?

I can only speak to what's motivated my participation in this
discussion. I think the root issues I'd like to see addressed are:
1.  no ability to predict when the next release with *any* fixes will be
available
2.  lack of an active (rolling) development/integration master branch
3.  lack of visibility and transparency in the integration and release
process

I probably wouldn't have cared enough to speak up on 3 if 1 and 2
weren't issues.

I think there a slew of other issues that stem from / will be solved by
addressing the above , e.g., duplicate patches,  painful/repeated
rebases, and late discovery of issues.

Lou

> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15719] Re: Quagga project governance

2016-06-24 Thread Lou Berger
Paul,


On 6/24/2016 10:19 AM, Paul Jakma wrote:
> On Fri, 24 Jun 2016, Lou Berger wrote:
>
>> I think this goes to the root of the recent discussions:
>> - Is Quagga a community project, or a project reliant and owned by a
>> single person?
> I want it to be a collective project. I like working to consensus, I 
> like discussing the technicalities. I like getting stuff merged. I like 
> bringing in people. I invite people to examine the record: when did the 
> number of people working on maintaining expand; when did it shrink? When 
> did Quagga have lots of commits and frequent development releases?
>
> People are free to disagree with my preference for collectiveness and 
> consensus. Those are the parameters I've chosen. Others are free to 
> setup another community with different parameters if they feel strongly 
> about it.
>
> I'm open to persuasion on everything. 
My hope is that community agreement, with input from all --- including
you, would be enough to persuade all...

> However I tend react to badly to 
> (perceived) bullying and power games.
>
>> My understanding was that the Zebra to Quagga branch occurred largely 
>> because Zebra was really a single person controlled/owned project and 
>> there was a desire (amount *all* working Quagga at it's start) to have 
>> a community controlled version.
> I was maintaining zebra-pj, patches to GNU Zebra, from others and 
> myself. There was also ZebOS at play. Kunihiro I suspect thought I was 
> too quick to integrate stuff with insufficient attention to stability 
> (as did another maintainer later). Also, I suspect - but I do not know - 
> that perhaps he required some kind of contributor agreement in order to 
> accept contributions to GNU Zebra, and if so that might have been a 
> factor. Hard to know.
>
> Kunihiro made other people maintainers but not me, so I *thanked* him 
> and forked. I didn't hector him. I respect him. (In retrospect, I'm 
> actually sorry about the name I chose - I realise now it might have been 
> a little disrespectful; I just enjoyed the pun at the time, and didn't 
> think of that aspect).
>
> He and others gave their code under the GPL, I'm immensely grateful for 
> it. I and others since then have added our bits.
For which I *am* immensely grateful!

>> One really important implication of this, is that the project should 
>> continue to thrive even if/when a key contributor/maintainer 
>> disappears or is overloaded with their "day job" for a time.
> Yes.
>
> So chart the time line of when people were made maintainers or given 
> integration access, against which maintainers were active at that time. 
> Any patterns?
>
> The number of integrators will expand again. Governance too (though, 
> that's likely to take longer).
>
>> I've only been using / developing against Quagga since '09 and publicly
>> pushing code out for the last couple of years, so may have it wrong, but
>> have always viewed Quagga as a community driven / controlled project.
>>
>> Do you think I have this wrong?
> Now, _why_ would you have that view?

Comments like the above that imply (to me) that you need to be
convinced, vs that the community needs to reach agreement.

Lou

> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15714] Quagga project governance (was: Re: Re: Quagga Monthly Meeting Notes)

2016-06-24 Thread Lou Berger
Hi Paul,

On 6/23/2016 12:41 PM, Paul Jakma wrote:
> On Thu, 23 Jun 2016, Paul Jakma wrote:
>
>> In general, stuff should just go through that process ASAP.
> And that larger stuff hasn't is due to a back log.
>
> To the extent that's my fault for not having much time for Quagga for a 
> good number of years, I apologise. But, it was being dealt with (and we 
> *HAD* dealt with incoming) up till late last year, and it will be dealt 
> with pretty much completely, quite soon.
I think this goes to the root of the recent discussions:
- Is Quagga a community project, or a project reliant and owned by a
single person?

My understanding was that the Zebra to Quagga branch occurred largely
because Zebra was really a single person controlled/owned project and
there was a desire (amount *all* working Quagga at it's start) to have a
community controlled version.   One really important implication of
this, is that the project should continue to thrive even if/when a key
contributor/maintainer disappears or is overloaded with their "day job"
for a time.

I've only been using / developing against Quagga since '09 and publicly
pushing code out for the last couple of years, so may have it wrong, but
have always viewed Quagga as a community driven / controlled project.

Do you think I have this wrong?

Lou

> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15715] Re: Multiple Test failures in Round 8 - Anyone working on fixes?

2016-06-24 Thread Lou Berger
BGP also fails to start...

  Multiple command installs to node 22 of command:
  table-map WORD

Lou


On 6/24/2016 4:02 AM, Martin Winter wrote:
> I haven’t seen any fixes yet, but the Round 8 breaks on several points 
> on my CI system:
>
> As a side note, I’m a little bit disappointed that all were all marked 
> as failed by my CI
> system, not tested (series of patches are sometimes missed as finding 
> complete series isn’t perfect)
> or never submitted to patchwork or the list
>
> We could have all avoided this…
>
>
>
> 1) DejaGNU testcli:
>
>> […]
>> Running ./libzebra.tests/testcli.exp ...
>> FAIL: testcli
>> […]
> —> The offending commit for this is 0dbe0d2 (“lib: Consolidate 
> VIEW_NODE to be ENABLE_NODE as well”)
> This is Patchwork #1856
> Originally failed CI test: 
> https://ci1.netdef.org/browse/QUAGGA-QPWORK-251
>
> 2) DejaGNU testbgpmpattr IPv6-default: IPV6 MP Reach, global nexthop, 2 
> NLRIs + default -- testbgpmpattr  aborted!
>
>> […]
>> Running ./bgpd.tests/testbgpmpath.exp ...
>> Running ./bgpd.tests/testbgpmpattr.exp ...
>> failed: testbgpmpattr IPv6-default: IPV6 MP Reach, global nexthop, 2 
>> NLRIs + default -- testbgpmpattr  aborted!
>> […]
> —> The offending commit for this is 82655af (“bgpd, zebra: Use next 
> hop tracking for connected routes too”)
> This is Patchwork #1640
> Was never tested by my CI system (it is part of a series of 89 patches 
> which is a challenge for the automated
> patchwork testing setup on my CI system)
>
> 3) missing htonf on OpenBSD / NetBSD 6/7 / FreeBSD 8/9/10 / OmniOS:
>
>> […]
>> make  all-am
>>   CC   network.lo
>> network.c: In function 'htonf':
>> network.c:109:2: error: #error "Please supply htonf implementation for 
>> this platform"
>>  #error "Please supply htonf implementation for this platform"
>>   ^
>> network.c:111:1: warning: control reaches end of non-void function 
>> [-Wreturn-type]
>>  }
>>  ^
>> *** Error code 1
>> […]
> The offending commit for this is f8e536e (“lib: consolidate 
> ntohf/htonf from ospfd/isisd TE to lib/network”)
> This is was never seen in Patchwork. No idea where this patch came 
> from…
>
>
> 4) bootstrap.sh fails on Ubuntu 16.04
>
>> ./bootstrap.sh
>> libtoolize: putting auxiliary files in '.'.
>> libtoolize: copying file './ltmain.sh'
>> libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
>> libtoolize: copying file 'm4/libtool.m4'
>> libtoolize: copying file 'm4/ltoptions.m4'
>> libtoolize: copying file 'm4/ltsugar.m4'
>> libtoolize: copying file 'm4/ltversion.m4'
>> libtoolize: copying file 'm4/lt~obsolete.m4'
>> libtoolize: 'AC_PROG_RANLIB' is rendered obsolete by 'LT_INIT'
>> configure.ac:97: error: possibly undefined macro: AC_MSG_RESULT
>>   If this token and others are legitimate, please use 
>> m4_pattern_allow.
>>   See the Autoconf documentation.
>> autoreconf: /usr/bin/autoconf failed with exit status: 1
> —> The offending commit for this is 09d4631 (“qpb: Add support for 
> protobuf”)
> (Small note: Running “bootstrap.sh” a 2nd time will work.)
> This is Patchwork 1884 which somehow was missed in my CI system as well. 
> (My CI
> system never detected this as a complete series of patches, so no run 
> was triggered)
>
>
>
> Would appreciate if someone can spend a few cycles on fixing this BEFORE 
> pushing more
> commits into this branch as these are multiple teststoppers.
>
> The list is potentially not complete - as the tests fail at various 
> stages on all platforms
> based on these problems. There could be more issues later on…
>
> - Martin Winter
>
> ___
> Quagga-dev mailing list
> Quagga-dev@lists.quagga.net
> https://lists.quagga.net/mailman/listinfo/quagga-dev



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

[quagga-dev 15713] Re: Quagga Monthly Meeting Notes

2016-06-24 Thread Lou Berger


On 6/23/2016 1:46 AM, Jafar Al-Gharaibeh wrote:
> On 6/22/2016 6:04 PM, Lou Berger wrote:
>> why not just use personal github for this?  that said,there might be
>> value in having an easy way to see the features in development...
> I do use github for this, as many of us probably do. At some point we 
> want this to go into the Quagga. Even if everyone agrees that some 
> feature/patch should go in,  having it in  CE several months or even 
> more before moving it to the "standard/YE" release allows a period of 
> feedback and bug fixes related to the feature by users who want to try 
> or need the new feature without impacting the users who prefer less 
> "distributive" or slower changes.
Having a faster path to an integrated development mainline is certainly
one of my "hot button" issues that I think is critical to be solved. 

Why comment was in the context of Paul's statement:

> Oh, there might well be value in having staging areas for experimental 
> features.
I didn't read this as an CE or anything other than separate feature
development branch...

Lou

> --Jafar
>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15702] Re: Quagga Monthly Meeting Notes

2016-06-22 Thread Lou Berger


On 6/22/2016 6:17 PM, Paul Jakma wrote:
> On Wed, 22 Jun 2016, Jafar Al-Gharaibeh wrote:
>
>> For example, assume I want to push the new feature that I have been working 
>> on: MTR-OSPF (RFC4915). Having that in the CE (thing ;) ) for a few cycles 
>> might help us understand its impact on users or whether it is worthy to be 
>> added to the main release or not. I really think there is a value there.
> Oh, there might well be value in having staging areas for experimental 
> features.

why not just use personal github for this?  that said,there might be
value in having an easy way to see the features in development...

Lou

> Though, let me warn people in advance, if some patch set is somehow not 
> ready to go in to master but needs proving or something, regular 
> rebasing may be a fact of life. I've had to carry stuff for ages before 
> I could prove it (and accused of pushing stuff in too fast by other 
> maintainers for it!). I've abandoned plenty of stuff too, including 
> because I just couldn't keep up with other changes.
>
> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15698] Re: Quagga Monthly Meeting Notes

2016-06-22 Thread Lou Berger
Thanks Donald.

Your timing is good.  I just reviewed and commented on the maintainer doc.

I suggested:

- explicitly allowing an individual to play multiple roles in the
project (IMO we're not big enough to exclude this)

- adding the role of 'git master' which uses the text from Vincent's
Maintainer section. 

- asked if acked-based patch acceptance is required vs time based

Lou

On 6/22/2016 12:48 PM, Donald Sharp wrote:
> Lou -
>
> You are correct, I jumped the gun a little bit.  We need to provide
> time for people to vote on the document..  Please take the time to
> read the document and let us know how you would like to proceed.
>
> Additionally I'll move the CE part back to the Quagga Release Process 
> docuemnt.
>
> thanks!
>
> donald
>
> On Wed, Jun 22, 2016 at 6:28 AM, Lou Berger  wrote:
>> Paul,
>>
>> While the conclusion to work on ce may (or may not, I wasn't on the call for
>> this) be premature, why can't a branch just be added under the existing repo
>> if/when that's the consensus among the community?
>>
>> Lou
>>
>>
>>
>> On June 22, 2016 5:53:34 AM Paul Jakma  wrote:
>>
>>> On Tue, 21 Jun 2016, Donald Sharp wrote:
>>>
>>>> Discussion on where to do the work next.  quagga-ce on github or on a
>>>> branch in Savannah.  Decision was to start immediately working on a CE
>>>> branch on github.
>>>
>>> You need to change the name though.
>>>
>>> regards,
>>> --
>>> Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
>>> Fortune:
>>> Getting the job done is no excuse for not following the rules.
>>>
>>> Corollary:
>>> Following the rules will not get the job done.
>>>
>>> ___
>>> Quagga-dev mailing list
>>> Quagga-dev@lists.quagga.net
>>> https://lists.quagga.net/mailman/listinfo/quagga-dev
>>>
>>



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15688] Re: Quagga Monthly Meeting Notes

2016-06-22 Thread Lou Berger
Paul,

Independent of branches/release discussion, my view is that either
version of the roles documents - either Vincent's or the one posted for
yesterday's meeting - would really help to _just get it done_.  (of
course, I am not maintainer nor do I expect to be one in the future.) 
It would be good to get your input into these discussions, as based on
reading the list it seems there is general agreement that the status quo
needs to change.

Thanks,

Lou

On 6/22/2016 6:51 AM, Paul Jakma wrote:
> On Wed, 22 Jun 2016, Paul Jakma wrote:
>
>> If CE is meant to be some way to get around the fact that some patches 
>> in the backlog have review comments outstanding; and the contributor 
>> concerned thinks it easier to engineer a crisis than just engage with 
>> review comments and address them via revisions and/or persuasion, 
>> then, sorry, no.
> A much better way forward is to just roll up the sleeves, and get the 
> nits addressed, and do the (trial) rebases to see what depends on what 
> and what can easily be triaged ahead and gotten in.
>
> This isn't rocket science. Integration work (review, nits, reconciling, 
> etc.) can be very tedious - esp when lots of it has built up in 
> different directions.
>
> However, the best answer to such a problem is to _just get it done_.
>
> regards,



___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15685] Re: Quagga Monthly Meeting Notes

2016-06-22 Thread Lou Berger

Paul,

While the conclusion to work on ce may (or may not, I wasn't on the call 
for this) be premature, why can't a branch just be added under the existing 
repo if/when that's the consensus among the community?


Lou


On June 22, 2016 5:53:34 AM Paul Jakma  wrote:


On Tue, 21 Jun 2016, Donald Sharp wrote:


Discussion on where to do the work next.  quagga-ce on github or on a
branch in Savannah.  Decision was to start immediately working on a CE
branch on github.


You need to change the name though.

regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
Getting the job done is no excuse for not following the rules.

Corollary:
Following the rules will not get the job done.

___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev





___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


[quagga-dev 15684] Re: Quagga Monthly Meeting Notes

2016-06-22 Thread Lou Berger

Hi Donald,

I'm sorry I couldn't stay for the rest of the meeting. I really think the 
roles discussion is separable from the release cycle discussion and it 
would be good to close the roles discussion first.


Lou


On June 21, 2016 11:01:45 AM Donald Sharp  wrote:


Discussion of the Quagga Maintainers Document:

https://docs.google.com/document/d/19DZcT0cJUSYxVIFenHvGFhLLUmLTRFHuMNZcI7aUNGA/edit?usp=sharing

The document is updated to reflect the discussion/decisions in this
meeting.  The highlights of the discussion:

  1) Maintainer per protocol.  This is maintained in a MAINTAINER document
  2) Different branches per protocol.  This was deemed to high cost.
Limit to one development branch
  3) Counter proposal from Vincent to have stricter roles and git only
committers.  Community is not large enough yet to move to this
methodology.
  4) Added a section on Sabbatical/extended leave
  5) 6 months inactivity to remove
  6) Violation of trust/Role - Resolved through current maintainers.

This document was approved for moving forward with

Discussion on where to do the work next.  quagga-ce on github or on a
branch in Savannah.  Decision was to start immediately working
on a CE branch on github.

donald

___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev





___
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev


  1   2   3   4   >