Tried the CLI(birdc) and I am a bit confused as to whait it can do. I only see this when I press ?: bird> ? configure [soft] ["<file>"] Reload configuration debug ... Control protocol debugging via BIRD logs disable <protocol> | "<pattern>" | all Disable protocol down Shut the daemon down dump ... Dump debugging information echo [all | off | <mask>] [<buffer-size>] Configure echoing of log messages enable <protocol> | "<pattern>" | all Enable protocol exit Exit the client help Description of the help system mrtdump ... Control protocol debugging via MRTdump files quit Quit the client reload <protocol> | "<pattern>" | all Reload protocol restart <protocol> | "<pattern>" | all Restart protocol restrict Restrict current CLI session to safe commands show ... Show status information Not a lot, seems that the CLI only can do very limited configuration or am I missing something here. Jocke
On 26.4.2010 14:26, Joakim Tjernlund wrote:
Tried the CLI(birdc) and I am a bit confused as to whait it can do. I only see this when I press ?: bird> ? configure [soft] ["<file>"] Reload configuration debug ... Control protocol debugging via BIRD logs disable <protocol> | "<pattern>" | all Disable protocol down Shut the daemon down dump ... Dump debugging information echo [all | off | <mask>] [<buffer-size>] Configure echoing of log messages enable <protocol> | "<pattern>" | all Enable protocol exit Exit the client help Description of the help system mrtdump ... Control protocol debugging via MRTdump files quit Quit the client reload <protocol> | "<pattern>" | all Reload protocol restart <protocol> | "<pattern>" | all Restart protocol restrict Restrict current CLI session to safe commands show ... Show status information
Not a lot, seems that the CLI only can do very limited configuration or am I missing something here.
CLI is not used for configuration. All configuration is in confi file. Ondrej
Jocke
Ondrej Filip <feela@network.cz> wrote on 2010/04/26 14:59:06:
On 26.4.2010 14:26, Joakim Tjernlund wrote:
Tried the CLI(birdc) and I am a bit confused as to whait it can do. I only see this when I press ?: bird> ? configure [soft] ["<file>"] Reload configuration debug ... Control protocol debugging
via BIRD logs
disable <protocol> | "<pattern>" | all Disable protocol down Shut the daemon down dump ... Dump debugging information echo [all | off | <mask>] [<buffer-size>] Configure echoing of log messages enable <protocol> | "<pattern>" | all Enable protocol exit Exit the client help Description of the help system mrtdump ... Control protocol debugging via MRTdump files quit Quit the client reload <protocol> | "<pattern>" | all Reload protocol restart <protocol> | "<pattern>" | all Restart protocol restrict Restrict current CLI session to safe commands show ... Show status information
Not a lot, seems that the CLI only can do very limited configuration or am I missing something here.
CLI is not used for configuration. All configuration is in confi file.
OK, but it would be handy if I could config log files from there. Jocke
On 26.04.2010 17:06 Joakim Tjernlund wrote
OK, but it would be handy if I could config log files from there.
BIRD is like a racing car whereas you are talking about a Mercedes-Benz S-type ... you see the difference? Arnold -- Arnold Nipper / nIPper consulting, Sandhausen, Germany email: arnold@nipper.de phone: +49 6224 9259 299 mobile: +49 172 2650958 fax: +49 6224 9259 333
Arnold Nipper <arnold@nipper.de> wrote on 2010/04/26 17:40:51:
On 26.04.2010 17:06 Joakim Tjernlund wrote
OK, but it would be handy if I could config log files from there.
BIRD is like a racing car whereas you are talking about a Mercedes-Benz S-type ... you see the difference?
:) Seriously, is there any fundamental reason one cannot configure all aspects from a CLI(I am assuming that no one has cared enough to impl. it in BIRD CLI yet)? I ask because I would like to configure some(if not everything) from our app with its own CLI/GUI. Jocke
On 4/26/10 5:50 PM, Joakim Tjernlund wrote:
Arnold Nipper<arnold@nipper.de> wrote on 2010/04/26 17:40:51:
On 26.04.2010 17:06 Joakim Tjernlund wrote
OK, but it would be handy if I could config log files from there.
BIRD is like a racing car whereas you are talking about a Mercedes-Benz S-type ... you see the difference?
:)
Seriously, is there any fundamental reason one cannot configure all aspects from a CLI(I am assuming that no one has cared enough to impl. it in BIRD CLI yet)?
what for? some of us generate our bird configurations automatically, from various data sources, if do that with a cli you're basically screwed. furtheremore a cli has no version control and is by far not as efficient as a decent editor.
I ask because I would like to configure some(if not everything) from our app with its own CLI/GUI.
see vim as your CLI :)
Jocke
wogri
Wolfgang Hennerbichler píše v Po 26. 04. 2010 v 17:55 +0200:
On 4/26/10 5:50 PM, Joakim Tjernlund wrote:
Arnold Nipper<arnold@nipper.de> wrote on 2010/04/26 17:40:51:
On 26.04.2010 17:06 Joakim Tjernlund wrote
OK, but it would be handy if I could config log files from there.
BIRD is like a racing car whereas you are talking about a Mercedes-Benz S-type ... you see the difference?
:)
Seriously, is there any fundamental reason one cannot configure all aspects from a CLI(I am assuming that no one has cared enough to impl. it in BIRD CLI yet)?
what for? some of us generate our bird configurations automatically, from various data sources, if do that with a cli you're basically screwed. furtheremore a cli has no version control and is by far not as efficient as a decent editor.
But it might be actually quite useful to add support for NETCONF protocol, e.g., by using the "Netopeer" NETCONF implementation: http://code.google.com/p/netopeer/ Cheers, Lada
I ask because I would like to configure some(if not everything) from our app with its own CLI/GUI.
see vim as your CLI :)
Jocke
wogri
-- Ladislav Lhotka, CESNET PGP Key ID: E74E8C0C
On 26.4.2010 17:50, Joakim Tjernlund wrote:
Arnold Nipper <arnold@nipper.de> wrote on 2010/04/26 17:40:51:
On 26.04.2010 17:06 Joakim Tjernlund wrote
OK, but it would be handy if I could config log files from there.
BIRD is like a racing car whereas you are talking about a Mercedes-Benz S-type ... you see the difference?
:)
Seriously, is there any fundamental reason one cannot configure all aspects from a CLI(I am assuming that no one has cared enough to impl. it in BIRD CLI yet)?
I am afraid it would be very complicated to write things like: --- function bgp_out(int peeras) { if ! (source = RTS_BGP ) then return false; if (0,peeras) ~ bgp_community then return false; if (myas,peeras) ~ bgp_community then return true; if (0, myas) ~ bgp_community then return false; return true; } ---
On 26.4.2010 17:50, Joakim Tjernlund wrote:
Arnold Nipper <arnold@nipper.de> wrote on 2010/04/26 17:40:51:
On 26.04.2010 17:06 Joakim Tjernlund wrote
OK, but it would be handy if I could config log files from there.
BIRD is like a racing car whereas you are talking about a Mercedes-Benz S-type ... you see the difference?
:)
Seriously, is there any fundamental reason one cannot configure all aspects from a CLI(I am assuming that no one has cared enough to impl. it in BIRD CLI yet)?
I am afraid it would be very complicated to write things like: --- function bgp_out(int peeras) { if ! (source = RTS_BGP ) then return false; if (0,peeras) ~ bgp_community then return false; if (myas,peeras) ~ bgp_community then return true; if (0, myas) ~ bgp_community then return false; return true; } ---
From CLI. The philosophy of BIRD's configuration is quite CLI unfriendly.
I ask because I would like to configure some(if not everything) from our app with its own CLI/GUI.
People usually generate config file and than load it to BIRD. BIRD has quite smart reconfiguration so it is able to see the differences.
Not quite up to speed on how CLI and configuration manager works but it would be useful if one could open an socket and send a new config file. Even better if one could read the current configuration in some form, make changes to it and write it back. I am assuming this config would be some binary format and I have no problem if it changes from release to release. Jocke
On 26.4.2010 18:34, Joakim Tjernlund wrote:
On 26.4.2010 17:50, Joakim Tjernlund wrote:
Arnold Nipper <arnold@nipper.de> wrote on 2010/04/26 17:40:51:
On 26.04.2010 17:06 Joakim Tjernlund wrote
OK, but it would be handy if I could config log files from there.
BIRD is like a racing car whereas you are talking about a Mercedes-Benz S-type ... you see the difference?
:)
Seriously, is there any fundamental reason one cannot configure all aspects from a CLI(I am assuming that no one has cared enough to impl. it in BIRD CLI yet)?
I am afraid it would be very complicated to write things like: --- function bgp_out(int peeras) { if ! (source = RTS_BGP ) then return false; if (0,peeras) ~ bgp_community then return false; if (myas,peeras) ~ bgp_community then return true; if (0, myas) ~ bgp_community then return false; return true; } ---
From CLI. The philosophy of BIRD's configuration is quite CLI unfriendly.
I ask because I would like to configure some(if not everything) from our app with its own CLI/GUI.
People usually generate config file and than load it to BIRD. BIRD has quite smart reconfiguration so it is able to see the differences.
Not quite up to speed on how CLI and configuration manager works but it would be useful if one could open an socket and send a new config file.
That is currently not supported, but BIRD can read configuration from a given file.
Even better if one could read the current configuration in some form, make changes to it and write it back. I am assuming this config would be some binary format and I have no problem if it changes from release to release.
That would be possible, but as I said, from CLI configuration you wouldn't be able to use all BIRD features. And also binary config dump does not make sense for me. as an operator would like to see what config is currently running. Ondrej
Jocke
Ondrej Filip <feela@network.cz> wrote on 2010/04/26 20:25:19:
On 26.4.2010 18:34, Joakim Tjernlund wrote:
On 26.4.2010 17:50, Joakim Tjernlund wrote:
Arnold Nipper <arnold@nipper.de> wrote on 2010/04/26 17:40:51:
On 26.04.2010 17:06 Joakim Tjernlund wrote
OK, but it would be handy if I could config log files from there.
BIRD is like a racing car whereas you are talking about a Mercedes-Benz S-type ... you see the difference?
:)
Seriously, is there any fundamental reason one cannot configure all aspects from a CLI(I am assuming that no one has cared enough to impl. it in BIRD CLI yet)?
I am afraid it would be very complicated to write things like: --- function bgp_out(int peeras) { if ! (source = RTS_BGP ) then return false; if (0,peeras) ~ bgp_community then return false; if (myas,peeras) ~ bgp_community then return true; if (0, myas) ~ bgp_community then return false; return true; } ---
From CLI. The philosophy of BIRD's configuration is quite CLI unfriendly.
I ask because I would like to configure some(if not everything) from our app with its own CLI/GUI.
People usually generate config file and than load it to BIRD. BIRD has quite smart reconfiguration so it is able to see the differences.
Not quite up to speed on how CLI and configuration manager works but it would be useful if one could open an socket and send a new config file.
That is currently not supported, but BIRD can read configuration from a given file.
Even better if one could read the current configuration in some form, make changes to it and write it back. I am assuming this config would be some binary format and I have no problem if it changes from release to release.
That would be possible, but as I said, from CLI configuration you wouldn't be able to use all BIRD features. And also binary config dump does not make sense for me. as an operator would like to see what config is currently running.
The binary dump would be fed into our app which will sort out the data and present something to the user. One problem with writing config to a file is that the initial config file is readonly so I can't update it, can I redirect a running BIRD to another file? Jocke
On 26.4.2010 21:22, Joakim Tjernlund wrote:
That would be possible, but as I said, from CLI configuration you wouldn't be able to use all BIRD features. And also binary config dump does not make sense for me. as an operator would like to see what config is currently running.
The binary dump would be fed into our app which will sort out the data and present something to the user. One problem with writing config to a file is that the initial config file
OK.
is readonly so I can't update it, can I redirect a running BIRD to another file?
Sure, use: configure <file> in BIRD CLI. Ondrej
Jocke
Joakim Tjernlund píše v Po 26. 04. 2010 v 18:34 +0200:
Not quite up to speed on how CLI and configuration manager works but it would be useful if one could open an socket and send a new config file.
Even better if one could read the current configuration in some form, make changes to it and write it back. I am assuming this config would be some binary format and I have no problem if it changes from release to release.
NETCONF addresses both of these scenarios and also simple incremental changes to the running configuration, candidate datastore, locks, event notifications etc. If any significant changes to the configuration workflow are to be considered, this is IMO the way to go. Lada
Jocke
-- Ladislav Lhotka, CESNET PGP Key ID: E74E8C0C
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 26.04.2010 14:26, schrieb Joakim Tjernlund:
Not a lot, seems that the CLI only can do very limited configuration or am I missing something here.
The only thing I am currently missing is an integrated grep|include and a tab completion for all Protocols|Symbols as a couple of "views", that we currently have to parse via awk|younameit. f.e.: show protocols R1<tab> R192_168_0_1 R10_0_0_1 show protocols R19<tab> show protocols R192_168_0_1 or show symbols | grep R192 Don't think it's such a good idea to put a version control system directly in the bird code, like juniper does|have, since there are so many systems and admin flavours out there. As Ondrej already mentioned, being able to configure <FILE> directly from CLI should be ok: echo "configure /etc/bird/crazybirdconf" | birdc should be sufficient and can be triggered via cron, ssh or whatever. Here I would like to see something like: birdc -c "configure /etc/bird/crazybirdconf" or birdc -x command_file >output Just my .50 € Rgds, Stefan - -- Stefan Jakob e-mail: stefan.jakob@de-cix.net DE-CIX Management GmbH Phone: +49 69 1730 902-32 Lindleystr. 12, 60314 Frankfurt Mobile: +49 172 695 8467 Geschaeftsfuehrer Harald A. Summa Fax: +49 69 4056 2716 Registergericht AG Koeln, HRB 51135 http://www.de-cix.net Zentrale: Lichtstr. 43i, 50825 Koeln -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJL1sQmAAoJEJDQtqadNP/l9s4H/0DXlGbBNz9UO1Nxo2h+9khl yP5jFPpHqcG2AxFkPnL1ZxVRjk6X3nZgwR08i1I7lEBTJWhZx6C1pgCpR5WjOcNG R6hyRAiZSJhfanabWRpIHJKDQF/Y4BFPJ3AtPBeXm2EwCT6WvUt/z/8vDuA1CvRB sgNTG0nCS84CGdpOz4e3/O0m8v0N5VUj77X/b5/QKrB/3a+g8dl+76kbq3sBhFju EL9ssNUfariuHEhorvLY2NDQLgOvS/MreC359TAfKBUu/FbjZwLHwU9Hnz6HciTt 2WpVGBQOCF+b+4bMHqq0W7vkGFh4Hh9j2rc1xp4PHR6fjPkYMfRCM5IgxyDctvA= =o8zK -----END PGP SIGNATURE-----
On Tue, Apr 27, 2010 at 01:01:58PM +0200, Stefan Jakob wrote:
Am 26.04.2010 14:26, schrieb Joakim Tjernlund:
Not a lot, seems that the CLI only can do very limited configuration or am I missing something here.
The only thing I am currently missing is an integrated grep|include and a tab completion for all Protocols|Symbols as a couple of "views", that we currently have to parse via awk|younameit.
f.e.:
show protocols R1<tab> R192_168_0_1 R10_0_0_1 show protocols R19<tab> show protocols R192_168_0_1
Tab completion for symbols ... agreed, i will look at it. grep ... probably too much work, you can use system grep, if you need it (shown below).
Don't think it's such a good idea to put a version control system directly in the bird code, like juniper does|have, since there are so many systems and admin flavours out there.
Agreed
As Ondrej already mentioned, being able to configure <FILE> directly from CLI should be ok:
echo "configure /etc/bird/crazybirdconf" | birdc
Here I would like to see something like:
birdc -c "configure /etc/bird/crazybirdconf"
This is implemented. Using echo and pipe is unnecessary, you can use: birdc configure /etc/bird/crazybirdconf Therefore, if you need grep, you can use: birdc show route | grep XXX -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
On 27.04.2010 16:32 Ondrej Zajicek wrote
This is implemented. Using echo and pipe is unnecessary, you can use:
birdc configure /etc/bird/crazybirdconf
Therefore, if you need grep, you can use: birdc show route | grep XXX
This only works for versions >=1.2.2? birdc show route Usage: birdc [-s <control-socket>] [-v] rs5-l:~> birdc -v 0001 BIRD 1.2.1 ready. Arnold -- Arnold Nipper / nIPper consulting, Sandhausen, Germany email: arnold@nipper.de phone: +49 6224 9259 299 mobile: +49 172 2650958 fax: +49 6224 9259 333
On 27.4.2010 21:50, Arnold Nipper wrote:
On 27.04.2010 16:32 Ondrej Zajicek wrote
This is implemented. Using echo and pipe is unnecessary, you can use:
birdc configure /etc/bird/crazybirdconf
Therefore, if you need grep, you can use: birdc show route | grep XXX
This only works for versions >=1.2.2?
Yes, new feature in 1.2.2. Ondrej
birdc show route Usage: birdc [-s <control-socket>] [-v]
rs5-l:~> birdc -v 0001 BIRD 1.2.1 ready.
Arnold
On Tue, Apr 27, 2010 at 09:50:18PM +0200, Arnold Nipper wrote:
On 27.04.2010 16:32 Ondrej Zajicek wrote
This is implemented. Using echo and pipe is unnecessary, you can use:
birdc configure /etc/bird/crazybirdconf
Therefore, if you need grep, you can use: birdc show route | grep XXX
This only works for versions >=1.2.2?
Yes. -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 27.04.2010 16:32, schrieb Ondrej Zajicek:
On Tue, Apr 27, 2010 at 01:01:58PM +0200, Stefan Jakob wrote:
Tab completion for symbols ... agreed, i will look at it.
much appreciated!
grep ... probably too much work, you can use system grep, if you need it (shown below).
birdc -c "configure /etc/bird/crazybirdconf"
This is implemented. Using echo and pipe is unnecessary, you can use:
As stated somewhwere else starting with bird 1.2.2
birdc configure /etc/bird/crazybirdconf
Therefore, if you need grep, you can use: birdc show route | grep XXX
Updated to bird 1.2.2 today. What I currently dislike is: $ birdc show route count BIRD 1.2.2 ready. 146369 of 146369 routes for 83414 networks The output of "BIRD 1.2.2 ready." shouldn't be there, since you can run "birdc show status" It would be also nice, if the command behaviour|completion would work as beeing directly into birdc: f.e.: birdc sh rout coun should work like: birdc> show route count Hey, but I know that this is only cosmetics. Kind regards, Stefan -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJL1+ZJAAoJEJDQtqadNP/lEkcH/2dBygh1wFAabNPBvpxRPV0W XaZBMLhXTD0yNKLU13NhqqGw7k9rppJQY+ph9NZSVO91N0SCOPBUgTPQfjEHT+B0 xMQTYbYv+8MfbcfytTWms9bCd1yYqOCuUuuuqL39+w2Ncx8DsI7iSQBJvjiC5z7x UmMeh99QYUVdO3PjbHmtFg9t/lHR2xj4A7DcjOl/C1pUUqaAe6/bhbKcTP4stMNU prUqerDSylqqqHBFiTiRRbOUmviPbusmI3zabAQiUDfFkoKdvjalcBw2/VGIgG8T KwbUWUF01PWA4Z79O5yYpKEV0RQch5aI00i/GrttKCG9W5xj7Li8SGMFDN9U2q4= =2d0X -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 28.04.2010 09:39, schrieb Stefan Jakob:
It would be also nice, if the command behaviour|completion would work as beeing directly into birdc:
f.e.:
birdc sh rout coun
should work like:
birdc> show route count
Just recognized this: of course working: bird> show route count 2055 of 2055 routes for 850 networks working too: bird> sh rou count 2055 of 2055 routes for 850 networks desireable but not working: bird> sh rou cou IP address expected and: bird> show route coun<tab_till_EOL> Rgds, Stefan -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJL2BjHAAoJEJDQtqadNP/lRgIIAJU+qSBnqQr3JV3TVSN60a6i FxrcP//e6EaE/IoLBJBbPwlSfco/YAbkSKLDg/CLPz2DuEcx+m8fOMNxjFm6Y7Gq Y5WJKBfCrHhqrkjwt983w2eLUZX55d48HGtjLTjDqJdIRUJLzHSyoL0ib8fPjlUg PSSxX/pbRYfDRs5z0/beAHCnuh6Z//zYwhm8+E7Fi8TZlw0kj501sO0tJ5YC6egh A+oOhUdH6Y75WVHeN3zYOcsMFkgSh3cEeGKQH3px0WNvCuoxn5hGYmp1tL9gQYyI obVQ/uYQlsizHFvxY5/1+fx5duJglV2vkViwa+PdPX6BkY7Wm+AChUGHoRizvw0= =FB8h -----END PGP SIGNATURE-----
On 28.04.2010 13:15 Stefan Jakob wrote
bird> sh rou count 2055 of 2055 routes for 850 networks
but what really is weird: rs5-l:~> birdc sh rou count BIRD 1.2.2 ready. syntax error rs5-l:~> Arnoold -- Arnold Nipper / nIPper consulting, Sandhausen, Germany email: arnold@nipper.de phone: +49 6224 9259 299 mobile: +49 172 2650958 fax: +49 6224 9259 333
participants (7)
-
Arnold Nipper -
Joakim Tjernlund -
Ladislav Lhotka -
Ondrej Filip -
Ondrej Zajicek -
Stefan Jakob -
Wolfgang Hennerbichler