Skip to content

Releases: ipdk-io/networking-recipe

P4CP Release v3.4.0

26 Feb 19:05
a236570
Compare
Choose a tag to compare

What's Changed

Breaking change

  • Updated to use stratum-deps v1.3.5, which makes re2 an independent component

mev-ts-2.0

  • Pin workflow scripts to Ubuntu-22.04 (#722) by @5abeel in #744
  • Update codeowners file by @ffoulkes in #740
  • Bump nosborn/github-action-markdown-cli from 3.3.0 to 3.4.0 by @dependabot in #741
  • Bump actions/setup-go from 5.0.2 to 5.3.0 by @dependabot in #742
  • Update codeowners by @5abeel in #745
  • Update Stratum submodule for vPort gNMI feature support by @5abeel
  • Update workflow file to use stratum-deps-v1.3.5 by @5abeel in #746
  • update Stratum submodule for TDI ID Mapper bug fix by @5abeel in #750

Full Changelog: v3.3.0...v3.4.0

P4CP Release v3.3.0

27 Feb 17:48
Compare
Choose a tag to compare

What's Changed

mev-ts-1.9

Full Changelog: v3.2.0.0...v3.3.0

P4CP Release v3.2.0.0

22 Aug 16:27
2e90647
Compare
Choose a tag to compare

Highlights

  • Added ES2K and DPDK unit test suites for the ovs-p4rt component.
  • Updated module requirements for the P4Runtime Python wheel.

Revision History

mev-ts-1.7 (contd)

mev-ts-1.8

  • [ovsp4rt] Add comment headers to public functions by @ffoulkes in #580
  • Update ovs submodule reference by @ffoulkes in #582
  • Update P4Info.txt artifact for unit testing by @5abeel in #583
  • [ovsp4rt] Annotate ovsp4rt.cc by @ffoulkes in #581
  • Script to generate p4info_text.h from p4Info.txt by @ffoulkes in #584
  • [ovsp4rt] Specify tunnel type in unit tests by @ffoulkes in #587
  • [ovsp4rt] Refine preprocessor conditionals by @ffoulkes in #586
  • [ovsp4rt] Export list of unit tests to parent scope by @ffoulkes in #588
  • [ovsp4rt] Add prepare_fdb_smac_entry_test by @ffoulkes in #589
  • [ovsp4rt] Improve fdb_smac_entry_test by @ffoulkes in #590
  • [ovsp4rt] Implement fdb_tx_vlan_entry_test by @ffoulkes in #592
  • [ovsp4rt] Implement fdb_rx_vlan_entry_test by @ffoulkes in #593
  • [ovsp4rt] Split prepare_l2_to_tunnel_test into two tests by @ffoulkes in #594
  • [ovsp4rt] Implement vxlan_decap_mod_entry_test by @ffoulkes in #595
  • [ovsp4rt] Remove scenarios.md file by @ffoulkes in #596
  • [ovsp4rt] Unit test template file by @ffoulkes in #597
  • [ovsp4rt] Streamline unit test cmake listfile by @ffoulkes in #600
  • [ovsp4rt] Implement tunnel_term_v6_table_test by @ffoulkes in #598
  • [ovsp4rt] Implement tunnel_term_v4_table_test by @ffoulkes in #599
  • [ovsp4rt] Implement fdb_tx_vxlan_entry_test by @ffoulkes in #602
  • [ovsp4rt] Implemented fdb_tx_geneve_entry_test by @ffoulkes in #603
  • [ovsp4rt] Implement rx_tunnel_v4_table_test by @ffoulkes in #605
  • [ovsp4rt] Implement vlan_pop_table_test by @ffoulkes in #604
  • [ovsp4rt] Update unit_test_template by @ffoulkes in #606
  • [ovsp4rt] Implement base_table_test class by @ffoulkes in #591
  • [ovsp4rt] Update tunnel_term_table tests with BaseTableTest class by @ffoulkes in #609
  • [ovsp4rt] Implement rx_tunnel_v6_table_test by @ffoulkes in #607
  • [ovsp4rt] Eliminate --check_src_port option by @ffoulkes in #610
  • [ovsp4rt] Implement EncodeTunnelId() function by @ffoulkes in #611
  • [ovsp4rt] Revise geneve and vxlan encap tests by @ffoulkes in #612
  • [ovsp4rt] Update tests to use BaseTableTest class by @ffoulkes in #613
  • [ovsp4rt] Support 24-bit VNIs in unit tests by @ffoulkes in #614
  • [ovsp4rt] Add methods to core test classes by @ffoulkes in #621
  • [ovsp4rt] Update fdb_rx_vlan_entry_test by @ffoulkes in #623
  • [ovsp4rt] Update fdb_tx_geneve_entry_test by @ffoulkes in #624
  • [ovsp4rt] Implement dst_ip_mac_map_table_test by @ffoulkes in #625
  • [ovsp4rt] Implement src_ip_mac_map_table_test by @ffoulkes in #626
  • [ovsp4rt] Implement src_port_table_test by @ffoulkes in #627
  • [ovsp4rt] Rename tests for consistency by @ffoulkes in #628
  • [ovsp4rt] Implement geneve_decap_mod_table_test by @ffoulkes in #629
  • [ovsp4rt] Minor improvements to vxlan_decap_mod_entry_test by @ffoulkes in #630
  • [ovsp4rt] Implement vlan_push_mod_table_test by @ffoulkes in #631
  • [ovsp4rt] Update unit test template by @ffoulkes in #622
  • [ovsp4rt] Base class for tunnel tests by @ffoulkes in #633
  • [ovsp4rt] Update geneve_encap_v4_table_test by @ffoulkes in #634
  • [ovsp4rt] Implement vxlan_decap_mod_vlan_push_test by @ffoulkes in #635
  • [ovsp4rt] Implement geneve_encap_v6_vlan_pop_test by @ffoulkes in #636
  • Fix compile error in geneve_encap_v4_table_test by @ffoulkes in #642
  • [ovsp4rt] Update unit test template by @ffoulkes in #637
  • [ovsp4rt] Implement tx_acc_vsi_table_test by @ffoulkes in #638
  • [ovsp4rt] Rename unit tests by @ffoulkes in #639
  • [ovsp4rt] Make TODO comments easier to grep by @ffoulkes in #640
  • [ovsp4rt] Update fdb_tx_vxlan_entry_test by @ffoulkes in #641
  • [ovsp4rt] Update fdb_tx_geneve_entry_test by @ffoulkes in #644
  • [ovsp4rt] Update unit tests for wide VNIs by @ffoulkes in #643
  • [ovsp4rt] Rename BaseTunnelTest to IpTunnelTest by @ffoulkes in #645
  • [ovsp4rt] Enable unit test code coverage measurement by @ffoulkes in #654
  • [ovsp4rt] Implement geneve_decap_mod_vlan_push_test by @ffoulkes in #655
  • [ovsp4rt] Update geneve_encap_v4_vlan_pop_test by @ffoulkes in #646
  • [ovsp4rt] Update vxlan_encap_v4_table_test by @ffoulkes in #647
  • [ovsp4rt] Update vxlan_encap_v4_vlan_pop_test by @ffoulkes in #648
  • [ovsp4rt] Update geneve_encap_v6_table_test by @ffoulkes in #649
  • [ovsp4rt] Update vxlan_encap_v6_table_test by @ffoulkes in #651
  • [ovsp4rt] Update vxlan_encap_v6_vlan_pop_test by @ffoulkes in #650
  • [ovsp4rt] Revise vlan_pop_mod_table_test to use BaseTableTest by @ffoulkes in #656
  • [ovsp4rt] Unit test housekeeping by @ffoulkes in #657
  • [ovsp4rt] Revise l2_to_v4_tunnel_test to use BaseTableTest by @ffoulkes in #652
  • [ovsp4rt] Revise l2_to_v6_tunnel_test to use BaseTableTest by @ffoulkes in #653
  • [ovsp4rt] Adapt fdb_smac_entry_test to BaseTableTest by @ffoulkes in #658
  • [ovsp4rt] Adapt fdb_tx_vlan_entry_test to BaseTableTest by @ffoulkes in #659
  • [ovsp4rt] Update FunctionsWithUnitTests spreadsheet by @ffoulkes in #660
  • [ovsp4rt] Restructure unit tests folder by @ffoulkes in #661
  • [ovsp4rt] Make function prototypes extern by @ffoulkes in #665
  • [ovsp4rt] Add 20-bit VNI (tunnel_id) test case by @ffoulkes in #664
  • Fi...
Read more

P4CP Release v3.1.0.0 (baseline)

17 Jul 22:18
0a4e789
Compare
Choose a tag to compare
Pre-release

Baseline for canonical releases.

Highlights

  • Remove support for Linux Networking V2.
  • Update Linux Networking V3.
  • Introduce ovs-p4rt unit tests.

Revision History

mev-ts-1.5

  • Add support for combined recipe and linux networking version 3 by @nupuruttarwar in #425
  • Update ptf-tests submodule reference by @5abeel in #436
  • Fix condition for insecure mode check in sgnmi_cli by @5abeel in #439
  • Update p4runtime proto version to 2024.3.0 by @ffoulkes
  • Update Stratum submodule reference to reduce log noise reduction by @5abeel in #442
  • Check if entry exists before inserting to avoid duplicate entry errors by @nupuruttarwar in #444
  • Fix ES2K library directory list by @ffoulkes in #446
  • Define Linux Networking version for ovs-p4rt by @ffoulkes in #447
  • Remove stratum dependencies from setup directory by @ffoulkes in #331
  • Rename libp4_role_config to libp4_role_config_proto by @ffoulkes in #449

mev-ts-1.6

mev-ts-1.7

New Contributors

Full Changelog: v0.9.1...v3.1.0.0

IPDK v24.01 Release

18 Jan 08:30
644181e
Compare
Choose a tag to compare

Networking Recipe

The networking recipe enhances and extends the functionality enabled in 23.07
release.

Features and enhancements

  • Exception packet handling - Enhanced Linux Networking with multiple VNI
    support, port to bridge association and VLAN traffic offload (Intel IPU E2100
    target only).
  • Link Aggregation Group (LAG) - Supports active-backup use case of LAG on IDPF
    interfaces done via bonding driver. This LAG interface is used only for underlay
    connectivity in Exception packet handling feature. (Intel IPU E2100 target only).
  • Packet IO - Facilitates the exchange of packets between control plane
    applications and P4 dataplane (Intel IPU E2100 target only).
  • Indexed and direct meters in policer mode - Metering along with policer
    allows the users to determine the amount of data used and then control the
    usage. (Intel IPU E2100 target only).
  • Security enhancements
    • Upgrade from OpenSSL 1.1.1x to 3.x
    • Library updates to address security issues
      • Upgraded gRPC to 1.59.2 to address CVE-2023-33953, CVE-2023-4785
      • Upgraded protobuf to version 25.0
      • Upgraded abseil-cpp to version 20230802.0
      • Upgraded zlib to version 1.3
  • Build script updates
  • Documentation updates
  • Bug fixes

Limitations

  • Exception packet handling feature limitations:
    • VLAN configuration on OvS is supported only for NATIVE-TAG and NATIVE-UNTAG
      modes.
    • Physical port's port representor should be added as the 1st port in Tunnel
      TEP bridge.
    • Only OvS bridges are supported
    • Configure p4rt-ctl runtime rules before OvS configuration.
    • Double vlan tag is not supported.
    • For VxLAN underlay connectivity, IPv6 Link Local as nexthop is not
      supported.
    • For non FRR usecase, add a route with remote TEP IPv4/IPv6 as nexthop.
    • IPv4-in-IPv6 and IPv6-in-IPv4 is not supported.
    • VXLAN destination port should always be standard port i.e. 4789 to satisfy
      parser limitation.
    • Any ofproto rules altering FDB learning on OVS are not supported.
    • East-west traffic for fast path is not supported.
    • Local IP for VxLAN configuration need to be provided.
  • Link Aggregation Group(LAG) feature limitations:
    • LAG configuration to be done via bonding driver
    • LAG configuration mode supported from infrap4d is active-backup
    • For active-backup at least 2 links should be part of one lag group
    • ECMP and LAG functionality are mutually exclusive, they cannot co-exist
      in the same .p4 profile
    • Number of nexthop table entries cannot go beyond 8K because nexthop table
      is of type WCM and hardware limits the no. of entries to 8K.
    • To encap VxLAN outer header for non underlay LAG interfaces, we need to
      manually add entries in tx_lag_table with action as bypass.
    • Underlay LAG interface/members should not be associated with any OvS bridge
  • Packet IO feature limitations:
    • Supports maximum of 2 vports and each port supports maximum of 4 rx and tx
      queues

IPDK v23.07 Release

19 Jul 15:59
5662b8a
Compare
Choose a tag to compare

Networking Recipe

Feature support

  • Re-architecture of the Networking Recipe. The recipe is now modular and
    launched as the infrap4d process
  • Support for underlay traffic hashing with ECMP
  • Support for dynamic underlay traffic via FRR, including routes learned with
    ECMP
  • Flow dump support (including direct counters)
  • TLS enablement to authenticate gRPC traffic

Limitations

  • Linux Networking limitations are summarized here:
    https://github.com/ipdk-io/networking-recipe/blob/main/p4src/linux_networking/README_LINUX_NETWORKING.md#limitations
  • Unable to delete OVS bridge using command ovs-vsctl del-br while actively
    running traffic. User needs to stop all the networking recipe processes to
    proceed
    with bridge deletion
  • Flow dump & counters: A table-id/counter-id=0 is not yet supported
  • TLS feature: Custom certificate location is unsupported for P4RT gRPC client.
    Certificates are expected in default location (/usr/share/stratum/certs)
  • TLS feature: If infrap4d is operating in insecure mode, gRPC clients may fail
    connecting
    to the server. Move the certificates out of the default location
    (/usr/share/stratum/certs/ folder) in order to use insecure communication
    between gRPC clients and server