Robert Varga [Thu, 14 Mar 2019 10:13:14 +0000 (11:13 +0100)]
Use ImmutableMap for PCEPErrors
This prevents coding mistakes like duplicate stores and makes
the search a bit more efficient.
Change-Id: I250a8d6a2934f25171183ae0da79c5bc93429a78
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 14 Mar 2019 09:40:47 +0000 (10:40 +0100)]
Fix checkstyle in pcep-segment-routing
This fixes the offences and flips the switch on.
JIRA: BGPCEP-715
Change-Id: Id7894f5c0f7a592ed7214debf09af3d74f46ad73
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 14:42:59 +0000 (15:42 +0100)]
Enforce checkstyle in bgp-linkstate
This fixes up a pile of warnings and flips the switch.
JIRA: BGPCEP-713
Change-Id: I0ed6c260558a4fee42c4432da4c137245984c42a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:25:22 +0000 (12:25 +0100)]
Fix enable checkstyle in bgp-flowspec
This fixes the violations and flips the switch on.
JIRA: BGPCEP-713
Change-Id: Ia1125469441ea17a8185976bf8a0cd2efab47822
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:28:59 +0000 (12:28 +0100)]
Fix SimpleFlowspecIpv4NlriParserTest checkstyle
This is just overly-long lines, reformat to fix it up.
Change-Id: I7daf64e26281c6e7bc4e78a579f13969b09c995c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 13:06:35 +0000 (14:06 +0100)]
Fix checkstyle in RedirectIpNextHopEcHandler
Simple offences, like long lines and extra whitespace.
Change-Id: Ib2b5e4fefe4c82073441fdb446d2c67805a69124
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:49:32 +0000 (12:49 +0100)]
Fix checkstyle in SimpleFlowspecTypeRegistry
This is just missing whitespace, fix that up.
Change-Id: I99856a89b57ed52478d896a7dc5194a616254025
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:48:43 +0000 (12:48 +0100)]
Fix checkstyle in TableTypeActivator
Simple case of long lines, reformat.
Change-Id: I45c3d1eb5892cf5ff37f3630aa7f8a8847e9c322
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:45:30 +0000 (12:45 +0100)]
Fix checkstyle in AbstractFlowspecNlriParser
- lambda indentation
- split overload methods
- wrong javadoc
Change-Id: I19a4a79474a3a9beb564185dc59e2549ce533abf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 14 Dec 2018 23:34:17 +0000 (00:34 +0100)]
Enforce bgp-rib-impl checkstyle
This patch fixes up remaining violations and flips the switch.
JIRA: BGPCEP-713
Change-Id: Idd37bff2d4156fc6b329302bde0e8eba82ca2efd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:16:13 +0000 (12:16 +0100)]
Fix RibImpl checkstyle
RIBImpl cannot really throw an exception, remove the declaration
and remove the corresponding catch block.
Change-Id: I54ebdcc33bf0c2163c646be36b79bb5658da6389
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:14:33 +0000 (12:14 +0100)]
Fix checkstyle in LocRibWriter
Just suppress the exception we are logging.
Change-Id: Iba51c10ee4c8034b803150c2a8c4c07fb0ff8981
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:12:42 +0000 (12:12 +0100)]
Fix checkstyle in BGPClusterSingletonService
- do not pass ribImpl around
- rename peers to groupPeers
- suppress warnings on our catch blocks
Change-Id: I5acb95829c4b7d5f802ba5bc34de37a3a1f8e893
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:08:15 +0000 (12:08 +0100)]
Fix checkstyle in BGPProtocolSessionPromise
Just suppress the exceptions we are catching here.
Change-Id: I28077afe6e45f238778561ec55dc197b5d972aa9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:03:26 +0000 (12:03 +0100)]
Fix checkstyle in BGPPeer
- rename session and selectionDeferralTimerSeconds by adding a
'current' prefix
- rename argument to match super declaration
- refactor session closing to a separate method with checkstyle
suppression
Change-Id: I1a47f3f184677ecd6166be0da31bfe67f7c543cb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 11:00:19 +0000 (12:00 +0100)]
Fix checkstyle in BGPPeerStateImpl
Rename arguments to not shadow fields.
Change-Id: Ide8ba08aaad590de861a872ebb429f9028ec396b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:58:19 +0000 (11:58 +0100)]
Fix checkstyle in CodecsRegistryImpl
Suppress warning on caught exception and properly log the codec
which caused the failure.
Change-Id: I3d92592c361bf02e264a4debd7da61fb8a328aad
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:55:51 +0000 (11:55 +0100)]
Fix checkstyle in BgpDeployerImpl
Rename local variable to prevent a clash and suppress warnings
on catch of exception.
Change-Id: I09c01201f59a7d5d676a62d529364dd525e801aa
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:52:49 +0000 (11:52 +0100)]
Fix checkstyle in ApplicationPeer
Move common parts of write/appear logic so they can be reused in
modify case, eliminating the need for fall-through.
Change-Id: I698c12ef992c5c5ae9abca2a8064a7d0c6e867f2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:43:22 +0000 (11:43 +0100)]
Fix checkstyle in BGPSessionStateImpl
This fixes field shadowing by adding a 'new' prefix.
Change-Id: I666c7475dfc6e0529ebbd47db9420019e3f8fe18
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:35:08 +0000 (11:35 +0100)]
Fix checkstyle in BGPSessionImplTest
Rename a local variable and properly assert mocked exception.
Change-Id: I9f5087852f8d6720b9e218debbf86a74edf0942e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:33:10 +0000 (11:33 +0100)]
Fix checkstyle in RIBSupportContextRegistry
Just move a method to keep overload methods together.
Change-Id: I0790b25224317a1502e771f7c2beefbd43e8697e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:18:45 +0000 (11:18 +0100)]
Fix checkstyle in AbstractBGPSessionNegotiator
- session refers to instance field
- supress Exception catches
- rename argument
Change-Id: I1647435e13b8ac62b578916faa8a4f5ad8b69ba3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:14:50 +0000 (11:14 +0100)]
Fix RIBImpl checkstyle
This fixes an overly-long line, making checkstyle happier.
Change-Id: Icbcda9f22c27ac38557c197344a1443c4e17e400
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:12:31 +0000 (11:12 +0100)]
Rename BGPRIBStateImpl
This fixes checkstyle and makes naming consistent, as this class
implements BGPRibState interface.
Change-Id: I995b16c6a7e1a3270f35ed73e57fcfc01d4b0dc1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:10:53 +0000 (11:10 +0100)]
Fix AbstractRIBTestSetup checkstyle
- do not mask exceptions
- rename test listener class
Change-Id: I003d2b67d064cfeda75a1bbf3275fb275baab5fc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:07:19 +0000 (11:07 +0100)]
Fix variable naming
This fixes variable names to comply with checkstyle, by either
changing their name or making them static.
Change-Id: I10242c5088d2d1b41321d98c6b3065e3e10e970b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 10:04:12 +0000 (11:04 +0100)]
Make connectSessionPromise() static
This method instantiates a new promise, hence it has no relationship
with the object from which it is being called. Fixes checkstyle
warnings.
Change-Id: I2b5ed703e9234c6faee6fa3ce582c418f0472487
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Matej Perina [Fri, 11 Jan 2019 09:05:01 +0000 (10:05 +0100)]
Remove OSGi dependency from bgp modules
This change makes modules reusable for projects that
do not use OSGi framework.
BgpPeer, AppPeer and RibImpl creation moved from
blueprint to BgpDeployerImpl.
Change-Id: I1d13ade6f5f8edeb9595ceb94017962401f44ed6
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 13 Mar 2019 09:24:48 +0000 (10:24 +0100)]
Remove superfluous warning
Route write path was missing a break; statement, leading to a
warning being emitted when things are perfectly fine.
Change-Id: I418d77ed2efef13c39ee4b40715c1708a45a42fc
JIRA: BGPCEP-869
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Mar 2019 12:30:26 +0000 (13:30 +0100)]
Enforce outbound parameter/capability length
Capability and Optional Parameter length fields are only single-byte
entities, limiting the size of capabilities to 255 bytes without
overflow.
Rather than emitting an invalid message, catch this error before
writeout so the operator may make adjustments to ensure this limit
is not exceeded.
JIRA: BGPCEP-867
Change-Id: Idecfcfa1e991aadbdf35cd221f9312dea0f6d0c0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Mar 2019 13:40:33 +0000 (14:40 +0100)]
Disable LLGR by default
LLGR is an unfinished feature and advertizing it by default means
we cannot fit our advertizement into the OPEN message. Disable it
by default, allowing users to test it when they need to.
JIRA: BGPCEP-867
Change-Id: Ife9c4c30125b06c3c8edfe7c884835fd6359d84a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Mar 2019 11:27:55 +0000 (12:27 +0100)]
Take our advertized tables into consideration in RibOut
Asymmetric configuration of peers can end up with us receiving
tables which we do not advertize towards a peer (but still
process them internally).
In such a case we want to limit adj-rib-out to the intersection
of our advertized and peer-advertized tables.
JIRA: BGPCEP-865
Change-Id: I1b8c0a951c2be513841daf3901ef2b530ed87bf3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 11 Mar 2019 10:35:10 +0000 (11:35 +0100)]
Add Errata 4493 error codes
When we send out a malformed header/update, we may end up receiving
a 1/0 or 3/0 error, which we'll fail to handle on DEBUG level because
we lack the corresponding definition.
Fix this by adding the appropriate references.
JIRA: BGPCEP-864
Change-Id: Ic7437bf34a5e3e6de84f98fc4fd57f8bd1b64bbf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 11 Mar 2019 10:04:32 +0000 (11:04 +0100)]
Guard against torn down peer
When we fail to look up peer we should not be throwing a NPE, as we
will end up with inconsistent TransactionChain.
Change-Id: Ia662d4fcb777cce5323fbad820466c9350ec039b
JIRA: BGPCEP-863
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Ajay Lele [Sat, 9 Mar 2019 00:01:48 +0000 (16:01 -0800)]
Fix race between BGP config topology DCN and topology-provider registration
Change-Id: I827aea0722d1fc97ed066eaeebc705b192f3beb0
Signed-off-by: Ajay Lele <ajayslele@gmail.com>
Robert Varga [Mon, 25 Feb 2019 11:19:49 +0000 (12:19 +0100)]
Fix EffectiveRibInWriter uptodate handling
One of the uptodate checking paths was passing entire attributes
rather than just the uptodate leaf. Fix that.
JIRA: BGPCEP-495
Change-Id: Ib66a34d9a97f76234bd2105cd2b985a03f78d7b7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 19 Dec 2018 18:47:51 +0000 (19:47 +0100)]
Add adj-rib-in llgr-stale flag
Add the ability to signal tables to be LLGR-stale, so that
effective-rib-in can propagate this state properly towards
local rib.
This flag is picked up by before we are applying input policies,
so that routes are transiently marked as LLGR_STALE. The policy
can then decide whether to filter the route or modify its
attributes.
Once the policy has been applied and the flag is set, we check
if NO_LLGR flag is present, and if that is the case, we remove
that route.
This mechanics is required to correctly allow policies to
see LLGR_STALE routes as well as potentially remove the NO_LLGR
flag.
JIRA: BGPCEP-495
Change-Id: Iac9815b29e97aee99a81d015194cd16fb362387d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Tom Pantelis [Thu, 31 Jan 2019 21:50:08 +0000 (16:50 -0500)]
Move BP xml to OSGI-INF
Change-Id: I328e95b0146376a9fa932135c0b17b757c71c998
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
jenkins-releng [Fri, 1 Feb 2019 13:06:28 +0000 (13:06 +0000)]
Bump versions by x.y.(z+1)
Change-Id: Ie9d42648fd46a0af79da14ca9a22ea873e3dc717
Signed-off-by: jenkins-releng <jenkins-releng@opendaylight.org>
Robert Varga [Tue, 29 Jan 2019 11:20:48 +0000 (12:20 +0100)]
Update RIB-based constants
There are QNames which we are using all over the place, make sure
we concentrate them in a utility holder. Also ensure constants are
suffixed, so we can import them concurrently.
Change-Id: Ie6618aeea776e8278cd7762560636d46ac64bb88
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 27 Jan 2019 21:54:15 +0000 (22:54 +0100)]
Rework table modification application
This reworks the way a table modification is applied so that we
examine and handle the attributes first -- hence we can understand
that a table has become LLGR_STALE and perform an overwrite.
This also cleans up some the code paths, so they can be optimized
in future, for example the logic for handling route targets.
JIRA: BGPCEP-495
Change-Id: Ic20f55e2fe985b41e971d084ae683eb574b9da33
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 27 Jan 2019 20:55:01 +0000 (21:55 +0100)]
Optimize whole-table overwrite
When a table is overwritten, we can treat it as a delete followed
by a fill of after-routes. This simplifies the logic quite a bit
and speeds it up. It also allows parts of it to operate on
before/after data rather than a DataTreeCandidateNode, hence it
is a reusable piece we'll need for LLGR_STALE nodes.
JIRA: BGPCEP-495
Change-Id: Ib84296652d84c4616d617583f14e5395058eac1c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 29 Jan 2019 08:08:03 +0000 (09:08 +0100)]
Do not pass explicit TableKey around
TableKey is derived from RIBSupport, hence if we are passing
RIBSupport somewhere, we do not need to pass TableKey, too.
Change-Id: I30b2196cbcf16201f5885c5af9d1f5b2fed8c8d7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Jan 2019 18:43:55 +0000 (19:43 +0100)]
Optimize deletion of entire adj-rib-in table
In case we are deleting an entire table, there is no point in
issuing delete requests for its children.
This refactor eliminates the delete operations, invokes checks
for route target table only once and updates the counters only
once.
This is a stepping stone towards being able to handle LLGR_STALE
routes in an atomic fashion.
JIRA: BGPCEP-495
Change-Id: I3f345cd8764ad83bb39724fbfd42a0bcdc16a009
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 28 Jan 2019 18:18:42 +0000 (19:18 +0100)]
Fix AS number comparison
Squashing AS number to an integer makes it possible for it to be
interpreted as a negative number -- which we then fail to squash
to AS_TRANS.
Fix this by forcing the comparison to happen on longs, which does
not suffer from this.
JIRA: BGPCEP-860
Change-Id: Iee10264aef22be70f34b2f122a063331bd0ec142
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Jan 2019 18:01:53 +0000 (19:01 +0100)]
Further cleanup of EffectiveRibInWriter
- prevent a potential NPE when empty change is received
- do not store modified children needlessly
- do not log delete duplicates
- do not mask optional to null
- separate out delete/modify/write table methods
Change-Id: I01b340fb3cb3ec0577ccd3856b79388115ff78df
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Jan 2019 16:56:56 +0000 (17:56 +0100)]
Add RIBNodeIdentifiers
We are allocating constant NodeIdentifiers across the board, some
efficiently, some inefficiently.
Move these constants to a single place where they can be maintained,
optimizing their users.
Change-Id: Ica9f7b299cbcb7f757f4fc7152c916bda58aa63f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Jan 2019 15:56:42 +0000 (16:56 +0100)]
Cleanup EffectiveRibInWriter
Cleanup argument formatting and remove duplicate key lookup,
as RIBSupport is freely available from RIBSupportContext.
Change-Id: Id99f3c553784647c3f28263b604da9c51864e5a6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Stephen Kitt [Tue, 22 Jan 2019 08:51:00 +0000 (09:51 +0100)]
Bump to mdsal 3.0.6
Change-Id: Ic974f195b06993a955e6884f235ec7befe83258a
Signed-off-by: Stephen Kitt <skitt@redhat.com>
Robert Varga [Sun, 20 Jan 2019 02:41:03 +0000 (03:41 +0100)]
Bump mdsal to 3.0.5
This aligns with odlparent-4.0.9 and yangtools-2.1.8.
Change-Id: Ie0e9a934feec1e204fe1de3a8cfb7f997a0d94bf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 20 Jan 2019 02:36:08 +0000 (03:36 +0100)]
Bump yangtools to 2.1.8
This align with odlparent-4.0.9.
Change-Id: Id057d68ae7cb82300e85aeee78cd18703b304cc7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Stephen Kitt [Fri, 18 Jan 2019 15:32:04 +0000 (16:32 +0100)]
Bump to odlparent 4.0.9
Change-Id: Ic87ccbe86130989e442ea9be6fe90bc882fbee7a
Signed-off-by: Stephen Kitt <skitt@redhat.com>
Claudio D. Gasparini [Fri, 11 Jan 2019 23:39:48 +0000 (00:39 +0100)]
Reuse attributes after apply import policy
Update attributes only if there has been any
change applied by import policy. Otherwise
attibutes are the same for the route that
has been already stored.
Change-Id: I288cea16badcd81ce4d5aef21214394421bb992c
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
Claudio D. Gasparini [Sun, 13 Jan 2019 13:26:48 +0000 (14:26 +0100)]
Handle table deletion under eff-rib-in
Improve handling of empty tables
Change-Id: If33ad3eea717288f743c8e74e8b5c76263dcc0a3
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
Claudio D. Gasparini [Fri, 11 Jan 2019 23:54:23 +0000 (00:54 +0100)]
Disable treat-as-withdraw on config example
given that tears down session with test using
exabgp.
Change-Id: I1d46f942c338c445ddd61591b457b915ceb66bac
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
Robert Varga [Thu, 10 Jan 2019 15:41:29 +0000 (16:41 +0100)]
Bump mdsal to 3.0.4
This realigns odlparent/yangtools/mdsal and brings in the latest
improvements.
Change-Id: Icd864396fb4c0190c5b1311abfd3e1a0f29d8208
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 10 Jan 2019 16:04:34 +0000 (17:04 +0100)]
Remove duplication concepts dependency
This fixes a maven warning.
Change-Id: I08f8b6509b4ba5ab2ceb252e44465e608e7fb3e2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 10 Jan 2019 15:34:06 +0000 (16:34 +0100)]
Bump yangtools to 2.1.7
This realigns odlparent/yangtools and brings in a few minor
improvements.
Change-Id: I28c6f2b5c2dea41f501fcc479f93eaadd8fc8df7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Stephen Kitt [Wed, 9 Jan 2019 14:54:51 +0000 (15:54 +0100)]
Bump to odlparent 4.0.8
Change-Id: Idd2e5a252daef4e17b114d36bad94d8383431d43
Signed-off-by: Stephen Kitt <skitt@redhat.com>
Claudio D. Gasparini [Tue, 8 Jan 2019 22:22:39 +0000 (23:22 +0100)]
Verify dataobject is Route
before casting when mapping from Normalized node
Change-Id: I4b28b50c42de2c577d325b1f42bd4c435c14592d
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
Robert Varga [Sun, 6 Jan 2019 23:27:03 +0000 (00:27 +0100)]
Fix feature dependencies
Even after migrations, features should depend on odl-mdsal-broker,
not dom-broker, as otherwise they do not correctly squash their
dependencies and they will fail to bring in the implementation.
Change-Id: I4633ed8dacc191f42fad27b8fd624beecf888d2f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 6 Jan 2019 22:34:29 +0000 (23:34 +0100)]
Use version range for odl-netty-4
odlparent features should use ranges, do precisely that.
Change-Id: I4a60dbde4edb2441eb9c0167720bdf7b88bf6831
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 6 Jan 2019 22:28:00 +0000 (23:28 +0100)]
Remove unneeded jaxb-api exclusion
odlparent-4.0.5+ is providing a correct definition, there is no
need to exclude it here.
Change-Id: I837eab31bf2ca4c4d0514051585942fcdbc1b601
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 6 Jan 2019 22:26:52 +0000 (23:26 +0100)]
Remove unneeded stax-api
Normal XML APIs are part of JRE, there is just no need to declare
them explicitly.
Change-Id: Ic02ac04d3b95544c813b34bea0698df6a0b6f8a5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 6 Jan 2019 22:25:37 +0000 (23:25 +0100)]
Use odl-apache-commons-lang3 feature
commons-lang3 is packaged by odlparent, use that instead packaging
it ourselves.
Change-Id: I7d2247ac243b6af8def05d9f708c35be5369c982
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Claudio D. Gasparini [Sat, 22 Dec 2018 23:35:40 +0000 (00:35 +0100)]
Move EffectiveRibInWriter to Binding independent
JIRA: BGPCEP-853
Change-Id: I96e4b858bf41a2c1fb44810c684dd1c9f1d27907
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
Robert Varga [Fri, 4 Jan 2019 02:43:53 +0000 (03:43 +0100)]
Add jaxb-api dependency
Java 11 does not ship jaxb-api, add an explicit dependency
to make compilation work.
Change-Id: I86e925e6efb4a186aed022237720a05de5d88d7d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Stephen Kitt [Wed, 2 Jan 2019 10:23:42 +0000 (11:23 +0100)]
Bump odlparent to 4.0.7
Change-Id: I7e3f22a4b0c5b0dde28dd8823527200b4e4d683d
Signed-off-by: Stephen Kitt <skitt@redhat.com>
Claudio D. Gasparini [Mon, 31 Dec 2018 19:58:53 +0000 (20:58 +0100)]
Fix ll graceful-restart-config
Wrong configuration has been introducer by
I0bf449c7dc1e08e4c68fcba5673f54de3a4fe0dd
breaking all integration test.
Fix typos and aling names under models
JIRA:BGPCEP-495
Change-Id: I49b46db181705fb05e31a7f8b3ba6b99de86735f
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
Robert Varga [Sun, 23 Dec 2018 22:36:11 +0000 (23:36 +0100)]
Bump mdsal to 3.0.3
This brings in latest fixes and alignes with odlparent-4.0.5.
Change-Id: I28cde8f1d88d1af96a48a8b6ae082334954df926
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 23 Dec 2018 07:03:25 +0000 (08:03 +0100)]
Bump to yangtools-2.1.6
This brings in latest fixes and odlparent-4.0.5 alignment.
Change-Id: I0b19dec51e35a6050df04622b6acb765bcad3509
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 20 Dec 2018 06:40:07 +0000 (07:40 +0100)]
Fix EffectiveRibInWriter.writeTable()
This patch fixes the case where the entire adj-rib-in table
is overwritten, so that such case leads to eff-rib-in table
being re-creeated from scratch.
This requires RIBSupport to be updated to allow extraction
on routes from data rather than just from DataObjectModification.
JIRA: BGPCEP-857
Change-Id: I6f88c4e30acb8498964cc9295f42c2ecbcab7251
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Stephen Kitt [Fri, 21 Dec 2018 09:09:31 +0000 (10:09 +0100)]
Bump to odlparent 4.0.5
Change-Id: I4de2360ccfe5c3c8d0f5f3d8d5ec9ccc637f3f31
Signed-off-by: Stephen Kitt <skitt@redhat.com>
Robert Varga [Thu, 20 Dec 2018 23:10:50 +0000 (00:10 +0100)]
Migrate AbstractRegistration/AutoCloseable
yangtools.concepts provides equivalent functionality, migrate
all components to use Registration concept instead of AutoCloseable.
Change-Id: I1c2646623d5dc6b4589cc931810ecbfcf055e50f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
odd22 [Mon, 17 Dec 2018 10:37:20 +0000 (11:37 +0100)]
Add BGP-LS Performance Metrics support
Allow BGP-LS to handle Performance Metrics as per draft "BGP-LS Advertisement
of IGP Traffic Engineering Performance Metric Extensions"
https://tools.ietf.org/html/draft-ietf-idr-te-pm-bgp-17
- Add new entries in bgp-linkstate.yang
- Add description, reference and units to delay and loss typedef
- Add new parser in LinkAttributesParser.java
- Add corresponding tests in LinkstateAttributeParserTest.java
JIRA: BGPCEP-855
Change-Id: I0b8cb1f34ede8675d33fcdc746b93d613ce8c484
Signed-off-by: odd22 <olivier.dugeon@orange.com>
Robert Varga [Mon, 17 Dec 2018 19:29:49 +0000 (20:29 +0100)]
Cleanup client dispatchers
In presence of Epoll support, each BGPDispatcherImpl is a heavy-weight
resource, which must be properly cleaned up.
Register all created dispatchers and tear them down when the test
finishes.
Change-Id: I3df7e72039a38f6f159e5a5cecf376d85529627a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 Dec 2018 19:22:51 +0000 (20:22 +0100)]
Fix AbstractAddPathTest resource cleanup
The tests were not calling super.tearDown() for some reason,
fix that up.
Change-Id: Ia8eea6d4315a1d16613b6e66376102e2f713cba1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 Dec 2018 16:23:09 +0000 (17:23 +0100)]
Enforce pcep-spi checkstyle
This is trivial conversion, removing reflection-based tests
and killing unneeded final's and splitting long lines.
Change-Id: I158060d63cb59c387428897af9dc47efaf56dcee
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 15 Dec 2018 19:01:09 +0000 (20:01 +0100)]
Do not instantiate executor service for tasks
Netty channel (which backs each BGPSession) is itself backed by
an EventLoop, which is an implementation of ScheduledExecutorService.
Take advantage of this to schedule the timers we need, instead
of leaking threads by allocating executor services again and
again.
Change-Id: I6bb4bf8d63abd0af0c8cf10012a905db8fa0975d
JIRA: BGPCEP-495
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 15 Dec 2018 17:53:42 +0000 (18:53 +0100)]
Propagate LLGR configuration
Add BGPPeer awareness of LLGR, with basic configuration and
negotiation, without following required mechanics yet.
JIRA: BGPCEP-495
Change-Id: I659fcdb35ffc9884f3cfb579d98495cee48d468d
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 15 Dec 2018 17:23:31 +0000 (18:23 +0100)]
Fix a checkstyle violation
This is a missing space, fix that.
Change-Id: Ia676cab69575ef5408268256a4d2e3920a340cf7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 15 Dec 2018 17:10:56 +0000 (18:10 +0100)]
Fix BGPPeer internal locking
onRouteRefreshMessage() is not synchronized and manipulates
adjRibOutListenerSet, which is a thread-safety hazard.
Fix by holding a lock for the duration needed, as well as
use a single remove() operation instead of get/remove combo.
Finally lower private method synchronization and replace it
with @GuardedBy annotations, so that it is understood those
methods are only ever called with the lock already held.
Change-Id: Idd509a345dfc3afa800e7456fb6d3bdbd1f367e7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 15 Dec 2018 10:54:30 +0000 (11:54 +0100)]
Fix more rib-impl checkstyle
This brings the number of violations below 60.
Change-Id: I177545b21da1f965a6db936341223a732560d4d0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 Dec 2018 12:56:56 +0000 (13:56 +0100)]
Fix some rib-impl warnigs
This patch addresses about half of the warnings generate rib-impl.
Change-Id: Ibfcddf215c0add72d9b13a192381b7390233cfcf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Matej Perina [Mon, 10 Dec 2018 14:51:05 +0000 (15:51 +0100)]
JUnit test for treat-as-withdraw procedures
add test to verify that parsing UPDATE message with
malformed attribute list result in converting:
- Nlri to withdrawn routes (parser-impl test)
- MP_REACH to MP_UNREACH (extensions/inet test)
JIRA: BGPCEP-359
Change-Id: Ia0ad989c15e1645746942a662e7da1d5a079b9ad
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Robert Varga [Fri, 14 Dec 2018 17:07:38 +0000 (18:07 +0100)]
Refactor StaleBestPathRoute
This removes the dependency on RIBSupport by forcing users to provide
proper lists. Since there are only two users, we can create specialized
instances, co-located with them, so that we do not have to cross through
SPI/implementation boundaries.
This allows saves quite a bit of memory in non-addpath case and also
improves code AddPathAbstractRouteEntry isolation, as we no longer
leak List<Long> all over the place.
Change-Id: I48b91d15df738095812736dfdeaa71d88b30598b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 14 Dec 2018 02:23:38 +0000 (03:23 +0100)]
Pass PathIds to StaleBestRoute
At the end of the day, StaleBestRoute needs to be refactored
so that we have two implementations: one for addpath, one for
non-addpath selection.
As a first step, make sure callers allocate PathIds and pass
them to StaleBestRoute.
Change-Id: Ief9a0280eec1bfa99530f3aedef8451a98ac35df
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 14 Dec 2018 00:35:40 +0000 (01:35 +0100)]
Convert treat-as-withdraw update messages
When we encounter a treat-as-withdraw error, we need to convert
the Update message to its withdraw equivalent.
JIRA: BGPCEP-359
Change-Id: I383571360f41a3cf874c55e13e6c4212f31522ff
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Matej Perina [Fri, 14 Dec 2018 14:04:10 +0000 (15:04 +0100)]
Provide a way to convert MpReach to MpUnreach
BGPUpdateParser needs the ability to convert MP_REACH attributes
to MP_UNREACH equivalents, potentially merging an existing
MP_UNREACH attribute into the mix.
This patch adds that capability by adding teach NlriRegistry to
perform the conversion.
JIRA: BGPCEP-359
Change-Id: I3f3330145b1e4851335f44a0f9183cd1b6c83ea5
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Matej Perina [Fri, 23 Nov 2018 09:32:16 +0000 (10:32 +0100)]
operational state of LLGR procedures
State of (LL)GR operations (restart time, enabled afi-safi...)
is now accessible in operational datastore.
JIRA: BGPCEP-809
Change-Id: If03b74e67750970a08cfdc34ae402cbe8283da15
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Matej Perina [Thu, 13 Dec 2018 09:12:44 +0000 (10:12 +0100)]
add interface for LLGR state
This implements dedicated interface for LLGR state.
JIRA: BGPCEP-495
Change-Id: I54597dd6461dfed4ea655213d406d8ed8cbb5bfb
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Robert Varga [Fri, 14 Dec 2018 03:34:02 +0000 (04:34 +0100)]
Convert NLRI to withdrawn routes
When we encounter a treat-as-withdraw condition, we need to convert
all reachability information to its withdraw equivalent.
This patch deals with those procedures for NLRI field, appending it
to any Withdrawn Routes field present.
JIRA: BGPCEP-359
Change-Id: I4471e28c1ab6bb8de6016d36911c693c5e897778
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Matej Perina [Sun, 9 Dec 2018 10:15:13 +0000 (11:15 +0100)]
Add decoder constraint based on treat-as-withdrawn configuration
Uses openconfig peer/peer-group -> error-handling ->
treat-as-withdrawn for configuring whether treat-as-withdrawn
procedures should take place.
JIRA: BGPCEP-359
Change-Id: I0fd34df7fbb500b4c7fa7012b2f0cfbef8c1f5e1
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Matej Perina [Mon, 10 Dec 2018 09:07:39 +0000 (10:07 +0100)]
treat-as-withdrawn documentation
Provides guide to enable treat-as-withdraw procedures.
JIRA: BGPCEP-359
Change-Id: I7b47580b960d5007416206094737c8a0ca6fe287
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Matej Perina [Sun, 9 Dec 2018 17:13:41 +0000 (18:13 +0100)]
treat-as-withdraw configuration example
Basic configuration for enabling threat-as-withdraw
procedures.
JIRA: BGPCEP-359
Change-Id: I3f3cab86e0858a58e7be1d2c2b9df342b8c03748
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Robert Varga [Thu, 13 Dec 2018 20:14:30 +0000 (21:14 +0100)]
Cleanup bgp-openconfig-api helpers
This cleans up the custom-coded helpers to work more efficiently,
fixing eclipse warnings at the same time.
Change-Id: I3724a478b73e27382bc1f49766603e16a92396e5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 Dec 2018 22:49:45 +0000 (23:49 +0100)]
Add LLGR restart utilities
This adds utilities for dealing with LLGR capabilities and
advertizements.
JIRA: BGPCEP-495
Change-Id: I34a43270af8792f45e4a9c808eaa45febf1f7d7e
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Matej Perina [Thu, 13 Dec 2018 08:58:18 +0000 (09:58 +0100)]
Teach BgpSessionImpl about graceful restart Mode
This adds API to request graceful restart operational mode.
JIRA: BGPCEP-809
Change-Id: I5f840b167eb635ee10af9570dce9b1dbd71e591b
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
Matej Perina [Fri, 7 Dec 2018 09:52:17 +0000 (10:52 +0100)]
long-lived graceful restart configuration example
Provide basic ll-graceful-restart configuration within
config-example module/feature.
JIRA:BGPCEP-495
Change-Id: I0bf449c7dc1e08e4c68fcba5673f54de3a4fe0dd
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>