[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