Revision history for Perl extension Net::BGP.

0.16    2015-01-03
        Added by Joel Maslak <jmaslak@antelope.net>:
        - Feature: 32 bit ASN support (both as an old and a new speaker)
        - Bugfix: Lower four bits of path attribute flags were not being
          ignored as they should have been (see RFC4271 4.3 which says,
          "The lower-order four bits of the Attribute Flags octet are
          unused. They MUST be zero when sent and MUST be ignored when
          received."
        - Bugfix: Options to Peer should only match if there are no
          leading or trailing characters.
        - Bugfix: ASPath->length() counted elements in AS_SETs, when
          RFC says an AS_SET = 1 hop.  Also ensured AS_CONFED_* are counted
          as 0 hops.
        - Bugfix: Optional Transitive attributes can be expected to have
          the partial flag bit set when passing through a router that does
          not know what the attributes mean.  Added logic to handle
          receiving these.
        - Spelling: In Transport, _peer_announced_id is spelled right. Old
          spelling is also retained for compatability.
        - Bugfix: Documentation indicates Update->new() supports ASPaths in
          array reference form, but code didn't.  Added support to code for
          new ASPaths to be specified by array references (they create an
          AS_SEGMENT now, as expected from docs).
        - Bugfix: Support receipt of multiple capabilities in a single open
          message (BIRD requires this).

0.15    2014-12-18
        - Add configuration for whether or not to send capability
          announcements
            Added by Joel Maslak <jmaslak@antelope.net>
        - Bugfix - send route refresh optional parameter properly
            Added by Joel Maslak <jmaslak@antelope.net>
        - Send Cisco-style route refresh capability (capability code 128)
            Added by Joel Maslak <jmaslak@antelope.net>
        - Added ability to send MBGP information (only Unicast IPv4 now)
          to allow interoperability with devices that won't support route
          refresh without it.
            Added by Joel Maslak <jmaslak@antelope.net>
        - Renamed Refresh to AnnounceRefresh to more accurately reflect
          what it does.  Kept "Refresh" as an alias.
            Added by Joel Maslak <jmaslak@antelope.net>
        - Add patch by Stuart Pearlman to fix bug that prevents
          restarting a peer due to messages remaining in the front of
          the message queue.  See
          https://rt.cpan.org/Public/Ticket/Attachment/WithHeaders/570429
        - Add support for callback upon transition to established state
            Added by Joel Maslak <jmaslak@antelope.net>
        - Mikrotik routers will send non-multihop SYN/SYNACK with different
          TTLs than the actual OPEN message.  So it's possible to have, with
          the right misconfiguration (multihop on Perl side, non-multihop on
          Mikrotik side, more than one hop distance away from each other) to
          a case where you try to _clone() something that is already _clone-ed.
          This handles that case properly.
            Added by Joel Maslak <jmaslak@antelope.net>
        - Allow paths with > 255 ASes.  Note that there are still some limits
          that will be hit, but now this should process AS_SEGMENTs longer
          than 255 properly (without truncating/erroring on the attribute as
          previous versions did).  This will split long paths into multiple
          AS_SEGMENTs.
            Added by Joel Maslak <jmaslak@antelope.net>

0.14	2010-09-18
	- Fix validation of path attribute flags containing extended
          length attribute.
	  Fixed by Simon van der Linden <simon.vanderlinden@uclouvain.be>

0.13	2009-07-14
	- Correctly handle update packets with only withdrawn routes.
	  (RT #46496). Thanks to:
		Skewell <olivier.montanuy@m4x.org>
		Guillaume Lambert <guillaume.lambert-geek@laposte.net>
		Elisa Jasinska <elisa.jasinska@ams-ix.net>

0.12	2009-01-22
	- fixed bogus signature in version 0.11

0.11	2009-01-22
	- fix for AGGREGATOR_ID (Christian Zeng <christian@zengl.net>, RT #42226)

0.10
	- permit sending attributes with length>255 [RT #36945],
	  based on a patch submitted by Greg Skinner.

	- "use bytes" so length() works correctly in multi-byte locale

0.09  Thu Nov  8 17:31:40 UTC 2007

	- Added "listenaddr" feature from Guillaume Lambert.

0.08  2004-09-12
	- Added a refresh callback

0.07  Tue Oct 28 09:58:45 2003

	- Fixed signature test to skip all if Test::Signature is
	  not installed.

0.06  Thu Oct 28 00:42:45 2003

	- Fixed to buges reported by Robert (rt#4221):

	- Syswrite returns undef handled incorrectly

	- Receieving a partial BGP header failed

	- Added test for pod and signature

0.05  Fri Jul  4 00:36:26 2003

	- Removed the RIB.pm object - Forgot in last version!

	- Updated ASPath documentation (and some other documentation)

	- Try to avoid dying on error - only cease the transport connection

	- Net::BGP::Peer::is_established() added

	- TCP connections none-blocking not only on connect

0.04  Sun Jun  1 13:25:09 2003

	- Martin Lorensen <lorensen@cpan.org> have pushed this release
	  on behalf of the Stephen Scheck.

	- Added code to configure and later remove a dummy $SIG{PIPE}
	  handler if note is set to avoid a peer reset causes the server
	  to stop.

	- Split Update into Update and NLRI with is-a relation as
	  preperation for a RIB/Router module.

	- Split Peer into Peer and Transport with has-a relation
	  to resolve the old issue of cloned peer objects.

	- Fixed Process to handle peers with same IP local and/or remote.

	- Fixed a rare raise condision if a peer connected while outside
	  the Select statement

	- Added support for optional parameters and optional capabilities.

	- Added support for REFRESH messages.

	- Added refresh_callback which are called on new sessions and
	  when a REFRESH message is recieved.

	- Added reset_callback which are called on connection reset of
	  any kind.

	- Added "renew" constructor to Peer objects to reclaim an object
	  reference from the string representation of the same - Using
	  weak references (Scalar::Util).

	- Fixed SO_REUSEADDR - should be done BEFORE bind()

	- Added a simple asstring method for the Peer object. NOTE: Format
	  may change in the future!

	- Some methods in Peer (and Transport) maid public.

	- Added an ASPath object to handle complex ASPaths, including
	  confederations.

	- The new NLRI object is overloaded and has many new methods
	  compared to the potion of code moved from Update

	- A fairly large test suite added.

	- The RIB.pm placeholder has been removed. This functionality
	  will be implemented in a different module soon.

0.03  Sun Mar 16 13:31:55 2003
	- Added clone() method to Net::BGP::Update

	- Removed warning when encoding empty AS_PATH which is
		ok for IBGP peering sessions.

	- Removed warnings for missing mandatory path attributes
		for the case when no NLRI is present in an
		UPDATE message.

	- Fixed bug in _encode_prefix() in Net::BGP::Update
		which could cause 0.0.0.0/0 to be encoded into
		the prefix list when prefixes shorter than 32
		bits (i.e. non-host routes) are specified with
		all 4 octets (e.g. when 192.168/16 is given as
		192.168.0.0/16).

	Thanks to Martin Lorensen for identifying these problems.

0.02  Sun Jan 26 16:32:15 2003
	- Fixed symbolic method call syntax in _handle_event()
		which is not recognized prior to perl 5.6.0.

0.01  Fri Sep  6 16:09:32 2002
	- original version; created by h2xs 1.21 with options
		-A -X -n Net::BGP

