You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Table of Contents

Project application dates

The complete GSoC 2019 timeline is here: https://developers.google.com/open-source/gsoc/timeline

  • Project applications open: January 15, 2019
  • Project applications close: February 6, 2019, 20:00 UTC
  • Projects announced: February 26, 2019

Roles

People who have committed to helping with the TF GSoC project application and mentoring in 2019.

NOTA BENE: As a first year project, if selected TF would be limited to 2 students.

  • TF GSoC Organisation Administrators: VM Brasseur, Valentin Sinitsyn
  • Mentor Candidate: Valentin Sinitsyn
  • Mentor Candidate: Syed Ahmed
  • Mentor Candidate: Darien Hirotsu

Project Ideas

The Project List is very important for the GSoC application process. Please read the project ideas list tips as well as the advice for projects before adding to the list below.

We should have at least 4 projects on the list. The person who will mentor the project should be the one to suggest it.

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 Scripts for Tungsten fabric in Kubernetes

  • Project title: Quickstart Scripts for Tungsten Fabric in Kubernetes
  • Project description (2-5 sentences): The purpose of this project is to make it easier for people to launch Tungsten Fabric in Kubernetes. Right now it's possible but could be a lot easier. During the course of this project you'll become more familiar with how both Kubernetes and Tungsten Fabric work, both together and separately. You'll write automation scripts to make the entire process easier, more usable, and more transparent.
  • Expected outcomes of the project: Automation scripts and any associated tests and documentation.
  • Student skills required/preferred: Linux knowledge. Knowledge of Kubernetes and Tungsten Fabric an asset but not required
  • Project difficulty rating (easy, medium, hard): easy to medium, depending upon experience
  • 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
    • Ansible playbooks to automate relevant tasks
    • Python code (including tests) for relevant new modules for current manual tasks
    • Documentation illustrating the usage of upgrade tools
  • 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


(add more projects here; use the template from below)

Template for Project for the List

  • Project title:
  • Project description (2-5 sentences):
  • Expected outcomes of the project:
  • Student skills required/preferred:
  • Project difficulty rating (easy, medium, hard):
  • Mentor (person who suggested the project):



Application

  • Organization name: Tungsten Fabric
  • Website URL: https://tungsten.io
  • Tagline: Secure software defined networking for any cloud, anywhere.
  • Logo: TungstenFabric_Gradient_MarkOnly.png
  • Primary open source license: Apache Software License, Version 2
  • Organisation category: Cloud
  • Technology tags: linux, kubernetes, python, networking, c/c++
  • Topic tags: software defined networking, routing, security, multicloud, cloud native
  • Ideas list: GSoC 2019
  • Short description: 

Boundary-free software defined networking that works on any cloud. Apply network and security policies to all your clouds, then monitor/analyze from a single interface.

  • Long description: 

## Many clouds

This is now a _multicloud_ world. Companies are developing applications designed to work in the cloud (_cloud native_), but are finding that there isn't a single cloud offering that meets all of their requirements. Combinations of private and public clouds (_hybrid multicloud_) are necessary to deliver the services required for their business needs.

Maintaining the communication between all of these clouds (the _network fabric_) can be complicated. Each one can have its own APIs and policies. Making sure everything stays up to date and secure is time consuming and error prone.

That's where we come in.

## One (Tungsten) Fabric

[Tungsten Fabric](https://tungsten.io) is a secure software defined networking project designed for the cloud native, multicloud environment. Placing it on top of any IP network allows you to have a single portal for defining, monitoring, and analyzing your entire multicloud network, its security, and its performance.

Using Tungsten Fabric, you can write and deploy network and security policies that are portable to any cloud environment. All of your clouds can have a consistent and easily maintainable configuration. Standardized policies will make your security team happy, too.

## Internet scale

Tungsten Fabric is designed from the ground up to be as fast, as secure, and as scaleable as you need. From small private networks to Tier 1 ISPs, Tungsten Fabric can handle it…and we have users and contributors from both and everything in between! Working with Tungsten Fabric will give you a lot of experience with and knowledge about our industry.

Join us!

  • Application instructions: 

Applying to intern with Tungsten Fabric is easy!

1. [Subscribe](https://lists.tungsten.io/g/dev/join) to our Dev mailing list. Subscription is required to email the list.
1. Check out our [list of project ideas](https://wiki.tungsten.io/display/TUN/GSoC+2019#GSoC2019-ProjectIdeas).
1. Send an email to the address for the Dev mailing list: `dev@lists.tungsten.io`.

Your email should include the following information:

* The name of the project you'd like to work on.
* A short paragraph (100 words, maximum) about what interests you about the project and/or about Tungsten Fabric.
* A short paragraph (100 words, maximum) about why you think you'd be a good fit for the project you picked. Please tell us whether you already have the skills that are required/preferred for that project and, if so, how much experience you have with them.
* A short paragraph (100 words, maximum) telling us more about you as a person. This can include information like where you go to school, what you're studying, whether you've done Google Summer of Code before, your favorite food, or any other interesting stuff you'd like to share.

After we receive your application, the mentor for the project you selected will contact you to set up a conversation and a coding exercise using the technologies relevant to the project you selected. Completion of both the conversation and the coding exercise are required to be considered to join the project.



  • No labels