パケットの VLAN VID とプライオリティを書き換える

Modify-Field アクションの紹介も今日が最後です。今日はパケットの VLAN VID とプライオリティを書き換える方法です。

パケットの VLAN VID を書き換えるアクションを作る

VLAN VID を書き換えるアクションは SetVlanVid です。

# VLAN VID を書き換えるアクション
SetVlanVid.new( 128 )

:new の引数はあなたの想像通り、新しくセットする VLAN VID の値です。

パケットの VLAN プライオリティを書き換えるアクションを作る

VLAN プライオリティを書き換えるアクションは SetVlanPriority です。

# VLAN プライオリティを書き換えるアクション
SetVlanPriority.new( 7 )

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 => [ StripVlanVID( 1 ), SetVlanPriority( 7 ), SendOutPort.new( port_no ) ]
  )

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

まとめ

SetVlanVID でパケットの VLAN VID を、また SetVlanPriority で VLAN プライオリティを書き換える方法を紹介しました。

Tagged , , ,

Leave a Reply