If we are going to argue, then let's talk about functionalities of various implementations and then take it to respective developers of your favorite implementation so that all our tools are better. We are using _both_, and have some comparation:
(1) IOS have more features in comparation with gated - no doubt, because IOS was developed in the longer time. Through gated.conf is well-defined language, IOS's config is a great heap of very strange commands and nodoby (almost) can config IOS coprrectly withouth great practice.
I am a huge IOS bigot (on a diet). But I would probably allow that IOS and gated might be even on BGP features. Now, the set of features and how they're distributed throughout the protocol is different. Gated has some underlying added flexibility, while Cisco has some added knobs on most things.
(2) There is some tasks we can't solve in IOS at all, or can solve in very hacker's vays. That's because IOS and gated have quite different schemes of redistridutions (in gated, I can control PROTO->PROTO redistribution on the per-neighbour basis; in IOS I can control redistribution into the BGP protocol totally);
You can control redistribution by tagging things or by looking at AS-Paths w/ IOS.
(3) There is very interesting idea in gated - it recalculates 'localpref' into the 'preference'; it allows to provide some back-up schemas we can't do in IOS at all.
Of cource gated have not (yet?) some IOS's functionality - bgp reflection, bgp community (IMPORTANT!), have quite other (in comparation with IOS) 'localpref' control. But when we are generating our gated's and IOS's configs from the data base - this task is much easy for _gated_ than for _IOS_.
Does it have AS-Path padding? I know some (hi Peter) think it's evil, but many use it...
Aleksei Roudnev, Network Operations Center, Relcom, Moscow
Avi