Maria Matejka
65254128e1
Merge commit '702c04fbef222e802ca4dfac645dc75ede522db6' into haugesund
2022-05-30 17:18:46 +02:00
Maria Matejka
1a92ee9d4d
Merge commit '337c04c45e1472d6d9b531a3c55f1f2d30ebf308' into haugesund
2022-05-30 17:18:03 +02:00
Maria Matejka
674587d9c8
Merge commit 'd8661a4397e4576ac404661b192dd99d928e7890' into haugesund
2022-05-30 17:11:30 +02:00
Maria Matejka
5051e3c4af
Merge commit '17f91f9e6e70f7e3f29502e854823c0d48571eaa' into haugesund
2022-05-30 16:59:24 +02:00
Maria Matejka
8b4b7c6eae
Merge commit 'cf07d8ad79273a3bbf0617c17e438602e4b64ece' into haugesund
2022-05-30 16:52:38 +02:00
Maria Matejka
b7e2edd441
Merge commit '1d309c4ce6e95b68c64a8f007f6dd2f1830a5707' into haugesund
2022-05-30 16:48:17 +02:00
Maria Matejka
d7bec897ab
Merge commit 'ef4313e1667a8745c8d8813ac78342ec7c035895' into haugesund
2022-05-30 16:47:30 +02:00
Maria Matejka
e16e1e4138
Merge commit 'f2f3163f6c3fba7f9ef03640d7b2f6323873d2cc' into haugesund
2022-05-30 16:41:15 +02:00
Maria Matejka
0097f24e2e
Merge commit 'de86040b2cf4ec9bfbb64f0e208a19d4d7e51adc' into haugesund
2022-05-30 16:21:48 +02:00
Maria Matejka
86ac1045d7
Merge commit '3fb70b26faca6788aa0bdf1d558414f9f777c6cd' into haugesund
2022-05-30 16:21:02 +02:00
Maria Matejka
b3649ec77e
Merge commit 'ef6a903e6f44b467f9606018446095521ad01ef1' into haugesund
2022-05-30 16:20:35 +02:00
Maria Matejka
ba35b0f818
Merge commit '0e1e632f70b74cf111f08175ab3634db2f962579' into haugesund
2022-05-30 15:43:45 +02:00
Maria Matejka
54344f15f8
Merge commit '0d0f6554a5c233bf2bf830ae319191c4b1808d49' into haugesund
2022-05-30 15:43:13 +02:00
Maria Matejka
097f157182
Merge commit '692055e3df6cc9f0d428d3b0dd8cdd8e825eb6f4' into haugesund-to-2.0
2022-05-30 15:17:52 +02:00
Maria Matejka
702c04fbef
Removing the route scope attribute. Use custom attributes instead.
...
The route scope attribute was used for simple user route marking. As
there is a better tool for this (custom attributes), the old and limited
way can be dropped.
2022-05-04 15:39:21 +02:00
Maria Matejka
337c04c45e
Moved route preference to eattrs
2022-05-04 15:39:21 +02:00
Maria Matejka
d8661a4397
Joined the RTA igp_metric and EA igp_metric attributes
2022-05-04 15:39:21 +02:00
Maria Matejka
0c4e0e4a63
Removed forgotten remnants of unused enum rtc
2022-05-04 15:39:21 +02:00
Maria Matejka
8ebac84bc8
Moved advertising router info (FROM attribute) to eattrs
2022-05-04 15:39:21 +02:00
Maria Matejka
17f91f9e6e
Explicit definition structures of route attributes
...
Changes in internal API:
* Every route attribute must be defined as struct ea_class somewhere.
* Registration of route attributes known at startup must be done by
ea_register_init() from protocol build functions.
* Every attribute has now its symbol registered in a global symbol table
defined as SYM_ATTRIBUTE
* All attribute ID's are dynamically allocated.
* Attribute value custom formatting hook is defined in the ea_class.
* Attribute names are the same for display and filters, always prefixed
by protocol name.
Also added some unit testing code for filters with route attributes.
2022-05-04 15:39:19 +02:00
Maria Matejka
cf07d8ad79
Replaced boilerplate eattr allocation by ea_set_attr()
2022-05-04 15:38:40 +02:00
Maria Matejka
1d309c4ce6
Enforcing certain data structure explicit paddings.
...
Implicit paddings have undefined values in C. We want the eattr blocks
to be comparable by memcmp and eattrs settable directly by structrure
literals. This check ensures that all paddings in eattr and bval are
explicit and therefore zeroed in all literals.
2022-05-04 15:37:41 +02:00
Maria Matejka
ef4313e166
Local route attributes are always allocated from tmp_linpool
2022-05-04 15:37:41 +02:00
Maria Matejka
f2f3163f6c
Filters always allocate from tmp_linpool
2022-05-04 15:37:41 +02:00
Maria Matejka
de86040b2c
Attribute list normalization cleanup
2022-05-04 15:37:41 +02:00
Maria Matejka
3fb70b26fa
Complex route attributes are data structures, shall be in lib also
2022-05-04 15:37:41 +02:00
Maria Matejka
ef6a903e6f
Splitting route data structures out to lib
2022-05-04 15:37:41 +02:00
Maria Matejka
0e1e632f70
FIB is a data structure generic enough to be in lib
2022-05-04 15:37:41 +02:00
Maria Matejka
0d0f6554a5
Unified attribute and filter types
...
This commit removes the EAF_TYPE_* namespace completely and also for
route attributes, filter-based types T_* are used. This simplifies
fetching and setting route attributes from filters.
Also, there is now union bval which serves as an universal value holder
instead of private unions held separately by eattr and filter code.
2022-05-04 15:37:41 +02:00
Maria Matejka
c1194ab7ed
Protocols use EA_LITERAL_* to set attributes
2022-05-04 15:37:41 +02:00
Maria Matejka
0b871c1704
Moved filter value union to lib
2022-05-04 15:37:41 +02:00
Maria Matejka
7e86ff2076
All linpools use pages to allocate regular blocks
2022-04-06 18:14:08 +02:00
Maria Matejka
170b20701c
Converted Slab allocator to typed lists
2022-04-06 18:14:08 +02:00
Maria Matejka
ebd807c0b8
Slab allocator can free the blocks without knowing the parent structure
2022-04-06 18:14:08 +02:00
Maria Matejka
3a6eda995e
Typed lists for easier walking and stronger type checking
2022-04-06 18:14:08 +02:00
Ondrej Zajicek (work)
269bfff9bf
Lib: Allow use of 240.0.0.0/4 as a private range
...
There were several requests to allow use of 240.0.0.0/4 as a private
range, and Linux kernel already allows such routes, so perhaps we can
allow that too.
Thanks to Vincent Bernat and others for suggestion and patches.
2022-03-16 20:01:18 +01:00
Maria Matejka
c53f547a0b
Printf variant with a result allocated inside a pool / linpool
2022-03-15 11:21:46 +01:00
Maria Matejka
3c42f7af6a
Slab memory allocator unit test
2022-03-14 17:37:56 +01:00
Maria Matejka
83d9920f90
Merge commit '5cff1d5f' into haugesund
...
Conflicts:
proto/bgp/attrs.c
proto/pipe/pipe.c
2022-03-09 10:56:06 +01:00
Maria Matejka
9e60a1fbc3
Fixed resource initialization in unit tests
2022-03-09 10:30:42 +01:00
Maria Matejka
b90c9b164f
Linpools with pages fixed to the final page allocator version
2022-03-09 10:30:42 +01:00
Maria Matejka
eeec9ddbf2
Merge commit '0c59f7ff' into haugesund
2022-03-09 09:13:55 +01:00
Maria Matejka
0c59f7ff01
Revert "Bound allocated pages to resource pools with page caches to avoid unnecessary syscalls"
...
This reverts commit 7f0e598208
.
2022-03-09 09:13:31 +01:00
Maria Matejka
c20506dc07
Revert "fixup! Bound allocated pages to resource pools with page caches to avoid unnecessary syscalls"
...
This reverts commit bea582cbb5
.
2022-03-09 09:13:21 +01:00
Maria Matejka
1c7df2c240
Revert "Multipage allocation"
...
This reverts commit 6cd3771378
.
2022-03-09 09:13:20 +01:00
Maria Matejka
c78247f9b9
Single-threaded version of sark-branch memory page management
2022-03-09 09:10:44 +01:00
Maria Matejka
d814a8cb93
Replaced custom linpools in tests for the common tmp_linpool
2022-03-02 12:13:49 +01:00
Maria Matejka
48bf1322aa
Introducing an universal temporary linpool flushed after every task
2022-03-02 12:13:49 +01:00
Maria Matejka
2e8b8bfcc4
Static list initializer
2022-03-02 12:13:49 +01:00
Maria Matejka
d071aca7aa
Merge commit '2c13759136951ef0e70a3e3c2b2d3c9a387f7ed9' into haugesund
2022-03-02 10:01:44 +01:00