[vyatta-svn] xorp: Changes to 'icsi-cvsimport'

Tom Grennan tgrennan at suva.vyatta.com
Mon Dec 11 11:05:13 PST 2006


 RELEASE_NOTES                         |    6 
 bgp/plumbing.cc                       |   12 +
 libxorp/ipv4.hh                       |    5 
 libxorp/ipv6.hh                       |    5 
 ospf/area_router.cc                   |    8 -
 ospf/external.cc                      |    4 
 ospf/lsa.cc                           |  211 ++++++++++++++++++++--------------
 ospf/lsa.hh                           |  194 +++++++++++++++++++++++++------
 ospf/test_packet.cc                   |   92 ++++++++++++++
 ospf/test_routing.cc                  |    1 
 policy/backend/policytags.cc          |    4 
 policy/code.cc                        |   10 +
 policy/code.hh                        |   25 +++-
 policy/code_list.cc                   |    4 
 policy/code_list.hh                   |    8 -
 policy/configuration.cc               |    4 
 policy/export_code_generator.cc       |   14 +-
 policy/policy_list.cc                 |    4 
 policy/policy_list.hh                 |    7 -
 policy/policy_target.cc               |    5 
 policy/source_match_code_generator.cc |   28 ++++
 policy/source_match_code_generator.hh |    1 
 policy/test/policy1.var               |    2 
 policy/test/policy2.var               |    2 
 24 files changed, 493 insertions(+), 163 deletions(-)

New commits:
commit 41ac7d335ef134391d00122499449f8f70a4ff66
Author: atanu <atanu>
Date:   Mon Dec 11 15:56:04 2006 +0000

    Add the constant ADDR_BYTELEN, number of bytes in an address.

commit f6539200819d6a3c49e79e9f7aa699fb905b1a8d
Author: pavlin <pavlin>
Date:   Mon Dec 11 08:02:22 2006 +0000

    Add XORP_UINT_CAST() casting to c_format() arguments.
    This fixes OpenBSD compilation problem.

commit b0b4dca47d1319fa4f2af82f330ce8677888ec69
Author: pavlin <pavlin>
Date:   Fri Dec 8 20:21:01 2006 +0000

    Bug fix: when a target dies and target death event is received from
    the XRL finder, translate the XRL target name to the internal
    protocol name as known by the policy manager.

commit 7bf913e8bd1707ee8467bfdeed610011d9788372
Author: atanu <atanu>
Date:   Fri Dec 8 11:12:45 2006 +0000

    Add get and set methods for the prefix option bits. Modify the
    test_packet program to use these methods.

commit da585db3571a274088556e6a0fe17b4ee3872e69
Author: atanu <atanu>
Date:   Fri Dec 8 09:12:22 2006 +0000

    Clarify some error messages and remove some testing code.

commit 10bd04309e279d70a3186b43e91aadc57b0d82af
Author: atanu <atanu>
Date:   Fri Dec 8 08:50:41 2006 +0000

    In OSPFv3 the IPv6 prefix information has associated option
    information, create a new class IPv6Prefix to hold the prefix and
    option information together. Inter-Area-Prefix-LSAs and
    AS-external-LSAs were affected. The bounds checking when decoding IPv6
    prefix options has been hardened.
    
    The test_packet program when testing the the encoders and decoders now
    also compares the string representations of the packets.

commit 391f30ca0a25ccc119c099b6fbcb50fef85c7157
Author: pavlin <pavlin>
Date:   Fri Dec 8 01:12:32 2006 +0000

    Don't plug a policy table on the RIB output branch, because
    the routes send to the RIB shouldn't be modified by the export
    policy rules.
    
    This fixes Bugzilla entry #683.
    
    Bugzilla URL:	http://www.xorp.org/bugzilla/show_bug.cgi?id=683

commit 37707ff2bfaa36e44a53fcb7b3aff473f9269a43
Author: pavlin <pavlin>
Date:   Thu Dec 7 20:37:18 2006 +0000

    Added policy-related release notes.

commit efc1576f052d91704dea6a5a1246fe6d3d0ee0a6
Author: pavlin <pavlin>
Date:   Thu Dec 7 20:00:08 2006 +0000

    Allow export policy that matches protocol's its own routes.
    
    E.g., now we can have a policy like:
    
    policy {
        policy-statement P1 {
            term 1 {
                from {
                    protocol: "bgp"
                    neighbor: 10.10.10.10
                }
                then {
                    med: 100
                }
            }
        }
    }
    
    This policy can be exported by BGP itself:
    
    protocols {
        bgp {
            export: "P1"
            ...
        }
    }
    
    The result of that policy is that only the BGP routes received from
    neighbor 10.10.10.10 will have their MED set to 10.
    
    Previously, a policy like the one above resulted in BGP routes being
    reintroduced back from RIB into BGP which created a loop.
    Eventually, this modification will affect/fix a number of
    BGP policy related Bugzilla entries.
    
    Below are few details about the fix itself:
    
    * The protocol tags inside class Code are kept in two sets:
      _all_tags (all tags related to a protocol), and _redist_tags (the
      tags that should be send to the RIB so only the routes with that
      tags are redistributed into the corresponding protocol).
    
    * Policy tags that are generated by the above example policy code
      are not included in the _redist_tags for BGP. This modification
      fixes the routes loop issue.
    
    * Previously, inside SourceMatchCodeGenerator::visit_term() the
      new generated tag (for a policy term) was unconditionally added
      to a route. As a result, for example the following policy (exported
      by BGP) would tag and modify all routes, including the routes exported
      by other protocol into BGP:
    
      policy {
          policy-statement P1 {
              term 1 {
                  from {
                      protocol: "bgp"
                  }
                  then {
                      med: 100
                  }
              }
          }
      }
    
      To solve this issue, now inside SourceMatchCodeGenerator::visit_term()
      we generate additional policy code that checks the existing tags
      of a route before attaching another tag. Only if the existing tags
      are a subset of the tags that belong to protocol originating the
      routes, then we add another tag to the route.
    
    * Fix the variable information inside test/policy1.var and test/policy2.var.
      The original line was used to set the pre-existing tag information for the
      sample routes (variable number 1 is hard-coded inside the policy code
      to represent tag information):
    
      1              set_u32 123
    
      This information however was ignored and wasn't used to control the
      tag attachment (see the above bullet).
      Now that the route might not be tagged if the pre-existing tag
      information doesn't match the tags that belong to the originating
      protocol, we have to set the tag information to something meaningful:
    
      1              set_u32 0
    
      The reason the new variable value works is because tag number 0 is the
      first tag chosen by the policy code to attach to a route.
      This solution is obviously a hack (e.g., it won't work if the policy
      code is modified to choose a different tag number on startup), but
      it supplements the original hack of generating/attaching some
      tags to the test routes.

commit 23c09113c99decf26d2b896dc1e77d2c78242d64
Author: pavlin <pavlin>
Date:   Thu Dec 7 01:53:10 2006 +0000

    Fix a memory leak inside the PolicyTags::element() method that is
    used for reading the set of policy tags (of a route).

http://suva.vyatta.com/git/?p=xorp.git;a=commitdiff;h=41ac7d335ef134391d00122499449f8f70a4ff66


More information about the svn mailing list