Provided by: aggregate_1.6-7build1_amd64 bug


       aggregate - optimise a list of route prefixes to help make nice short filters


       aggregate [-m max-length] [-o max-opt-length] [-p default-length] [-q] [-t] [-v]


       Takes  a  list of prefixes in conventional format on stdin, and performs two optimisations
       to attempt to reduce the length of the prefix list.

       The first optimisation is to remove any supplied prefixes which  are  superfluous  because
       they  are already included in another supplied prefix. For example, would be
       removed if was also supplied.

       The second optimisation identifies adjacent prefixes that can be combined under a  single,
       shorter-length  prefix.  For example, and can be combined into
       the single prefix


       -m max-length
              Sets the maximum prefix length for entries read from  stdin  max_length  bits.  The
              default is 32. Prefixes with longer lengths will be discarded prior to processing.

       -o max-opt-length
              Sets the maximum prefix length for optimisation to max-opt-length bits. The default
              is 32. Prefixes with longer lengths will not be subject to optimisation.

       -p default-length
              Sets the default prefix length. There is no default; without this option  a  prefix
              without  a mask length is treated as invalid.  Use -p 32 -m 32 -o 32 to aggregate a
              list of host routes specified as bare addresses, for example.

       -q     Sets quiet mode -- instructs aggregate never to generate warning messages or  other
              output on stderr.

       -t     Silently  truncate prefixes that seem to have an inconsistent prefix: e.g. an input
              prefix would be truncated to Without this option  an
              input  prefix  would  not  be  accepted,  and  a warning about the
              inconsistent mask would be generated.

       -v     Sets verbose mode. This changes the output format to display the source line number
              that  the  prefix  was  obtained  from, together with a preceding "-" to indicate a
              route that can be suppressed, or a "+" to indicate a shorter-prefix aggregate  that
              was  added  by  aggregate  as  an  adjacency optimisation. Note that verbose output
              continues even if -q is selected.


       Aggregate exits 0 on success, and >0 if an error occurs.


       The following list of prefixes:

       is optimised as followed by aggregate (output shown using the -v flag):

         aggregate: maximum prefix length permitted will be 24
         [    0] +
         [    1] -
         [    2] -
         [    3]
         [    4]
         [    5]
         [    0] +
         [    6] -
         [    7] -
         [    8] -
         [    9]
         [   10]
         [    0] +
         [   11] -
         [   12] -

       Note that and  were  combined  under  the  single  prefix,   and  was  suppressed  because  it  was  included  in The number in square brackets at the beginning of  each  line  indicates
       the original line number, or zero for new prefixes that were introduced by aggregate.

       The output without the -v flag is as follows:




       Aggregate was written by Joe Abley <>, and has been reasonably well tested.
       It is suitable for reducing customer prefix filters for production use  without  extensive
       hand-proving of results.

       Autoconf  bits  were  donated by Michael Shields <>.  The -t option
       was suggested by Robin Johnson <>, and  the  treatment  of
       leading  zeros  on  octet  parsing  was  changed  following  comments  from  Arnold Nipper

       An early version of aggregate would attempt to combine  adjacent  prefixes  regardless  of
       whether the first prefix lay on an appropriate bit boundary or not (pointed out with great
       restraint by Robert Noland <>).


       Common unix parsing of IPv4 addresses understands the representation of individual  octets
       in octal or hexadecimal, following a "0" or "0x" prefix, respectively. That convention has
       been deliberately disabled here, since resources  such  as  the  IRR  do  not  follow  the
       convention, and confusion can result.

       For  extremely  sensitive  applications,  judicious  use  of the -v option together with a
       pencil and paper is probably advisable.