21st - Driver Competition の勝者は?

ONFは 4月に The OpenFlow Driver Competition として、コンペ形式で広範囲に使えるオープンソースの OpenFlow ドライバを募集した。優勝コードは Open Source として公開される。賞金 5 万ドル。おそらくこの業界初の試みと思う。締め切りは 9月末。さて結末は?
どこのドライバ? ドライバと聞いて最初 Switch ASIC のドライバかとワクワクしたが、ONFのアナウンスを見るとコントローラ側だった。(右図)
しかしコントローラ側にしてもこの種のドライバが公開されたものとして存在しているととても嬉しい。僕はある種の機能追加のために proxy を作ろうかと思うことが度々あり、そうしたものが作りやすくなると思うからだ。まあ NOX をはじめとして OpenFlow のコントローラはオープンソースのものが既に多く存在しているから、極論すればどのような機能であろうともコントローラに直接手を入れれば追加出来る事に間違いはない。けれど既存のコントローラに手を入れるのはなかなか手間で、新バージョンへの追随や、そのコントローラのユーザにしか試して貰えない、といった副作用もある。

source: The OpenFlow Driver Competition, ONF
proxy として機能を挿入することはその点とても融通が利く。が、パッと捜してもプラットフォームとして使えそうな適当なものが無い。FlowVisor が実質 proxy であることは承知しているが、それでもこれに手を入れるのはちょっと難だ。(でもやるしかないかなあ、、、やはり、、何か良いものがあれば一報ください。)
応募要領 が、ONF の応募要領を見ると、ちょっとこれは、と思ってしまった。結構厳しいのだ。
Submission Requirements: として、
・1.3 互換、ただし 1.0 の後方互換性があること、とある
・ハードウェアスイッチ、ソフトスイッチと一緒に動作すること(これは当たり前)
・1.3 と 1.0 が混在するところで動く事(まあ、ね)
・複数コネクションに対応(これもあたりまえ)
・Mininet と OFTest みたいな感じでテストできるようにね(でもテストハーネスつけてね)
とある。ここまではまあまあ妥当としても、ここから少しキツめの条件がある。
まず C/C++, Python, Java and/or Ruby のような複数言語で機能することを示せ、とある。具体的には最低二つの non-native なものとの接続性を示せ、つまり C++ で書いたなら Python と Ruby について示す。 もう一つ、non-x86 CPU、つまり ARM, MIPS, PPC のようなものでの動作を示せ。 どちらもやれないことでは無いにせよ、工数はかなり増えるだろうなあと思う。
しかし ONF は Open Source を求めているのだから、そうした条件を設けたい気持ちもまたよくわかる。
さて賞金の行方は このONFのアナウンスからコンペのスケジュールを確認すると、当初 8 月15 日だった締め切りが 9 月 15 日に延期されている。そして Winner は 9 月30日にアナウンス、と当初なっていたようだが 9月15日締め切り時に update したと思われる冒頭の記述では「ただいま審査中で、 12 月 10 日に発表予定」とある。よっぽどたくさん集まったのか、そもそもの審査工数を見誤っていたのか大幅に発表予定を延ばしている。そして 12 月 21 日現在でもアナウンスは、ない、ようだ。
実際これオープンになると今やっている学生の卒業研究でも便利に使えそうなのだけれど、はてさてどうなるんだろう。。

追記(2014.3.1)

ONF 2014 直前だが、今の時点でも Winner の発表は無いように思う。ざっと検索するとPLVision in the OpenFlow Driver Contestとして、応募した経緯などが出ているところもある。ちなみにこの人たちの成果物は Contest とは関係無く KuFlow として既に表に出されているようだ。そりゃそうか。
それにしても結果はどうなるのだろう。

追記(2015.5.15)

すっかり更新するのを忘れていたが、ONF 2014 会場で Winner が発表された。輝ける勝者はCPqDである、といっても発表の場では僕はまったく分からなかった。えらく若い人たちが立ち上がってたなあ、と思っただけだった。
CPqD は僕にとってはQuagFlowの発展版、RouteFlowの開発主体として記憶されることになりそうだ。論文や Talk がたまにポルトガル語なのが辛い。

References