Age | Commit message (Collapse) | Author |
|
faster and less memory usage.
Now go-radix has gone.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
faster and less memory usage.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
currently, validate is executed even if the result is not necessary.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
|
|
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
|
|
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>
|
|
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>
|
|
|
|
- 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>
|
|
so overdue.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
ListDefinedSet() and ListPolicyAassignment()
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
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>
|