More Related Content
Similar to Open vSwitchソースコードの全体像
Similar to Open vSwitchソースコードの全体像 (20)
Open vSwitchソースコードの全体像
- 2. ソースコードの入手方法
• リリース版 (v.1.4.0)
• http://openvswitch.org/releases/openvswitch-1.4.0.tar.gz
• 開発版
• git clone git://openvswitch.org/openvswitch
• git clone http://openvswitch.org/git/openvswitch
- 3. とりあえず規模を見る
• *.c, *.h, *.pyのファイルの一覧
commit: 8a5b3cfd91841c97fbc8a003857cacbd602646ed
• https://gist.github.com/2111386
• 478ファイル, 合計164700行
- 5. • README • ofproto/
• INSTALL.* • ovsdb/
• その他テキスト • python/
• build-aux/ • rhel/
• datapath/ • tests/
• debian/ • third-party/
• include/ • utilities/
• lib/ • vswitchd/
• m4/ • xenserver/
- 6. READMEを読む
• コンポーネントの説明 • ovsdbmonitor
• ovs-vswitchd • ovs-controller
• ovsdb-server • ovs-ofctl
• ovs-brcompatd • ovs-pki
• ovs-dpctl • patch for tcpdump
• ovs-appctl • scripts for RPM
- 29. 用語解説(紛らわしい)
datapath/ vport ---------
vswitchd/ iface port
ofproto/ port bundle
lib/bond.c slave bond
lib/lacp.c slave lacp
lib/netdev.c netdev ---------
database Interface Port
- 30. アーキテクチャ
ovs-vswitchd ovsdb-server
OpenFlow
ofproto
controllers
netdev ofproto
provider
netdev
provider
- 32. アーキテクチャ
ovs-vswitchd ovsdb-server
OpenFlow
ofproto
controllers
netdev ofproto
provider
netdev
provider
- 34. アーキテクチャ
ovs-vswitchd ovsdb-server
OpenFlow
ofproto
controllers
netdev ofproto
provider
netdev
provider
- 35. netdev provider
• ネットワークデバイス(e.g. eth0)に対してのOSやハー
ドウェアに特有のインターフェイスを実装
• スイッチの各ポートはnetdevとして動作しなければな
らない
• lib/netdev-provider.h中のnetdev_class構造体が重要
• 多くの関数ポインタから構成される
- 38. アーキテクチャ
ovs-vswitchd ovsdb-server
OpenFlow
ofproto
controllers
netdev ofproto
provider
netdev
provider
- 39. ovs-vswitchd ovsdb-server
OpenFlow
ofproto
controllers
Userspace
netdev ofproto-
dpif
netdev
provider dpif
dpif
provider Implementation of
ofproto provider
datapath
Kernel
Physical NIC
- 42. dpif provider
• Open vSwitchでサポートされているボンディングなど
の機能を活用するのに必要
• 通常、ofproto providerを実装するより容易
• lib/dpif-provider.hの中のdpif_class構造体でインター
フェイスが定義されている
- 53. 最近の話題
• Linux 3.3にコードが取り込まれた
• MLでのお知らせ:http://bit.ly/HEQntI
• 取り込まれたコード:http://bit.ly/HEQzZM
• OpenFlow 1.1, 1.2への対応
• include/openflow/openflow-1.[012].h
• 方針:http://bit.ly/HmVdCQ