Versions Compared

Key

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

Internship Projects/Mentors


Page properties


Title

Pure Go bindings for memif

Status

Status
colourBlue
titlePENDING TSC REVIEW

Difficulty

Status
colourGreen
titleLow
Status
colourYellow
titleMedium
Status
colourRed
titleHigh


...

This project is to write a Pure Go library for interacting with memif sufficient to allow the writing of packet processors in Go that can utilize memif without  linking in C code or using CGO.

Additional Information

  1. Memif intro
  2. Memif breakdown
  3. Libmemif C implementation
  4. VPP memif implementation

Learning Objectives

The intern is expected to learn:

  1. How to use Go to pass file descriptors over unix file sockets
  2. How to write high performance memory protocols (memif in this case) over shared memory in Go
  3. How to write functional and performance tests in Go, as well as build robust CI utilizing those tests
  4. How to present a technical topic in a Webinar

Expected Outcome

Deliverables:

  1. Pure Go implementation of memif that can interact with existing implementations in C
  2. Functional testing for the pure Go implementation of memif
  3. Perf testing for the pure Go implementation of memif
  4. CI incorporating both Functional and Performance testing
  5. Presentation of FD.io Webinar on the pure Go memif implementation

Relation to LF Networking 

FD.io VPP utilizes memif as a high performance interface between different CNFs.   The more broadly memif is adoptable, the better for VPP.

Education Level

Undergraduate should be fine as long as they have programming experience.  This projects presumes  the ability to program generally.

Skills

Skills in Go are highly preferred.  Ability to read C code is extremely helpful.

Future plans

Promotion to those interested in playing with packet processing in Go.

Preferred Hours and Length of Internship

Either 40 hours a week for 12 weeks or 20 hours a week for 24 weeks are acceptable.

Mentor(s) Names and Contact Info

Ed Warnicke - hagbard@gmail.com

...