4. Release Note

This document displays the release notes for mOS networking stack. It describes API changes, new features, and bug fixes.

4.1. mOS Release 0.4 (October 21, 2017)

4.1.1. API Changes

  • mtcp_getpeername() with new semantics
    • If side is MOS_SIDE_BOTH, it provides both end hosts’ addresses, and addrlen should be 2 * sizeof(struct sockaddr).
    • If side is MOS_SIDE_CLI (or MOS_SIDE_SVR), it provides a single address of client (or server), and addrlen should be sizeof(struct sockaddr).
    • See mtcp_getpeername() man page for more details.
  • When there was buffer outrun and payload was overwritten, mtcp_peek() returns a negative value of the missed bytes.
  • MOS_SOCK_MONITOR_RAW socket now monitors IP packets that passed (if any) BPF monitoring filter.

4.1.2. Bug fixes

  • Solved the interface renaming issue of setup.sh in recent Linux kernels (>= 4.4.x)
  • MOS_SOCK_MONITOR_RAW socket does not perform TCP processing anymore.
  • Reassembly buffer outrun logic now works correctly (as described in Section 4.3 of mOS paper).
  • DPDK driver (patched for mOS and embedded together) is now compatible with recent Linux kernels (>= 4.13).
  • Resolved a performance degradation issue regarding per-core mOS thread creation