Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Path attributes builder #48

Merged
merged 98 commits into from
May 29, 2024
Merged

Path attributes builder #48

merged 98 commits into from
May 29, 2024

Commits on Feb 6, 2024

  1. WIP PathAttributesBuilder

    DRiKE committed Feb 6, 2024
    Configuration menu
    Copy the full SHA
    d16d5cc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3adb585 View commit details
    Browse the repository at this point in the history
  3. Add fn remove_attribute

    DRiKE committed Feb 6, 2024
    Configuration menu
    Copy the full SHA
    125948f View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2024

  1. Configuration menu
    Copy the full SHA
    9636412 View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2024

  1. Serialize route

    density215 committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    f082cbe View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d71103e View commit details
    Browse the repository at this point in the history
  3. make_route

    density215 committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    43ebbaa View commit details
    Browse the repository at this point in the history
  4. bytes::Bytes

    density215 committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    03b009f View commit details
    Browse the repository at this point in the history
  5. clippy & rustfmt

    density215 committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    f025e45 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    c637d37 View commit details
    Browse the repository at this point in the history
  7. WorkshopAttribute

    density215 committed Feb 13, 2024
    Configuration menu
    Copy the full SHA
    088fa8d View commit details
    Browse the repository at this point in the history

Commits on Feb 14, 2024

  1. Configuration menu
    Copy the full SHA
    49d6907 View commit details
    Browse the repository at this point in the history
  2. merge impl macros

    density215 committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    c4f2ef4 View commit details
    Browse the repository at this point in the history
  3. cleanup

    density215 committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    68d8235 View commit details
    Browse the repository at this point in the history
  4. cleanup

    density215 committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    10bb67c View commit details
    Browse the repository at this point in the history
  5. remove unused fn

    density215 committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    0b61d10 View commit details
    Browse the repository at this point in the history
  6. cleanup

    density215 committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    2df9a19 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    732a802 View commit details
    Browse the repository at this point in the history
  8. use more attributes.set

    density215 committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    14e9f21 View commit details
    Browse the repository at this point in the history

Commits on Feb 15, 2024

  1. remove AttrChangeSet

    density215 committed Feb 15, 2024
    Configuration menu
    Copy the full SHA
    d77fb9b View commit details
    Browse the repository at this point in the history
  2. varia

    density215 committed Feb 15, 2024
    Configuration menu
    Copy the full SHA
    8884944 View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2024

  1. Configuration menu
    Copy the full SHA
    2ef9caa View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4b05c9c View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2024

  1. single NLRI facilities

    density215 committed Feb 22, 2024
    Configuration menu
    Copy the full SHA
    28bd7f7 View commit details
    Browse the repository at this point in the history
  2. Workshop without Options

    density215 committed Feb 22, 2024
    Configuration menu
    Copy the full SHA
    adce9e2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1de1ac6 View commit details
    Browse the repository at this point in the history

Commits on Feb 26, 2024

  1. Configuration menu
    Copy the full SHA
    bf0b4cf View commit details
    Browse the repository at this point in the history
  2. clippy

    density215 committed Feb 26, 2024
    Configuration menu
    Copy the full SHA
    9bc915e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    912a530 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    17deeb6 View commit details
    Browse the repository at this point in the history
  5. Fix tests

    DRiKE committed Feb 26, 2024
    Configuration menu
    Copy the full SHA
    74a94fe View commit details
    Browse the repository at this point in the history
  6. Cleanup

    DRiKE committed Feb 26, 2024
    Configuration menu
    Copy the full SHA
    422c2dc View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    c565171 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    416814d View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    f2abf4b View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    5e567a7 View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2024

  1. Cleanup in UpdateBuilder

    DRiKE committed Feb 27, 2024
    Configuration menu
    Copy the full SHA
    f96a767 View commit details
    Browse the repository at this point in the history
  2. WIP new afisafi mod in bgp

    DRiKE committed Feb 27, 2024
    Configuration menu
    Copy the full SHA
    3d0eb2b View commit details
    Browse the repository at this point in the history

