Home

Welcome to Remlab.net! This is the home page of Rémi Denis-Courmont.

Who am I?

I am currently working as a Linux kernel and system software engineer for Nokia in Helsinki, Finland. I am also one of the core developpers of the VLC media player at the VideoLAN project, the original developper of Miredo, the Teredo stack for Linux & BSD, and the maintainer of the minisap server and ndisc6 IPv6 utilities.

News

This is not a blog. There is no Atom or RSS feed.

01 February 2009 - the myth of non-blocking I/O
I have had enough of hearing that blocking I/O should never be used (except for debug messages perhaps). This article explains why you should really use normal and simple blocking I/O when dealing with files.
17 June 2008 - DCCP is so convenient

This only works on Linux:

% LOCAL_IP=192.2.0.1
% vlc music/*.mp* --loop --sout \
  "#gather:rtp{proto=dccp,dst=$LOCAL_IP,mux=ts,sap,name=\"DCCP channel\"}"
% vlc -S sap
   

Nice replacement for multicast, especially on a wireless LAN.

16 June 2008 - VLC 0.9.0 features freeze

The development tree for VLC media player 0.9.0 is finally frozen. We might eventually get a usable release in the near future.

So how long have we been working on 0.9.0? Lets see, 0.8.6 was released in december 2006. One and a half year, then. Or so I thought. But what does git-merge-base have to say about this?

% git-merge-base videolan/master videolan/0.8.6-bugfix
a5dd5b1c1123bc38f2aefd7bad2aa869be65720
% git show a5dd5b1c1123bc38f2aefd7bad2aa869be65720
commit a5dd5b1c1123bc38f2aefd7bad2aa869be657203
Author: Christophe Mutricy
Date:   Fri Apr 14 11:42:49 2006 +0000
  

So over 2 years afterall... This commit was done back in the time of 0.8.5-test2! Probably every had forgotten that 0.8.6 was initially supposed to be 0.8.5-1, a continuation of the "stable" 0.8.5 branch. No surprise it has become so difficult to maintain the 0.8.6 bugfix-only branch when you consider it is based on such an old mostly unmodified build system and "contribs".

15 June 2008 - Secure RTP

The SRTP library had been in the VLC development tree for over a year. Now it is actually integrated with both the new RTP receiver and the RTP output. Unfortunately, it only supports static keys and no (S)RTCP, but that is a start.

% KEY=123456789ABCEF0123456789ABCEF0123456789ABCEF0123456789ABCEF0
% SALT=123456789ABCDE123456789ABCDE

% # Receiving
% vlc rtp://@239.255.1.2:1234 --srtp-salt $SALT --srtp-key $KEY

% # Sending
% vlc music.mp3 --sout \
"#rtp{dst=239.255.1.2,port-audio=1234,salt=$SALT,key=$KEY}"
   

Hosted projects

A few of my open-source projects are available here:

Miredo: Teredo for Linux and BSD
Teredo (automatic tunneling of IPv6 through NATs) implementation.
ndisc6, tcptraceroute6, etc
A small collection of IPv6 diagnostic tools including IPv6 replacements of arping (ndisc6) and tcptraceroute (tcptraceroute6).
TCP re-engineering tool
A portable TCP ports forwarder with content logging capabilities.
Web6
Online French language introduction to the IPv6 protocol.

Opinions

Some technical personal opinion (or factual) articles:


Publications

UDP-Encapsulated Transport Protocols
IETF Experimental individually-submitted draft.
Network Address Translation (NAT) Behavioral Requirements for DCCP
IETF Best Current Practices working group draft.
Test vectors for STUN
IETF Informational working group draft.
Connection setup negociation for the Message Session Relay Protocol
IETF Experimental individually-submitted draft.
A Survey of Protocols to Control Network Address Translators and Firewalls
IETF Informational individually-submitted draft, co-authored with Lars Eggest, Pasi Sarolahti, Vlad Stirbu & Hannes Tschofenig