OpenStack のネットワーク部分を担当する Neutron は、以前からプラグインを差し替えることで仮想ネットワークを構築する処理の実装を変更することができた。 そうした中でも、最近は ML2 (Modular Layer 2) という共通のプラグインが使われるようになってきている。 これには恐らく幾つかの理由があって、まず既存のプラグイン (ML2 以前のそれは"モノリシック・プラグイン"と呼んで区別される) 開発では多くのコードを書く必要があった。 その結果、出来上がったプラグイン群には似たようなコードがそれぞれ冗長に存在していた点が挙げられる。 そして、各プラグインは各ベンダーがそれぞれ個別に開発しているため、今のコードが本当に動くのかも不透明な状況だったようだ。 それに対し、ML2 ではプラグイン部分を共通化し、開発に必要なのは Neutron の各処理が走る際に呼ばれるコー