Commits on Feb 28, 2024

  1. Configuration menu
    Copy the full SHA
    ce8920f View commit details
    Browse the repository at this point in the history

Commits on Feb 29, 2024

  1. Configuration menu
    Copy the full SHA
    84c712a View commit details
    Browse the repository at this point in the history
  2. Display impl for Origin

    density215 committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    acdbb1e View commit details
    Browse the repository at this point in the history
  3. WIP AfiSafiParse trait

    DRiKE committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    5524cb3 View commit details
    Browse the repository at this point in the history
  4. pub the new communities

    density215 committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    9d1dfac View commit details
    Browse the repository at this point in the history
  5. fix builders

    density215 committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    8617b49 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    08b459f View commit details
    Browse the repository at this point in the history
  7. Merge remote-tracking branch 'refs/remotes/origin/path-attributes-bui…

    …lder' into path-attributes-builder
    DRiKE committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    580ef94 View commit details
    Browse the repository at this point in the history
  8. Test for generic iteration

    DRiKE committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    c7e6322 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    f0bf4c5 View commit details
    Browse the repository at this point in the history
  10. Cleanup

    DRiKE committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    d601004 View commit details
    Browse the repository at this point in the history
  11. Cleanup / reordering

    DRiKE committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    c7cb212 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    98f5f85 View commit details
    Browse the repository at this point in the history
  13. Introduce addpath! macro

    DRiKE committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    599fd1e View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2024

  1. Configuration menu
    Copy the full SHA
    cb2ea70 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d05afe8 View commit details
    Browse the repository at this point in the history
  3. Cleanup

    DRiKE committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    18673d5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2a3e541 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    401b755 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    655958c View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2024

  1. Configuration menu
    Copy the full SHA
    25ef23d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0f74284 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    14c8fd7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c436c4b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7f3bb29 View commit details
    Browse the repository at this point in the history
  6. Add Ipv4MplsVpnUnicast

    DRiKE committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    416ca6c View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    063eac0 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    b236e14 View commit details
    Browse the repository at this point in the history
  9. Add FlowSpecNlri

    DRiKE committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    4676217 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    7f44f2b View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    82173c7 View commit details
    Browse the repository at this point in the history

Commits on Mar 6, 2024

  1. Add L2VpnVpls

    DRiKE committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    5f3905d View commit details
    Browse the repository at this point in the history
  2. Add L2VpnEvpn

    DRiKE committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    6307b8b View commit details
    Browse the repository at this point in the history

