Using base kernel as Linux-5.10.47 LTS release, developed the net-next-nuse-5.10 port for DCE.
Patched Linux kernel code for DCE specific use cases (SLAB allocator, PID, Task Scheduler, etc.)
The new Linux library can be loaded into DCE with the same API calls.
Implemented custom glibc based DCE build, patched libc-2.31 to disable security checks and aligned DCE accordingly.
Added Bake build components to the script to automate the build process.
Revived usage of Python Bindings in DCE. Implemented the DCE cpython shared library compilation code
Implemented the --apiscan feature for DCE, which is unimodular in nature and compiles to a standalone project with dependencies on ns-3 libraries as a whole, as compared to ns-3 which is a combination of multiple modules having individually defined dependencies.
The processes uses a combination of PyBindGen and CastXML
Fixed the failing CircleCI used in ns-3-dce.
Drafted a Github Actions based CI, with HEAD based cache restoration
Implemented a docker based setup with almost negligible extra build steps and DCE availability on almost all Linux systems. The environment is highly configurable from both host machine as well as docker. Also includes synced volumes for host changes to project to reflect inside docker.
Makes use of both docker-compose and docker.
Please find below the Google Drive shared folder which consists of all the patches generated throughout the GSoC 2021 program :
Apart from the deliverable code that I produced, I also did the following on the side during the program :
This project can be extended further as suggested below:
More details about this project are available at the project wiki page link given below: