summaryrefslogtreecommitdiffhomepage
path: root/table/policy_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'table/policy_test.go')
-rw-r--r--table/policy_test.go503
1 files changed, 277 insertions, 226 deletions
diff --git a/table/policy_test.go b/table/policy_test.go
index a60c9cc7..9f9e1d17 100644
--- a/table/policy_test.go
+++ b/table/policy_test.go
@@ -23,7 +23,6 @@ import (
"github.com/stretchr/testify/assert"
"math"
"net"
- "regexp"
"strconv"
"strings"
"testing"
@@ -48,14 +47,14 @@ func TestPrefixCalcurateNoRange(t *testing.T) {
updateMsg := bgp.NewBGPUpdateMessage(nil, pathAttributes, nlri)
path := ProcessMessage(updateMsg, peer)[0]
// test
- pl1, _ := NewPrefix("10.10.0.0/24", "")
- match1 := ipPrefixCalculate(path, pl1)
+ pl1, _ := NewPrefix(config.Prefix{"10.10.0.0/24", ""})
+ match1 := pl1.Match(path)
assert.Equal(t, true, match1)
- pl2, _ := NewPrefix("10.10.0.0/23", "")
- match2 := ipPrefixCalculate(path, pl2)
+ pl2, _ := NewPrefix(config.Prefix{"10.10.0.0/23", ""})
+ match2 := pl2.Match(path)
assert.Equal(t, false, match2)
- pl3, _ := NewPrefix("10.10.0.0/16", "21..24")
- match3 := ipPrefixCalculate(path, pl3)
+ pl3, _ := NewPrefix(config.Prefix{"10.10.0.0/16", "21..24"})
+ match3 := pl3.Match(path)
assert.Equal(t, true, match3)
}
@@ -72,11 +71,11 @@ func TestPrefixCalcurateAddress(t *testing.T) {
updateMsg := bgp.NewBGPUpdateMessage(nil, pathAttributes, nlri)
path := ProcessMessage(updateMsg, peer)[0]
// test
- pl1, _ := NewPrefix("10.11.0.0/16", "21..24")
- match1 := ipPrefixCalculate(path, pl1)
+ pl1, _ := NewPrefix(config.Prefix{"10.11.0.0/16", "21..24"})
+ match1 := pl1.Match(path)
assert.Equal(t, false, match1)
- pl2, _ := NewPrefix("10.10.0.0/16", "21..24")
- match2 := ipPrefixCalculate(path, pl2)
+ pl2, _ := NewPrefix(config.Prefix{"10.10.0.0/16", "21..24"})
+ match2 := pl2.Match(path)
assert.Equal(t, true, match2)
}
@@ -93,11 +92,11 @@ func TestPrefixCalcurateLength(t *testing.T) {
updateMsg := bgp.NewBGPUpdateMessage(nil, pathAttributes, nlri)
path := ProcessMessage(updateMsg, peer)[0]
// test
- pl1, _ := NewPrefix("10.10.64.0/24", "21..24")
- match1 := ipPrefixCalculate(path, pl1)
+ pl1, _ := NewPrefix(config.Prefix{"10.10.64.0/24", "21..24"})
+ match1 := pl1.Match(path)
assert.Equal(t, false, match1)
- pl2, _ := NewPrefix("10.10.64.0/16", "21..24")
- match2 := ipPrefixCalculate(path, pl2)
+ pl2, _ := NewPrefix(config.Prefix{"10.10.64.0/16", "21..24"})
+ match2 := pl2.Match(path)
assert.Equal(t, true, match2)
}
@@ -114,14 +113,14 @@ func TestPrefixCalcurateLengthRange(t *testing.T) {
updateMsg := bgp.NewBGPUpdateMessage(nil, pathAttributes, nlri)
path := ProcessMessage(updateMsg, peer)[0]
// test
- pl1, _ := NewPrefix("10.10.0.0/16", "21..23")
- match1 := ipPrefixCalculate(path, pl1)
+ pl1, _ := NewPrefix(config.Prefix{"10.10.0.0/16", "21..23"})
+ match1 := pl1.Match(path)
assert.Equal(t, false, match1)
- pl2, _ := NewPrefix("10.10.0.0/16", "25..26")
- match2 := ipPrefixCalculate(path, pl2)
+ pl2, _ := NewPrefix(config.Prefix{"10.10.0.0/16", "25..26"})
+ match2 := pl2.Match(path)
assert.Equal(t, false, match2)
- pl3, _ := NewPrefix("10.10.0.0/16", "21..24")
- match3 := ipPrefixCalculate(path, pl3)
+ pl3, _ := NewPrefix(config.Prefix{"10.10.0.0/16", "21..24"})
+ match3 := pl3.Match(path)
assert.Equal(t, true, match3)
}
@@ -139,14 +138,14 @@ func TestPrefixCalcurateNoRangeIPv6(t *testing.T) {
updateMsg := bgp.NewBGPUpdateMessage(nil, pathAttributes, nil)
path := ProcessMessage(updateMsg, peer)[0]
// test
- pl1, _ := NewPrefix("2001:123:123::/48", "")
- match1 := ipPrefixCalculate(path, pl1)
+ pl1, _ := NewPrefix(config.Prefix{"2001:123:123::/48", ""})
+ match1 := pl1.Match(path)
assert.Equal(t, false, match1)
- pl2, _ := NewPrefix("2001:123:123:1::/64", "")
- match2 := ipPrefixCalculate(path, pl2)
+ pl2, _ := NewPrefix(config.Prefix{"2001:123:123:1::/64", ""})
+ match2 := pl2.Match(path)
assert.Equal(t, true, match2)
- pl3, _ := NewPrefix("2001:123:123::/48", "64..80")
- match3 := ipPrefixCalculate(path, pl3)
+ pl3, _ := NewPrefix(config.Prefix{"2001:123:123::/48", "64..80"})
+ match3 := pl3.Match(path)
assert.Equal(t, true, match3)
}
@@ -163,11 +162,11 @@ func TestPrefixCalcurateAddressIPv6(t *testing.T) {
updateMsg := bgp.NewBGPUpdateMessage(nil, pathAttributes, nil)
path := ProcessMessage(updateMsg, peer)[0]
// test
- pl1, _ := NewPrefix("2001:123:128::/48", "64..80")
- match1 := ipPrefixCalculate(path, pl1)
+ pl1, _ := NewPrefix(config.Prefix{"2001:123:128::/48", "64..80"})
+ match1 := pl1.Match(path)
assert.Equal(t, false, match1)
- pl2, _ := NewPrefix("2001:123:123::/48", "64..80")
- match2 := ipPrefixCalculate(path, pl2)
+ pl2, _ := NewPrefix(config.Prefix{"2001:123:123::/48", "64..80"})
+ match2 := pl2.Match(path)
assert.Equal(t, true, match2)
}
@@ -184,11 +183,11 @@ func TestPrefixCalcurateLengthIPv6(t *testing.T) {
updateMsg := bgp.NewBGPUpdateMessage(nil, pathAttributes, nil)
path := ProcessMessage(updateMsg, peer)[0]
// test
- pl1, _ := NewPrefix("2001:123:123:64::/64", "64..80")
- match1 := ipPrefixCalculate(path, pl1)
+ pl1, _ := NewPrefix(config.Prefix{"2001:123:123:64::/64", "64..80"})
+ match1 := pl1.Match(path)
assert.Equal(t, false, match1)
- pl2, _ := NewPrefix("2001:123:123:64::/48", "64..80")
- match2 := ipPrefixCalculate(path, pl2)
+ pl2, _ := NewPrefix(config.Prefix{"2001:123:123:64::/48", "64..80"})
+ match2 := pl2.Match(path)
assert.Equal(t, true, match2)
}
@@ -205,14 +204,14 @@ func TestPrefixCalcurateLengthRangeIPv6(t *testing.T) {
updateMsg := bgp.NewBGPUpdateMessage(nil, pathAttributes, nil)
path := ProcessMessage(updateMsg, peer)[0]
// test
- pl1, _ := NewPrefix("2001:123:123::/48", "62..63")
- match1 := ipPrefixCalculate(path, pl1)
+ pl1, _ := NewPrefix(config.Prefix{"2001:123:123::/48", "62..63"})
+ match1 := pl1.Match(path)
assert.Equal(t, false, match1)
- pl2, _ := NewPrefix("2001:123:123::/48", "65..66")
- match2 := ipPrefixCalculate(path, pl2)
+ pl2, _ := NewPrefix(config.Prefix{"2001:123:123::/48", "65..66"})
+ match2 := pl2.Match(path)
assert.Equal(t, false, match2)
- pl3, _ := NewPrefix("2001:123:123::/48", "63..65")
- match3 := ipPrefixCalculate(path, pl3)
+ pl3, _ := NewPrefix(config.Prefix{"2001:123:123::/48", "63..65"})
+ match3 := pl3.Match(path)
assert.Equal(t, true, match3)
}
@@ -239,10 +238,9 @@ func TestPolicyNotMatch(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
- //test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
- pType, newPath := p.Apply(path)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ pType, newPath := r.PolicyMap["pd1"].Apply(path)
assert.Equal(t, ROUTE_TYPE_NONE, pType)
assert.Equal(t, newPath, path)
}
@@ -270,10 +268,9 @@ func TestPolicyMatchAndReject(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
- //test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
- pType, newPath := p.Apply(path)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ pType, newPath := r.PolicyMap["pd1"].Apply(path)
assert.Equal(t, ROUTE_TYPE_REJECT, pType)
assert.Equal(t, newPath, path)
}
@@ -302,9 +299,9 @@ func TestPolicyMatchAndAccept(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
- pType, newPath := p.Apply(path)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ pType, newPath := r.PolicyMap["pd1"].Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
assert.Equal(t, path, newPath)
}
@@ -338,13 +335,14 @@ func TestPolicyRejectOnlyPrefixSet(t *testing.T) {
ds := config.DefinedSets{}
ds.PrefixSets.PrefixSetList = []config.PrefixSet{ps}
- s := createStatement("statement1", "ps1", "ns1", false)
+ s := createStatement("statement1", "ps1", "", false)
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path1)
assert.Equal(t, ROUTE_TYPE_REJECT, pType)
assert.Equal(t, newPath, path1)
@@ -383,18 +381,18 @@ func TestPolicyRejectOnlyNeighborSet(t *testing.T) {
ds := config.DefinedSets{}
ds.NeighborSets.NeighborSetList = []config.NeighborSet{ns}
- s := createStatement("statement1", "ps1", "ns1", false)
+ s := createStatement("statement1", "", "ns1", false)
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
- pType, newPath := p.Apply(path1)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ pType, newPath := r.PolicyMap["pd1"].Apply(path1)
assert.Equal(t, ROUTE_TYPE_REJECT, pType)
assert.Equal(t, newPath, path1)
- pType2, newPath2 := p.Apply(path2)
+ pType2, newPath2 := r.PolicyMap["pd1"].Apply(path2)
assert.Equal(t, ROUTE_TYPE_NONE, pType2)
assert.Equal(t, newPath2, path2)
}
@@ -440,8 +438,9 @@ func TestPolicyDifferentRoutefamilyOfPathAndPolicy(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType1, newPath1 := p.Apply(pathIPv4)
assert.Equal(t, ROUTE_TYPE_REJECT, pType1)
assert.Equal(t, newPath1, pathIPv4)
@@ -474,30 +473,30 @@ func TestAsPathLengthConditionEvaluate(t *testing.T) {
Operator: "eq",
Value: 5,
}
- c := NewAsPathLengthCondition(asPathLength)
+ c, _ := NewAsPathLengthCondition(asPathLength)
// test
- assert.Equal(t, true, c.evaluate(path))
+ assert.Equal(t, true, c.Evaluate(path))
// create match condition
asPathLength = config.AsPathLength{
Operator: "ge",
Value: 3,
}
- c = NewAsPathLengthCondition(asPathLength)
+ c, _ = NewAsPathLengthCondition(asPathLength)
// test
- assert.Equal(t, true, c.evaluate(path))
+ assert.Equal(t, true, c.Evaluate(path))
// create match condition
asPathLength = config.AsPathLength{
Operator: "le",
Value: 3,
}
- c = NewAsPathLengthCondition(asPathLength)
+ c, _ = NewAsPathLengthCondition(asPathLength)
// test
- assert.Equal(t, false, c.evaluate(path))
+ assert.Equal(t, false, c.Evaluate(path))
}
func TestAsPathLengthConditionWithOtherCondition(t *testing.T) {
@@ -538,8 +537,9 @@ func TestAsPathLengthConditionWithOtherCondition(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_REJECT, pType)
assert.Equal(t, newPath, path)
@@ -579,30 +579,30 @@ func TestAs4PathLengthConditionEvaluate(t *testing.T) {
Operator: "eq",
Value: 5,
}
- c := NewAsPathLengthCondition(asPathLength)
+ c, _ := NewAsPathLengthCondition(asPathLength)
// test
- assert.Equal(t, true, c.evaluate(path))
+ assert.Equal(t, true, c.Evaluate(path))
// create match condition
asPathLength = config.AsPathLength{
Operator: "ge",
Value: 3,
}
- c = NewAsPathLengthCondition(asPathLength)
+ c, _ = NewAsPathLengthCondition(asPathLength)
// test
- assert.Equal(t, true, c.evaluate(path))
+ assert.Equal(t, true, c.Evaluate(path))
// create match condition
asPathLength = config.AsPathLength{
Operator: "le",
Value: 3,
}
- c = NewAsPathLengthCondition(asPathLength)
+ c, _ = NewAsPathLengthCondition(asPathLength)
// test
- assert.Equal(t, false, c.evaluate(path))
+ assert.Equal(t, false, c.Evaluate(path))
}
func TestAs4PathLengthConditionWithOtherCondition(t *testing.T) {
@@ -654,8 +654,8 @@ func TestAs4PathLengthConditionWithOtherCondition(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, _ := NewRoutingPolicy(pl)
+ p, _ := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], r.DefinedSetMap)
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_REJECT, pType)
assert.Equal(t, newPath, path)
@@ -733,14 +733,18 @@ func TestAsPathConditionEvaluate(t *testing.T) {
},
}
- asPathSetList := []config.AsPathSet{asPathSet1, asPathSet2, asPathSet3,
- asPathSet4, asPathSet5, asPathSet6}
+ m := make(map[string]DefinedSet)
+ for _, s := range []config.AsPathSet{asPathSet1, asPathSet2, asPathSet3,
+ asPathSet4, asPathSet5, asPathSet6} {
+ a, _ := NewAsPathSet(s)
+ m[s.AsPathSetName] = a
+ }
createAspathC := func(name string, option config.MatchSetOptionsType) *AsPathCondition {
matchSet := config.MatchAsPathSet{}
matchSet.AsPathSet = name
matchSet.MatchSetOptions = option
- p := NewAsPathCondition(matchSet, asPathSetList)
+ p, _ := NewAsPathCondition(matchSet, m)
return p
}
@@ -750,22 +754,19 @@ func TestAsPathConditionEvaluate(t *testing.T) {
p4 := createAspathC("asset4", config.MATCH_SET_OPTIONS_TYPE_ANY)
p5 := createAspathC("asset5", config.MATCH_SET_OPTIONS_TYPE_ANY)
p6 := createAspathC("asset6", config.MATCH_SET_OPTIONS_TYPE_ANY)
-
- //TODO: add ALL and INVERT cases.
p7 := createAspathC("asset3", config.MATCH_SET_OPTIONS_TYPE_ALL)
p8 := createAspathC("asset3", config.MATCH_SET_OPTIONS_TYPE_INVERT)
// test
- assert.Equal(t, true, p1.evaluate(path1))
- assert.Equal(t, true, p2.evaluate(path1))
- assert.Equal(t, true, p3.evaluate(path1))
- assert.Equal(t, false, p4.evaluate(path1))
- assert.Equal(t, true, p5.evaluate(path1))
- assert.Equal(t, false, p6.evaluate(path1))
- assert.Equal(t, true, p6.evaluate(path2))
-
- assert.Equal(t, true, p7.evaluate(path1))
- assert.Equal(t, true, p8.evaluate(path2))
+ assert.Equal(t, true, p1.Evaluate(path1))
+ assert.Equal(t, true, p2.Evaluate(path1))
+ assert.Equal(t, true, p3.Evaluate(path1))
+ assert.Equal(t, false, p4.Evaluate(path1))
+ assert.Equal(t, true, p5.Evaluate(path1))
+ assert.Equal(t, false, p6.Evaluate(path1))
+ assert.Equal(t, true, p6.Evaluate(path2))
+ assert.Equal(t, true, p7.Evaluate(path1))
+ assert.Equal(t, true, p8.Evaluate(path2))
}
func TestMultipleAsPathConditionEvaluate(t *testing.T) {
@@ -850,14 +851,18 @@ func TestMultipleAsPathConditionEvaluate(t *testing.T) {
},
}
- asPathSetList := []config.AsPathSet{asPathSet1, asPathSet2, asPathSet3,
- asPathSet4, asPathSet5, asPathSet6, asPathSet7, asPathSet8, asPathSet9}
+ m := make(map[string]DefinedSet)
+ for _, s := range []config.AsPathSet{asPathSet1, asPathSet2, asPathSet3,
+ asPathSet4, asPathSet5, asPathSet6, asPathSet7, asPathSet8, asPathSet9} {
+ a, _ := NewAsPathSet(s)
+ m[s.AsPathSetName] = a
+ }
createAspathC := func(name string, option config.MatchSetOptionsType) *AsPathCondition {
matchSet := config.MatchAsPathSet{}
matchSet.AsPathSet = name
matchSet.MatchSetOptions = option
- p := NewAsPathCondition(matchSet, asPathSetList)
+ p, _ := NewAsPathCondition(matchSet, m)
return p
}
@@ -872,15 +877,15 @@ func TestMultipleAsPathConditionEvaluate(t *testing.T) {
p9 := createAspathC("asset9", config.MATCH_SET_OPTIONS_TYPE_ANY)
// test
- assert.Equal(t, true, p1.evaluate(path1))
- assert.Equal(t, true, p2.evaluate(path1))
- assert.Equal(t, true, p3.evaluate(path1))
- assert.Equal(t, true, p4.evaluate(path1))
- assert.Equal(t, true, p5.evaluate(path1))
- assert.Equal(t, true, p6.evaluate(path1))
- assert.Equal(t, true, p7.evaluate(path1))
- assert.Equal(t, true, p8.evaluate(path1))
- assert.Equal(t, false, p9.evaluate(path1))
+ assert.Equal(t, true, p1.Evaluate(path1))
+ assert.Equal(t, true, p2.Evaluate(path1))
+ assert.Equal(t, true, p3.Evaluate(path1))
+ assert.Equal(t, true, p4.Evaluate(path1))
+ assert.Equal(t, true, p5.Evaluate(path1))
+ assert.Equal(t, true, p6.Evaluate(path1))
+ assert.Equal(t, true, p7.Evaluate(path1))
+ assert.Equal(t, true, p8.Evaluate(path1))
+ assert.Equal(t, false, p9.Evaluate(path1))
}
func TestAsPathCondition(t *testing.T) {
@@ -930,17 +935,19 @@ func TestAsPathCondition(t *testing.T) {
}
for k, v := range tests {
- r, _ := regexp.Compile(strings.Replace(k, "_", ASPATH_REGEXP_MAGIC, -1))
- c := &AsPathCondition{
- AsRegExpList: []*regexp.Regexp{r},
- MatchOption: config.MATCH_SET_OPTIONS_TYPE_ANY,
- }
+ s, _ := NewAsPathSet(config.AsPathSet{
+ AsPathSetName: k,
+ AsPathList: []config.AsPath{config.AsPath{k}},
+ })
+ c, _ := NewAsPathCondition(config.MatchAsPathSet{
+ AsPathSet: k,
+ MatchSetOptions: config.MATCH_SET_OPTIONS_TYPE_ANY,
+ }, map[string]DefinedSet{k: s})
for _, a := range v {
- result := c.evaluate(a.path)
+ result := c.Evaluate(a.path)
if a.result != result {
log.WithFields(log.Fields{
"EXP": k,
- "ASN": r,
"ASSTR": a.path.GetAsString(),
"Expected": a.result,
"Result": result,
@@ -990,8 +997,9 @@ func TestAsPathConditionWithOtherCondition(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_REJECT, pType)
assert.Equal(t, newPath, path)
@@ -1077,14 +1085,18 @@ func TestAs4PathConditionEvaluate(t *testing.T) {
},
}
- asPathSetList := []config.AsPathSet{asPathSet1, asPathSet2, asPathSet3,
- asPathSet4, asPathSet5, asPathSet6}
+ m := make(map[string]DefinedSet)
+ for _, s := range []config.AsPathSet{asPathSet1, asPathSet2, asPathSet3,
+ asPathSet4, asPathSet5, asPathSet6} {
+ a, _ := NewAsPathSet(s)
+ m[s.AsPathSetName] = a
+ }
createAspathC := func(name string, option config.MatchSetOptionsType) *AsPathCondition {
matchSet := config.MatchAsPathSet{}
matchSet.AsPathSet = name
matchSet.MatchSetOptions = option
- p := NewAsPathCondition(matchSet, asPathSetList)
+ p, _ := NewAsPathCondition(matchSet, m)
return p
}
@@ -1099,16 +1111,16 @@ func TestAs4PathConditionEvaluate(t *testing.T) {
p8 := createAspathC("asset3", config.MATCH_SET_OPTIONS_TYPE_INVERT)
// test
- assert.Equal(t, true, p1.evaluate(path1))
- assert.Equal(t, true, p2.evaluate(path1))
- assert.Equal(t, true, p3.evaluate(path1))
- assert.Equal(t, false, p4.evaluate(path1))
- assert.Equal(t, true, p5.evaluate(path1))
- assert.Equal(t, false, p6.evaluate(path1))
- assert.Equal(t, true, p6.evaluate(path2))
-
- assert.Equal(t, true, p7.evaluate(path1))
- assert.Equal(t, true, p8.evaluate(path2))
+ assert.Equal(t, true, p1.Evaluate(path1))
+ assert.Equal(t, true, p2.Evaluate(path1))
+ assert.Equal(t, true, p3.Evaluate(path1))
+ assert.Equal(t, false, p4.Evaluate(path1))
+ assert.Equal(t, true, p5.Evaluate(path1))
+ assert.Equal(t, false, p6.Evaluate(path1))
+ assert.Equal(t, true, p6.Evaluate(path2))
+
+ assert.Equal(t, true, p7.Evaluate(path1))
+ assert.Equal(t, true, p8.Evaluate(path2))
}
func TestMultipleAs4PathConditionEvaluate(t *testing.T) {
@@ -1200,14 +1212,18 @@ func TestMultipleAs4PathConditionEvaluate(t *testing.T) {
},
}
- asPathSetList := []config.AsPathSet{asPathSet1, asPathSet2, asPathSet3,
- asPathSet4, asPathSet5, asPathSet6, asPathSet7, asPathSet8, asPathSet9}
+ m := make(map[string]DefinedSet)
+ for _, s := range []config.AsPathSet{asPathSet1, asPathSet2, asPathSet3,
+ asPathSet4, asPathSet5, asPathSet6, asPathSet7, asPathSet8, asPathSet9} {
+ a, _ := NewAsPathSet(s)
+ m[s.AsPathSetName] = a
+ }
createAspathC := func(name string, option config.MatchSetOptionsType) *AsPathCondition {
matchSet := config.MatchAsPathSet{}
matchSet.AsPathSet = name
matchSet.MatchSetOptions = option
- p := NewAsPathCondition(matchSet, asPathSetList)
+ p, _ := NewAsPathCondition(matchSet, m)
return p
}
@@ -1222,15 +1238,15 @@ func TestMultipleAs4PathConditionEvaluate(t *testing.T) {
p9 := createAspathC("asset9", config.MATCH_SET_OPTIONS_TYPE_ANY)
// test
- assert.Equal(t, true, p1.evaluate(path1))
- assert.Equal(t, true, p2.evaluate(path1))
- assert.Equal(t, true, p3.evaluate(path1))
- assert.Equal(t, true, p4.evaluate(path1))
- assert.Equal(t, true, p5.evaluate(path1))
- assert.Equal(t, true, p6.evaluate(path1))
- assert.Equal(t, true, p7.evaluate(path1))
- assert.Equal(t, true, p8.evaluate(path1))
- assert.Equal(t, false, p9.evaluate(path1))
+ assert.Equal(t, true, p1.Evaluate(path1))
+ assert.Equal(t, true, p2.Evaluate(path1))
+ assert.Equal(t, true, p3.Evaluate(path1))
+ assert.Equal(t, true, p4.Evaluate(path1))
+ assert.Equal(t, true, p5.Evaluate(path1))
+ assert.Equal(t, true, p6.Evaluate(path1))
+ assert.Equal(t, true, p7.Evaluate(path1))
+ assert.Equal(t, true, p8.Evaluate(path1))
+ assert.Equal(t, false, p9.Evaluate(path1))
}
func TestAs4PathConditionWithOtherCondition(t *testing.T) {
@@ -1286,8 +1302,8 @@ func TestAs4PathConditionWithOtherCondition(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, _ := NewRoutingPolicy(pl)
+ p, _ := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], r.DefinedSetMap)
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_REJECT, pType)
assert.Equal(t, newPath, path)
@@ -1373,14 +1389,18 @@ func TestAs4PathConditionEvaluateMixedWith2byteAS(t *testing.T) {
},
}
- asPathSetList := []config.AsPathSet{asPathSet1, asPathSet2, asPathSet3,
- asPathSet4, asPathSet5, asPathSet6, asPathSet7}
+ m := make(map[string]DefinedSet)
+ for _, s := range []config.AsPathSet{asPathSet1, asPathSet2, asPathSet3,
+ asPathSet4, asPathSet5, asPathSet6, asPathSet7} {
+ a, _ := NewAsPathSet(s)
+ m[s.AsPathSetName] = a
+ }
createAspathC := func(name string, option config.MatchSetOptionsType) *AsPathCondition {
matchSet := config.MatchAsPathSet{}
matchSet.AsPathSet = name
matchSet.MatchSetOptions = option
- p := NewAsPathCondition(matchSet, asPathSetList)
+ p, _ := NewAsPathCondition(matchSet, m)
return p
}
@@ -1393,13 +1413,13 @@ func TestAs4PathConditionEvaluateMixedWith2byteAS(t *testing.T) {
p7 := createAspathC("asset7", config.MATCH_SET_OPTIONS_TYPE_ANY)
// test
- assert.Equal(t, true, p1.evaluate(path1))
- assert.Equal(t, true, p2.evaluate(path1))
- assert.Equal(t, true, p3.evaluate(path1))
- assert.Equal(t, true, p4.evaluate(path1))
- assert.Equal(t, true, p5.evaluate(path1))
- assert.Equal(t, false, p6.evaluate(path1))
- assert.Equal(t, true, p7.evaluate(path1))
+ assert.Equal(t, true, p1.Evaluate(path1))
+ assert.Equal(t, true, p2.Evaluate(path1))
+ assert.Equal(t, true, p3.Evaluate(path1))
+ assert.Equal(t, true, p4.Evaluate(path1))
+ assert.Equal(t, true, p5.Evaluate(path1))
+ assert.Equal(t, false, p6.Evaluate(path1))
+ assert.Equal(t, true, p7.Evaluate(path1))
}
@@ -1434,6 +1454,17 @@ func TestCommunityConditionEvaluate(t *testing.T) {
UpdatePathAttrs4ByteAs(updateMsg1.Body.(*bgp.BGPUpdate))
path1 := ProcessMessage(updateMsg1, peer)[0]
+ communities2 := bgp.NewPathAttributeCommunities([]uint32{
+ stringToCommunityValue("65001:100"),
+ stringToCommunityValue("65001:200"),
+ stringToCommunityValue("65001:300"),
+ stringToCommunityValue("65001:400")})
+
+ pathAttributes2 := []bgp.PathAttributeInterface{origin, aspath, nexthop, med, communities2}
+ updateMsg2 := bgp.NewBGPUpdateMessage(nil, pathAttributes2, nlri)
+ UpdatePathAttrs4ByteAs(updateMsg2.Body.(*bgp.BGPUpdate))
+ path2 := ProcessMessage(updateMsg2, peer)[0]
+
// create match condition
comSet1 := config.CommunitySet{
CommunitySetName: "comset1",
@@ -1496,9 +1527,8 @@ func TestCommunityConditionEvaluate(t *testing.T) {
comSet9 := config.CommunitySet{
CommunitySetName: "comset9",
CommunityList: []config.Community{
- config.Community{"65001:100"},
- config.Community{"65001:200"},
- config.Community{"65001:300"},
+ config.Community{"65001:\\d+"},
+ config.Community{"\\d+:\\d00"},
},
}
@@ -1511,14 +1541,19 @@ func TestCommunityConditionEvaluate(t *testing.T) {
},
}
- comSetList := []config.CommunitySet{comSet1, comSet2, comSet3,
- comSet4, comSet5, comSet6, comSet7, comSet8, comSet9, comSet10}
+ m := make(map[string]DefinedSet)
+
+ for _, c := range []config.CommunitySet{comSet1, comSet2, comSet3,
+ comSet4, comSet5, comSet6, comSet7, comSet8, comSet9, comSet10} {
+ s, _ := NewCommunitySet(c)
+ m[c.CommunitySetName] = s
+ }
createCommunityC := func(name string, option config.MatchSetOptionsType) *CommunityCondition {
matchSet := config.MatchCommunitySet{}
matchSet.CommunitySet = name
matchSet.MatchSetOptions = option
- c := NewCommunityCondition(matchSet, comSetList)
+ c, _ := NewCommunityCondition(matchSet, m)
return c
}
@@ -1539,16 +1574,16 @@ func TestCommunityConditionEvaluate(t *testing.T) {
p10 := createCommunityC("comset10", config.MATCH_SET_OPTIONS_TYPE_INVERT)
// test
- assert.Equal(t, true, p1.evaluate(path1))
- assert.Equal(t, true, p2.evaluate(path1))
- assert.Equal(t, true, p3.evaluate(path1))
- assert.Equal(t, true, p4.evaluate(path1))
- assert.Equal(t, true, p5.evaluate(path1))
- assert.Equal(t, true, p6.evaluate(path1))
- assert.Equal(t, true, p7.evaluate(path1))
- assert.Equal(t, true, p8.evaluate(path1))
- assert.Equal(t, true, p9.evaluate(path1))
- assert.Equal(t, true, p10.evaluate(path1))
+ assert.Equal(t, true, p1.Evaluate(path1))
+ assert.Equal(t, true, p2.Evaluate(path1))
+ assert.Equal(t, true, p3.Evaluate(path1))
+ assert.Equal(t, true, p4.Evaluate(path1))
+ assert.Equal(t, true, p5.Evaluate(path1))
+ assert.Equal(t, true, p6.Evaluate(path1))
+ assert.Equal(t, true, p7.Evaluate(path1))
+ assert.Equal(t, true, p8.Evaluate(path1))
+ assert.Equal(t, true, p9.Evaluate(path2))
+ assert.Equal(t, true, p10.Evaluate(path1))
}
@@ -1626,14 +1661,14 @@ func TestCommunityConditionEvaluateWithOtherCondition(t *testing.T) {
pl := createRoutingPolicy(ds, pd1, pd2)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_REJECT, pType)
assert.Equal(t, newPath, path)
- df = pl.DefinedSets
- p = NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[1], df)
+ p = r.PolicyMap["pd2"]
pType, newPath = p.Apply(path)
assert.Equal(t, ROUTE_TYPE_NONE, pType)
assert.Equal(t, newPath, path)
@@ -1670,8 +1705,9 @@ func TestPolicyMatchAndAddCommunities(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
@@ -1713,8 +1749,9 @@ func TestPolicyMatchAndReplaceCommunities(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
@@ -1756,8 +1793,9 @@ func TestPolicyMatchAndRemoveCommunities(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
assert.NotEqual(t, nil, newPath)
@@ -1800,8 +1838,9 @@ func TestPolicyMatchAndRemoveCommunitiesRegexp(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
assert.NotEqual(t, nil, newPath)
@@ -1844,8 +1883,9 @@ func TestPolicyMatchAndRemoveCommunitiesRegexp2(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
assert.NotEqual(t, nil, newPath)
@@ -1888,8 +1928,9 @@ func TestPolicyMatchAndClearCommunities(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
@@ -2041,9 +2082,8 @@ func TestExtCommunityConditionEvaluate(t *testing.T) {
ecomSet10 := config.ExtCommunitySet{
ExtCommunitySetName: "ecomSet10",
ExtCommunityList: []config.ExtCommunity{
- config.ExtCommunity{"RT:65001:200"},
- config.ExtCommunity{"RT:10.0.0.1:300"},
- config.ExtCommunity{"SoO:10.0.10.10:[0-9]+"},
+ config.ExtCommunity{"RT:.+:\\d00"},
+ config.ExtCommunity{"SoO:.+:\\d00"},
},
}
@@ -2051,19 +2091,22 @@ func TestExtCommunityConditionEvaluate(t *testing.T) {
ExtCommunitySetName: "ecomSet11",
ExtCommunityList: []config.ExtCommunity{
config.ExtCommunity{"RT:65001:2"},
- config.ExtCommunity{"RT:10.0.0.1:3"},
config.ExtCommunity{"SoO:11.0.10.10:[0-9]+"},
},
}
- comSetList := []config.ExtCommunitySet{ecomSet1, ecomSet2, ecomSet3, ecomSet4, ecomSet5, ecomSet6, ecomSet7,
- ecomSet8, ecomSet9, ecomSet10, ecomSet11}
+ m := make(map[string]DefinedSet)
+ for _, c := range []config.ExtCommunitySet{ecomSet1, ecomSet2, ecomSet3, ecomSet4, ecomSet5, ecomSet6, ecomSet7,
+ ecomSet8, ecomSet9, ecomSet10, ecomSet11} {
+ s, _ := NewExtCommunitySet(c)
+ m[s.Name()] = s
+ }
createExtCommunityC := func(name string, option config.MatchSetOptionsType) *ExtCommunityCondition {
matchSet := config.MatchExtCommunitySet{}
matchSet.ExtCommunitySet = name
matchSet.MatchSetOptions = option
- c := NewExtCommunityCondition(matchSet, comSetList)
+ c, _ := NewExtCommunityCondition(matchSet, m)
return c
}
@@ -2084,17 +2127,17 @@ func TestExtCommunityConditionEvaluate(t *testing.T) {
p11 := createExtCommunityC("ecomSet11", config.MATCH_SET_OPTIONS_TYPE_INVERT)
// test
- assert.Equal(t, true, p1.evaluate(path1))
- assert.Equal(t, true, p2.evaluate(path1))
- assert.Equal(t, true, p3.evaluate(path1))
- assert.Equal(t, false, p4.evaluate(path1))
- assert.Equal(t, false, p5.evaluate(path1))
- assert.Equal(t, false, p6.evaluate(path1))
- assert.Equal(t, true, p7.evaluate(path1))
- assert.Equal(t, true, p8.evaluate(path1))
- assert.Equal(t, true, p9.evaluate(path1))
- assert.Equal(t, true, p10.evaluate(path1))
- assert.Equal(t, true, p11.evaluate(path1))
+ assert.Equal(t, true, p1.Evaluate(path1))
+ assert.Equal(t, true, p2.Evaluate(path1))
+ assert.Equal(t, true, p3.Evaluate(path1))
+ assert.Equal(t, false, p4.Evaluate(path1))
+ assert.Equal(t, false, p5.Evaluate(path1))
+ assert.Equal(t, false, p6.Evaluate(path1))
+ assert.Equal(t, true, p7.Evaluate(path1))
+ assert.Equal(t, true, p8.Evaluate(path1))
+ assert.Equal(t, true, p9.Evaluate(path1))
+ assert.Equal(t, true, p10.Evaluate(path1))
+ assert.Equal(t, true, p11.Evaluate(path1))
}
@@ -2219,13 +2262,14 @@ func TestExtCommunityConditionEvaluateWithOtherCondition(t *testing.T) {
pd2 := createPolicyDefinition("pd2", s2)
pl := createRoutingPolicy(ds, pd1, pd2)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_NONE, pType)
assert.Equal(t, newPath, path)
- p = NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[1], df)
+ p = r.PolicyMap["pd2"]
pType, newPath = p.Apply(path)
assert.Equal(t, ROUTE_TYPE_REJECT, pType)
assert.Equal(t, newPath, path)
@@ -2262,8 +2306,9 @@ func TestPolicyMatchAndReplaceMed(t *testing.T) {
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
@@ -2304,8 +2349,9 @@ func TestPolicyMatchAndAddingMed(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
assert.NotEqual(t, nil, newPath)
@@ -2347,8 +2393,9 @@ func TestPolicyMatchAndAddingMedOverFlow(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
@@ -2391,8 +2438,9 @@ func TestPolicyMatchAndSubtractMed(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
@@ -2435,8 +2483,9 @@ func TestPolicyMatchAndSubtractMedUnderFlow(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
@@ -2476,14 +2525,15 @@ func TestPolicyMatchWhenPathHaveNotMed(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, err := NewRoutingPolicy(pl)
+ assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(t, ROUTE_TYPE_ACCEPT, pType)
assert.NotEqual(t, nil, newPath)
- _, err := newPath.GetMed()
+ _, err = newPath.GetMed()
assert.NotNil(t, err)
}
@@ -2522,8 +2572,9 @@ func TestPolicyAsPathPrepend(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, _ := NewRoutingPolicy(pl)
+ // assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(ROUTE_TYPE_ACCEPT, pType)
@@ -2565,8 +2616,9 @@ func TestPolicyAsPathPrependLastAs(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, _ := NewRoutingPolicy(pl)
+ // assert.Nil(t, err)
+ p := r.PolicyMap["pd1"]
pType, newPath := p.Apply(path)
assert.Equal(ROUTE_TYPE_ACCEPT, pType)
@@ -2614,8 +2666,8 @@ func TestPolicyAs4PathPrepend(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, _ := NewRoutingPolicy(pl)
+ p, _ := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], r.DefinedSetMap)
pType, newPath := p.Apply(path)
assert.Equal(ROUTE_TYPE_ACCEPT, pType)
@@ -2668,8 +2720,8 @@ func TestPolicyAs4PathPrependLastAs(t *testing.T) {
pd := createPolicyDefinition("pd1", s)
pl := createRoutingPolicy(ds, pd)
//test
- df := pl.DefinedSets
- p := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], df)
+ r, _ := NewRoutingPolicy(pl)
+ p, _ := NewPolicy(pl.PolicyDefinitions.PolicyDefinitionList[0], r.DefinedSetMap)
pType, newPath := p.Apply(path)
assert.Equal(ROUTE_TYPE_ACCEPT, pType)
@@ -2684,7 +2736,6 @@ func TestPolicyAs4PathPrependLastAs(t *testing.T) {
}
func createStatement(name, psname, nsname string, accept bool) config.Statement {
-
c := config.Conditions{
MatchPrefixSet: config.MatchPrefixSet{
PrefixSet: psname,