Maria Matejka
1493695c6b
Merge commit 'f15f2fcee7eeb5a100bd204a0e67018e25953420' into haugesund
2022-05-30 17:37:08 +02:00
Maria Matejka
7b0c89a47f
Merge commit 'f2e725a76882ba6b75c3ce4fb3c760bd83462410' into haugesund
2022-05-30 17:27:03 +02:00
Maria Matejka
41508ceac3
Merge commit '1c30b689ddd032ef8000fb7836348a48ba3184ff' into haugesund
2022-05-30 17:26:25 +02:00
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
f15f2fcee7
Moved nexthop from struct rta to extended attribute.
...
This doesn't do anything more than to put the whole structure inside
adata. The overall performance is certainly going downhill; we'll
optimize this later.
Anyway, this is one of the latest items inside rta and in several
commits we may drop rta completely and move to eattrs-only routes.
2022-05-26 12:34:26 +02:00
Maria Matejka
f2e725a768
All outstanding MPLS label stacks are stored as adata
2022-05-05 19:28:56 +02:00
Maria Matejka
1c30b689dd
Moved route source attribute (RTS_*) to eattrs
2022-05-04 15:39:53 +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