Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

There is a project template at the bottom of this page. Please copy it then use it to add your project suggestion to this list.

Quickstart Guide for Tungsten fabric in Kubernetes

  • Project title: Quickstart Guide for Tungsten fabric in Kubernetes
  • Project description (2-5 sentences): The project is to create documentation and other tools/scripts around easily deploying a Tungsten fabric CNI in Kubernetes 
  • Expected outcomes of the project: Documentation and Scripts
  • Student skills required/preferred: Linux knowledge, Knowledge of Kubernetes and Tungsten fabric an asset but not required
  • Project difficulty rating (easy, medium, hard): easy
  • Mentor (person who suggested the project): Syed Ahmed

Extend Contrail Ansible Deployer to Support Software Upgrades

  • Project title: Extend Contrail Ansible Deployer to Support Software Upgrades
  • Project description (2-5 sentences): The purpose of this project is to enhance the current Contrail Ansible Deployer tool to include required playbooks or modules to automate upgrades between specific versions of Tungsten Fabric. Currently, it appears the main documentation resides within Juniper and a number of the steps are executed manually as CLI commands. To help solidify Tungsten Fabric as a reliable networking solution for any orchestrator, it would be useful to have well documented tools to automate supported upgrade paths between Tungsten Fabric versions.
  • Expected outcomes of the project
    • Documentation illustrating the usage of upgrade tools
    • Ansible playbooks to automate relevant tasks
    • Python code for relevant new modules for current manual tasks
  • Student skills required/preferred: Python, Ansible, Linux, Kubernetes/Docker, Cassandra, RabbitMQ
  • Project difficulty rating (easy, medium, hard): medium
  • Mentor (person who suggested the project): Darien Hirotsu

Allocate a block of IP addresses per instance

  • Project title: Allocate a block of IP addresses per instance
  • Project description (2-5 sentences): Currently, instances (such as virtual machines or pods) under Tungsten Fabric control get a single IP address, that is, /32 prefix for IPv4 and /128 for IPv6. The idea behind this project is to make prefix size configurable, thus enabling allocation of (say) /28 for IPv4 or /64 for IPv6. So, a Kubernetes CNI running on top of the TF overlay will be able to allocate pod IP addresses from the same range as overlay itself, thus reducing operation overhead. For IPv6 overlay networks, having a /64 prefix per instance is a prerequisite for many established scenarios, say SRv6.
  • Expected outcomes of the project: Patches to implement block IP address allocation in tf-config, tf-control and tf-vrouter-agent.
  • Student skills required/preferred: A solid understanding of C++ (including multithreading) and Python is required, background in networking would be a bonus
  • Project difficulty rating (easy, medium, hard): medium
  • Mentor (person who suggested the project): Valentin Sinitsyn

Support Segment Routing (SR-MPLS)

  • Project title: Support Segment Routing (SR-MPLS)
  • Project description (2-5 sentences): Segment Routing (RFC 8402) is a variation of source routing paradigm where source node steers a packet through a network with a set of "programming instructions". This makes implementing advanced scenarios such as service chaining or zero-downtime live migration straightforward. An MPLS dataplane for Segment Routing (SR-MPLS) can be seen as an extension to the current MPLS dataplane in Tungsten Fabric, while SRv6 dataplane can serve as a similar extension for IPv6 underlay networks. In course of this project, you'll make both TF dataplane (vRouter and vRouter Agent) and TF control plane "SR-ready".
  • Expected outcomes of the project: Patches to support segment routing in tf-control, tf-vrouter-agent and tf-vrouter; the exact set of instructions to support and configuration means are negotiable. A possible MVP is to introduce SR-MPLS as yet another dataplane in TF, in addition to plain MPLS and VXLAN.
  • Student skills required/preferred: A solid understanding of C/C++ and Python is required, some experience with Linux kernel programming and DPDK is recommended
  • Project difficulty rating (easy, medium, hard): hard
  • Mentor (person who suggested the project): Valentin Sinitsyn

...