Commits on Mar 19, 2024

  1. Adopt new AfiSafi / Nlri types throughout codebase

    This commit adapts the codebase to use the types and traits introduced
    in this branch. With that, several other concepts required changes, or
    became deprecated and were removed.
    
    The new types/traits include:
    - trait AfiSafi, describing something that is characterized by a certain
      AFI+SAFI combination;
    - trait AfiSafiNlri, an NLRI characterized by a certain AFI+SAFI
      combination;
    - enum AfiSafiType, describing all AFI+SAFI combinations we support;
    - enum Nlri<Octs>, now holding more explicit variants of dedicated
      types, a la Ipv4UnicastNlri, Ipv6UnicastNlri, etc.  For ADD-PATH,
      dedicated types are generated: Ipv4UnicastAddpathNlri, etc;
    - On UpdateMessage, `fn typed_announcements()` provides an iterator
      generic over tpyes implementing AfiSafiParse, thus yielding NLRI of
      these dedicated types instead of enum variants (which is still
      available via the `fn announcements());
    - UpdateBuilder is now generic over types that implement NlriCompose,
      making the adding/removing of announcements and withdrawals more
      straightforward. New generic helper methods include `fn
      add_announcements_from_pdu`.
    
    Other changes:
    - enum Safi is removed, as an SAFI by itself does not mean anything
      useful. We keep enum Afi and the new enum AfiSafiType. (The name
      `AfiSafi` is now used for the new trait);
    - the UpdateMessage does not hold an entire SessionConfig anymore, but a
      trimmed down version of the new type PduParseInfo. The SessionConfig
      is only used in the very first call to `from_octets()` or `parse()`;
    - MpReachNlri and MpUnreachNlri are not part of the PathAttribute enum
      anymore, we start treating them differently. Partly because with the
      new builders being generic, it would mean the enum PathAttribute must
      carry generic type info, and PaMap as well. All while we most often do
      not include the MP* attributes in those maps anyway;
    - the new bgp::nlri modules replaces everyhing that was in
      bgp::message::nlri
    
    Open issues / questions and other remarks:
    - on UpdateMessage, we had several methods to specifically get unicast
      announcements. We need to figure out if those are still wanted;
    - we need to figure out what the Workshop should look like. We can
      probably get rid of the afisafi_nlri module to a large extent;
    - the UpdateBuilder now puts all withdrawals and announcements in MP
      attributes, so nothing goes into the conventional sections in the PDU.
      Related tests are ignored for now. We need to figure out to what
      extent we like to support those conventional sections in the builder.
    DRiKE committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    e84a6af View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2024

  1. Configuration menu
    Copy the full SHA
    b1f4717 View commit details
    Browse the repository at this point in the history

Commits on Mar 22, 2024

  1. Reintroduction of BasicNlri etc

    DRiKE committed Mar 22, 2024
    Configuration menu
    Copy the full SHA
    b0d704b View commit details
    Browse the repository at this point in the history
  2. Switch over to inetnum crate

    DRiKE committed Mar 22, 2024
    Configuration menu
    Copy the full SHA
    431debf View commit details
    Browse the repository at this point in the history
  3. Fix tests

    DRiKE committed Mar 22, 2024
    Configuration menu
    Copy the full SHA
    22758a4 View commit details
    Browse the repository at this point in the history
  4. Clippy

    DRiKE committed Mar 22, 2024
    Configuration menu
    Copy the full SHA
    e4190fa View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    15afa31 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7e0feec View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    accd569 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    7539ee0 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    0e37d92 View commit details
    Browse the repository at this point in the history
  10. Add From impls for FlowSpecNlri

    DRiKE committed Mar 22, 2024
    Configuration menu
    Copy the full SHA
    6606341 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    c8b541c View commit details
    Browse the repository at this point in the history

Commits on Mar 25, 2024

  1. Configuration menu
    Copy the full SHA
    42e90d2 View commit details
    Browse the repository at this point in the history
  2. Make some NLRI related pub

    DRiKE committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    349923e View commit details
    Browse the repository at this point in the history
  3. Mark Nlri as Eq

    DRiKE committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    42d269b View commit details
    Browse the repository at this point in the history
  4. Remove pub fn iter_for_afi_safi

    DRiKE committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    98121c4 View commit details
    Browse the repository at this point in the history
  5. Introduce enum NlriType

    DRiKE committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    af12707 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    99f4667 View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2024

  1. this can go now

    density215 committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    ca54e23 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a996da4 View commit details
    Browse the repository at this point in the history
  3. Merge remote-tracking branch 'refs/remotes/origin/path-attributes-bui…

    …lder' into path-attributes-builder
    DRiKE committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    9484e51 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0b0bbf2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8786965 View commit details
    Browse the repository at this point in the history
  6. Make Update::typed_withdrawals consistent with ~announcements, fix bu…

    …lk test in UpdateBuilder
    DRiKE committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    d10f30d View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    de0f76e View commit details
    Browse the repository at this point in the history
  8. Fix test

    DRiKE committed Mar 26, 2024
    Configuration menu
    Copy the full SHA
    a6b0399 View commit details
    Browse the repository at this point in the history