On Sat, Jan 10, 2015 at 02:21:40PM +0000, Stuart Henderson wrote:
> moved from misc@ (http://marc.info/?l=openbsd-misc&m=141898047318322&w=2)
> 
> On 2014-12-19, Tony Sarendal <t...@polarcap.org> wrote:
> > From 5.5 and up it looks like bgpd macros are broken.
> 
> I suspect this is parse.y r1.268.
> 
> > Also, the example from bgpd.conf man page fails on 5.4-5.6.
> > I haven't tested on 5.3 and lower.
> >
> > On 5.6 snapshot:
> > tonsar@obc1$ uname -mrsv
> > OpenBSD 5.6 GENERIC.MP#701 amd64
> > tonsar@obc1$ cat bgpd.conf-2
> > good="{ 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
> > bad="{ 224.0.0.0/4 prefixlen >= 4, 240.0.0.0/4 prefixlen >= 4 }"
> > ugly="{ 127.0.0.1/8, 169.254.0.0/16 }"
> > # global configuration
> > AS 65001
> > deny from any prefix { $good $bad $ugly }
> > tonsar@obc1$ bgpd -f bgpd.conf-2 -nv
> > good = "{ 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
> > bad = "{ 224.0.0.0/4 prefixlen >= 4, 240.0.0.0/4 prefixlen >= 4 }"
> > ugly = "{ 127.0.0.1/8, 169.254.0.0/16 }"
> > bgpd.conf-2:6: syntax error
> > tonsar@obc1$
> 
> It looks like nested braces no longer work.
> 
> { { 1.1.1.1/30 } { 2.2.2.2/30 } } - fails
> { 1.1.1.1/30 2.2.2.2/30 } - works
> 
> With my poor yacc skills the best I can do for now is suggest a manpage
> diff, though other parsers (e.g. pf's) do allow nesting in this situation.
> 
> Index: bgpd.conf.5
> ===================================================================
> RCS file: /cvs/src/usr.sbin/bgpd/bgpd.conf.5,v
> retrieving revision 1.132
> diff -u -p -r1.132 bgpd.conf.5
> --- bgpd.conf.5       10 Nov 2014 20:48:33 -0000      1.132
> +++ bgpd.conf.5       10 Jan 2015 14:13:58 -0000
> @@ -1210,9 +1210,9 @@ deny from any prefix { 192.168.0.0/16, 1
>  Multiple lists can also be specified, which is useful for
>  macro expansion:
>  .Bd -literal -offset indent
> -good="{ 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
> -bad="{ 224.0.0.0/4 prefixlen >= 4, 240.0.0.0/4 prefixlen >= 4 }"
> -ugly="{ 127.0.0.1/8, 169.254.0.0/16 }"
> +good="192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8"
> +bad="224.0.0.0/4 prefixlen >= 4, 240.0.0.0/4 prefixlen >= 4"
> +ugly="127.0.0.1/8, 169.254.0.0/16"
>  
>  deny from any prefix { $good $bad $ugly }
>  .Ed
> 
> 

I think we should fix the parser and not the docu.

-- 
:wq Claudio

Reply via email to