diff --git a/README.md b/README.md
index d6c364287..b34c609e0 100644
--- a/README.md
+++ b/README.md
@@ -1,190 +1,32 @@
-
+> See [README.stratum.md](README.stratum.md) for the original README file.
-
-
-
+## Background
-# Stratum - Enabling the era of next-generation SDN
+In January 2025, Intel decided to roll the IPDK networking-recipe `main`
+branch (and its submodules) back to their `mev-ts-1.9` release
+(Sep 30, 2024), effectively discarding the work I had done since then.
+This fork allows me to keep tinkering without stepping on their toes.
-Stratum is an open source silicon-independent switch operating system for
-software defined networks. It is building an open, minimal production-ready
-distribution for white box switches. Stratum exposes a set of next-generation
-SDN interfaces including P4Runtime and OpenConfig, enabling interchangeability
-of forwarding devices and programmability of forwarding behaviors. Current
-support includes Barefoot Tofino and Broadcom Tomahawk devices, as well as the
-bmv2 software switch.
+## Contents
-Build status (main): [](https://circleci.com/gh/stratum/stratum/tree/main)
-[](https://codecov.io/gh/stratum/stratum)
+This repository is a fork of . It is a
+submodule of .
-# Documentation
+The `ffoulkes` branch was imported from .
+It contains the changes made for IPDK.
-## Getting Started with SDN / P4 / Stratum
+Its baseline is
+[IPDK Stratum v3.3.0.0](https://github.com/ipdk-io/stratum-dev/releases/tag/v3.3.0.0).
-If you're completly new to the world of P4 and are looking for step-by-step
-instructions with batteries included, the
-[NG-SDN](https://github.com/opennetworkinglab/ngsdn-tutorial) tutorial is a good
-starting point. For material more focused on P4 as a language, have a look at
-the [p4lang](https://github.com/p4lang/tutorials) tutorials. Finally, there is
-the "Software-Defined Networks: A Systems Approach" book
-([HTML](https://sdn.systemsapproach.org/)) for comprehensive coverage of SDN.
-Also see the chapter about
-[Stratum](https://sdn.systemsapproach.org/stratum.html#thin-switch-os) in it.
+## Tags
-## Table of Contents
-### Development
+- `idpk-base` marks the point at which IPDK development diverged from the
+ Stratum `main` branch.
+
+ Subsequent changes to Stratum `main` were cherry-picked into the IPDK branch
+ in 2023 and 2024, and are part of the `ffoulkes` branch.
-- [Code of Conduct](/CODE_OF_CONDUCT.md)
-- [Contribution Guidelines](/CONTRIBUTING.md)
-- [IDE Setup](https://github.com/stratum/stratum/wiki/IDE-setup-for-development)
-- [Release Plan](/stratum/docs/release_plan.md)
-- [Logging Guide](/stratum/docs/logging_guide.md)
-- [PHAL Development Tutorial](/stratum/docs/phal_development_tutorial.md)
-- [Stratum Configurators Design Document](/stratum/docs/configurators.md)
-- [Stratum PHAL Overview (Physical Hardware Access Layer)](/stratum/docs/phal.md)
-
-### Platforms
-
-- [Tofino](/stratum/hal/bin/barefoot/README.md)
- - [Building Stratum for Barefoot Tofino based switches](/stratum/hal/bin/barefoot/README.build.md)
- - [Running Stratum on a Barefoot Tofino based switch](/stratum/hal/bin/barefoot/README.run.md)
- - [Testing Stratum on a Barefoot Tofino based switch](/stratum/hal/bin/barefoot/README.test.md)
- - [Pushing a pipeline to a Barefoot Tofino based switch](/stratum/hal/bin/barefoot/README.pipeline.md)
-- [Broadcom](/stratum/hal/bin/bcm/standalone/README.md)
- - [How to Add a Dataplane Feature to Stratum (BCM)](/stratum/docs/extenting_stratum_bcm.md)
-- [Intel NP4](/stratum/hal/bin/np4intel/docker/README.md)
-- [bmv2](/stratum/hal/bin/bmv2/README.md)
-- [Dummy Switch](/stratum/hal/bin/dummy/README.md)
-
-### Tools
-
-- [gNMI CLI Tool](/stratum/tools/gnmi/README.md)
-- [Tofino Pipeline Builder](/stratum/hal/bin/barefoot/README.pipeline.md#stratum-bfpipelineconfig-format-and-the-bfpipelinebuilder)
-- [Stratum-Enabled Mininet](/tools/mininet/README.md)
-- [P4Runtime write request replay tool](/stratum/tools/stratum_replay/README.md)
-- [ChassisConfig Migrator](/stratum/hal/config/chassis_config_migrator.cc)
-- [PHAL CLI Tool](/stratum/hal/lib/phal/phal_cli.cc)
-- [ONLP CLI Tool](/stratum/hal/lib/phal/onlp/onlp_cli.cc)
-- [ONLP PHAL CLI Tool](/stratum/hal/lib/phal/onlp/onlp_phal_cli.cc)
-
-### Other Documentation
-
-- [SD-Fabric](https://docs.sd-fabric.org)
-- [Trellis + Stratum example](/tools/mininet/examples/trellis/README.md)
-- [Continuous Certification Program (CCP)](https://wiki.opennetworking.org/display/COM/Stratum+Continuous+Certification+Program)
-- [Community Channels](https://github.com/stratum/stratum/wiki/Discuss)
-- [Talks](https://github.com/stratum/stratum/wiki/Talks)
-- [Test Vectors](https://github.com/stratum/testvectors/blob/master/docs/testvectors_overview.md)
-- [Stratum example pipelines](/stratum/pipelines/README.md)
- - [Main FPM pipeline](/stratum/pipelines/main/README.md)
-- [Supported gNMI paths](/stratum/docs/gnmi/supported-paths.md)
-- [Config Monitoring Service](/stratum/docs/gnmi/README.md)
-- [Transponder Abstraction Interface (TAI)](/stratum/docs/tai/README.md)
-- [P4C backend](/stratum/p4c_backends/README.md)
-- [CDLang gNMI Compliance Definition Language](/stratum/testing/cdlang/g3doc/cdlang.md)
-- [gNMI/OpenConfig Contract Definition Language tools](/stratum/testing/cdlang/README.md)
-- [gNMI Test Scenarios](/stratum/testing/scenarios/README.md)
-- [SSL/TLS Support and Security](/stratum/lib/security/README.md)
-
-# Component Overview
-
-
-
-[P4Runtime](https://p4.org/p4-runtime) provides a flexible mechanism for
-configuring the forwarding pipeline on a network switch.
-
-[gNMI](https://github.com/openconfig/reference/tree/master/rpc/gnmi) is a
-framework for network device management that uses gRPC as the transport
-mechanism.
-
-[SDKLT](https://github.com/Broadcom-Network-Switching-Software/SDKLT) is used
-to program fixed-pipeline switches using the Tomahawk chip from Broadcom.
-
-# Supported Devices
-
-## Tofino
-
-- APS Networks BF2556X-1T
-- APS Networks BF6064X-T
-- Delta AG9064v1
-- Edgecore Wedge100BF-32QS
-- Edgecore Wedge100BF-32X
-- Edgecore Wedge100BF-65X
-- Inventec D5254
-- Inventec D5264Q28B
-- Inventec D10056
-- Inventec D10064
-- Netberg Aurora 610
-- Netberg Aurora 710
-- Netberg Aurora 750
-
-*Note: Pre-built Stratum binaries for Tofino are available for recent Barefoot
-SDE releases in the [Releases](https://github.com/stratum/stratum/releases/latest)
-page. Vendors, customers, and researchers with access to the Barefoot SDE can
-build Stratum themselves. For access to the SDE, please contact an Intel
-representative.*
-
-## Broadcom
-
-- Tomahawk (SDKLT, OpenNSA, SDK6)
- - Edgecore AS7712-32X
- - Edgecore AS7716-24XC Cassini
- - Dell Z9100
- - Inventec D7032
- - QCT QuantaMesh T7032-IX1
-- Tomahawk+ (SDK6)
- - Edgecore AS7716-24SC Cassini
- - Inventec D7054
-- Tomahawk2 (OpenNSA, SDK6)
-- Tomahawk3 (SDK6)
-- Trident2 (OpenNSA, SDK6)
- - Edgecore AS6712
- - Inventec D6254
-
-*Note: Pre-built Stratum binaries for SDKLT and OpenNSA are available in the
-[Releases](https://github.com/stratum/stratum/releases/latest) page. Vendors and
-customers with a Broadcom SLA can build Stratum themselves using the Broadcom
-Switch SDK (SDK6); versions 6.5.17 and 6.5.19 are tested. If you would like to
-use Stratum with SDK6 and you do not have an SLA with Broadcom, contact a
-Broadcom representative or your switch vendor.*
-
-## Smart NIC
-
-- Intel PAC N3000
-
-## Software Switches
-
-- bmv2
-- dummy
-
-# Source code
-
-This repository contains source code for a reference implementation of
-the P4Runtime and gNMI services, that serves as the hardware abstraction layer
-for a network switch. It has been successfully prototyped at Google, running on
-production hardware on a data center network subsystem.
-
-# Development environment
-
-We provide a script to create a Docker development environment for Stratum.
-
-To start the container, run the following in your `stratum` directory:
-
- ./setup_dev_env.sh
-
-The script will build a Docker image using Dockerfile.dev and run a bash session
-in it. This directory will be mounted in the Docker image and you will be able
-to run git, edit code, and build Stratum / run tests using Bazel.
-
-For more information, you can see a complete list of arguments by running:
-`setup_dev_env.sh -h`
-
-If you are using Docker on Linux, make sure that you can use Docker as a
-non-root user, otherwise you will not be able to run setup_dev_env.sh:
-
- sudo usermod -aG docker $USER
+- `mev-ts-1.9` marks the point at which the `ffoulkes` branch diverged from
+ the IPDK `main` branch.
diff --git a/README.stratum.md b/README.stratum.md
new file mode 100644
index 000000000..d6c364287
--- /dev/null
+++ b/README.stratum.md
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+# Stratum - Enabling the era of next-generation SDN
+
+Stratum is an open source silicon-independent switch operating system for
+software defined networks. It is building an open, minimal production-ready
+distribution for white box switches. Stratum exposes a set of next-generation
+SDN interfaces including P4Runtime and OpenConfig, enabling interchangeability
+of forwarding devices and programmability of forwarding behaviors. Current
+support includes Barefoot Tofino and Broadcom Tomahawk devices, as well as the
+bmv2 software switch.
+
+Build status (main): [](https://circleci.com/gh/stratum/stratum/tree/main)
+[](https://codecov.io/gh/stratum/stratum)
+
+# Documentation
+
+## Getting Started with SDN / P4 / Stratum
+
+If you're completly new to the world of P4 and are looking for step-by-step
+instructions with batteries included, the
+[NG-SDN](https://github.com/opennetworkinglab/ngsdn-tutorial) tutorial is a good
+starting point. For material more focused on P4 as a language, have a look at
+the [p4lang](https://github.com/p4lang/tutorials) tutorials. Finally, there is
+the "Software-Defined Networks: A Systems Approach" book
+([HTML](https://sdn.systemsapproach.org/)) for comprehensive coverage of SDN.
+Also see the chapter about
+[Stratum](https://sdn.systemsapproach.org/stratum.html#thin-switch-os) in it.
+
+## Table of Contents
+### Development
+
+- [Code of Conduct](/CODE_OF_CONDUCT.md)
+- [Contribution Guidelines](/CONTRIBUTING.md)
+- [IDE Setup](https://github.com/stratum/stratum/wiki/IDE-setup-for-development)
+- [Release Plan](/stratum/docs/release_plan.md)
+- [Logging Guide](/stratum/docs/logging_guide.md)
+- [PHAL Development Tutorial](/stratum/docs/phal_development_tutorial.md)
+- [Stratum Configurators Design Document](/stratum/docs/configurators.md)
+- [Stratum PHAL Overview (Physical Hardware Access Layer)](/stratum/docs/phal.md)
+
+### Platforms
+
+- [Tofino](/stratum/hal/bin/barefoot/README.md)
+ - [Building Stratum for Barefoot Tofino based switches](/stratum/hal/bin/barefoot/README.build.md)
+ - [Running Stratum on a Barefoot Tofino based switch](/stratum/hal/bin/barefoot/README.run.md)
+ - [Testing Stratum on a Barefoot Tofino based switch](/stratum/hal/bin/barefoot/README.test.md)
+ - [Pushing a pipeline to a Barefoot Tofino based switch](/stratum/hal/bin/barefoot/README.pipeline.md)
+- [Broadcom](/stratum/hal/bin/bcm/standalone/README.md)
+ - [How to Add a Dataplane Feature to Stratum (BCM)](/stratum/docs/extenting_stratum_bcm.md)
+- [Intel NP4](/stratum/hal/bin/np4intel/docker/README.md)
+- [bmv2](/stratum/hal/bin/bmv2/README.md)
+- [Dummy Switch](/stratum/hal/bin/dummy/README.md)
+
+### Tools
+
+- [gNMI CLI Tool](/stratum/tools/gnmi/README.md)
+- [Tofino Pipeline Builder](/stratum/hal/bin/barefoot/README.pipeline.md#stratum-bfpipelineconfig-format-and-the-bfpipelinebuilder)
+- [Stratum-Enabled Mininet](/tools/mininet/README.md)
+- [P4Runtime write request replay tool](/stratum/tools/stratum_replay/README.md)
+- [ChassisConfig Migrator](/stratum/hal/config/chassis_config_migrator.cc)
+- [PHAL CLI Tool](/stratum/hal/lib/phal/phal_cli.cc)
+- [ONLP CLI Tool](/stratum/hal/lib/phal/onlp/onlp_cli.cc)
+- [ONLP PHAL CLI Tool](/stratum/hal/lib/phal/onlp/onlp_phal_cli.cc)
+
+### Other Documentation
+
+- [SD-Fabric](https://docs.sd-fabric.org)
+- [Trellis + Stratum example](/tools/mininet/examples/trellis/README.md)
+- [Continuous Certification Program (CCP)](https://wiki.opennetworking.org/display/COM/Stratum+Continuous+Certification+Program)
+- [Community Channels](https://github.com/stratum/stratum/wiki/Discuss)
+- [Talks](https://github.com/stratum/stratum/wiki/Talks)
+- [Test Vectors](https://github.com/stratum/testvectors/blob/master/docs/testvectors_overview.md)
+- [Stratum example pipelines](/stratum/pipelines/README.md)
+ - [Main FPM pipeline](/stratum/pipelines/main/README.md)
+- [Supported gNMI paths](/stratum/docs/gnmi/supported-paths.md)
+- [Config Monitoring Service](/stratum/docs/gnmi/README.md)
+- [Transponder Abstraction Interface (TAI)](/stratum/docs/tai/README.md)
+- [P4C backend](/stratum/p4c_backends/README.md)
+- [CDLang gNMI Compliance Definition Language](/stratum/testing/cdlang/g3doc/cdlang.md)
+- [gNMI/OpenConfig Contract Definition Language tools](/stratum/testing/cdlang/README.md)
+- [gNMI Test Scenarios](/stratum/testing/scenarios/README.md)
+- [SSL/TLS Support and Security](/stratum/lib/security/README.md)
+
+# Component Overview
+
+
+
+[P4Runtime](https://p4.org/p4-runtime) provides a flexible mechanism for
+configuring the forwarding pipeline on a network switch.
+
+[gNMI](https://github.com/openconfig/reference/tree/master/rpc/gnmi) is a
+framework for network device management that uses gRPC as the transport
+mechanism.
+
+[SDKLT](https://github.com/Broadcom-Network-Switching-Software/SDKLT) is used
+to program fixed-pipeline switches using the Tomahawk chip from Broadcom.
+
+# Supported Devices
+
+## Tofino
+
+- APS Networks BF2556X-1T
+- APS Networks BF6064X-T
+- Delta AG9064v1
+- Edgecore Wedge100BF-32QS
+- Edgecore Wedge100BF-32X
+- Edgecore Wedge100BF-65X
+- Inventec D5254
+- Inventec D5264Q28B
+- Inventec D10056
+- Inventec D10064
+- Netberg Aurora 610
+- Netberg Aurora 710
+- Netberg Aurora 750
+
+*Note: Pre-built Stratum binaries for Tofino are available for recent Barefoot
+SDE releases in the [Releases](https://github.com/stratum/stratum/releases/latest)
+page. Vendors, customers, and researchers with access to the Barefoot SDE can
+build Stratum themselves. For access to the SDE, please contact an Intel
+representative.*
+
+## Broadcom
+
+- Tomahawk (SDKLT, OpenNSA, SDK6)
+ - Edgecore AS7712-32X
+ - Edgecore AS7716-24XC Cassini
+ - Dell Z9100
+ - Inventec D7032
+ - QCT QuantaMesh T7032-IX1
+- Tomahawk+ (SDK6)
+ - Edgecore AS7716-24SC Cassini
+ - Inventec D7054
+- Tomahawk2 (OpenNSA, SDK6)
+- Tomahawk3 (SDK6)
+- Trident2 (OpenNSA, SDK6)
+ - Edgecore AS6712
+ - Inventec D6254
+
+*Note: Pre-built Stratum binaries for SDKLT and OpenNSA are available in the
+[Releases](https://github.com/stratum/stratum/releases/latest) page. Vendors and
+customers with a Broadcom SLA can build Stratum themselves using the Broadcom
+Switch SDK (SDK6); versions 6.5.17 and 6.5.19 are tested. If you would like to
+use Stratum with SDK6 and you do not have an SLA with Broadcom, contact a
+Broadcom representative or your switch vendor.*
+
+## Smart NIC
+
+- Intel PAC N3000
+
+## Software Switches
+
+- bmv2
+- dummy
+
+# Source code
+
+This repository contains source code for a reference implementation of
+the P4Runtime and gNMI services, that serves as the hardware abstraction layer
+for a network switch. It has been successfully prototyped at Google, running on
+production hardware on a data center network subsystem.
+
+# Development environment
+
+We provide a script to create a Docker development environment for Stratum.
+
+To start the container, run the following in your `stratum` directory:
+
+ ./setup_dev_env.sh
+
+The script will build a Docker image using Dockerfile.dev and run a bash session
+in it. This directory will be mounted in the Docker image and you will be able
+to run git, edit code, and build Stratum / run tests using Bazel.
+
+For more information, you can see a complete list of arguments by running:
+`setup_dev_env.sh -h`
+
+If you are using Docker on Linux, make sure that you can use Docker as a
+non-root user, otherwise you will not be able to run setup_dev_env.sh:
+
+ sudo usermod -aG docker $USER