パケットの VLAN ヘッダを取り除く

Modify-Field アクションの紹介も大分進んできました。今日はパケットの VLAN ヘッダを取り除く方法です。

パケットの VLAN ヘッダを取り除くアクションを作る

VLAN ヘッダを取り除くアクションは StripVlanHeader です。

# VLAN ヘッダを取り除く
StripVlanHeader.new

このアクションにオプションは無いので、:new に引数はいりません。

Flow Mod でアクションを指定する

こうして作ったアクションを使うには、いつもの通り Flow Mod の :actions オプションに指定できます。

def packet_in datapath_id, message
  # ..

  send_flow_mod_add(
    datapath_id,
    :match => Match.new( :dl_src => message.macsa, :dl_dst => message.macda ),
    :actions => [ StripVlanHeader.new, SendOutPort.new( port_no ) ]
  )

Packet Out のアクションも同様です。

まとめ

StripVlanHeader でパケットの VLAN ヘッダを取り除く方法を紹介しました。

Tagged , ,

Leave a Reply