Release Note ======================================================================= This document displays the release notes for mOS networking stack. It describes API changes, new features, and bug fixes. mOS Release 0.4 (October 21, 2017) ----------------------------------- 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. * See `mtcp_peek() man page`_ for more details. * MOS_SOCK_MONITOR_RAW socket now monitors IP packets that passed (if any) BPF monitoring filter. 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 .. _`mtcp_peek() man page`: http://mos.kaist.edu/man/mtcp_peek.html .. _`mtcp_getpeername() man page`: http://mos.kaist.edu/man/mtcp_getpeername.html .. _`mOS paper`: http://mos.kaist.edu/mos.pdf