summaryrefslogtreecommitdiffhomepage
path: root/internal/pkg/table/policy.go
AgeCommit message (Collapse)Author
2020-10-20fix #2289: improve regex to give expected resultsThomas Rosenstein
2019-10-25table: replace radix with crit-bit algo for longer-prefixes searchFUJITA Tomonori
faster and less memory usage. Now go-radix has gone. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-10-25table: replace radix with crit-bit algo for policyFUJITA Tomonori
faster and less memory usage. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-10-23Split Reset into three methodsCarl Baldwin
The Reset method was difficult to understand. The reason is that it was called in three different ways and did different things in each case. It is easier to read when the three different modes are each their own method. This came up as I was looking deeper into the threading model around policies. I think this change makes it easier to understand the code.
2019-10-15Avoid locking in cases that return immediatelyCarl Baldwin
This just defers the read lock over some of the code that doesn't inspect or modify any RoutingPolicy data. It allows the early returns to happen without ever taking the read lock.
2019-10-15Keep Lock and defer Unlock togetherCarl Baldwin
The best way to ensure that a lock will always get unlocked is to defer the unlock immediately after locking. Otherwise, adding a return statement in the middle somewhere *could* result in forgetting to release the lock. One of these two cases has that. This technique uses an anonymous function/closure within the larger method to confine the scope of the lock and ensure that it will be unlocked in every case.
2019-09-23table: fix SingleAsPathMatch pre compiled patternTatsushi Demachi
2019-09-08execute rpki validation for policy only when it's necessaryFUJITA Tomonori
currently, validate is executed even if the result is not necessary. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2019-01-09silence staticcheck warningsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2018-12-23make the usage of type name in protobuf consistentFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
2018-11-29server: fix nil pointer error when apply policyoc
this error can be reproduced by: gobgp p statement s1 add action as-prepend 65001 1 gobgp p add p1 s1 gobgp n 192.168.0.5 p import add p1 gobgp n 192.168.0.5 softresetin then: panic: runtime error: invalid memory address or nil pointer dereference
2018-10-28move NewAPIRoutingPolicyFromConfigStruct() from server/FUJITA Tomonori
The config is an internal package so it should not be exported. NewAPIPolicyAssignmentFromTableStruct() is approprate for config/. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-10-28move NewAPIPolicyAssignmentFromTableStruct() from server/FUJITA Tomonori
The table is an internal package so it should not be exported. NewAPIPolicyAssignmentFromTableStruct() is approprate for table/. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-10-23fix: nil pointer in PrefixSet AppendImcom Jin
2018-08-23policy cleanupFUJITA Tomonori
- remove ReplaceDefinedSet and ReplaceStatement APIs; not intutive and should create a new one instead of modifying the existing. - Rename ReplacePolicyAssignment to SetPolicyAssignment API; we use internally SetPolicy() name from the beginning. - Rename UpdatePolicy() to SetPolicies() API; It doesn't update anything so the name is confusing. It discards the all policies and create policies from the argument. - Changes some member names in structures for policy. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-08-17table: remove DIRECTION_IN completelyFUJITA Tomonori
so overdue. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-08-16pkt/server: ListPolicy() and ListStatement() support filtering like ↵FUJITA Tomonori
ListDefinedSet() and ListPolicyAassignment() Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2018-07-07follow Standard Go Project LayoutFUJITA Tomonori
https://github.com/golang-standards/project-layout Now you can see clearly what are private and public library code. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>