Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Eishun Kondoh
@shun159
sliceable_switch, simple_routerもnx版で書き換えられそうですね
Yasuhito Takamiya
@yasuhito
おお! Trema本の Appendix が充実しそうですヨ
Yasuhito Takamiya
@yasuhito
#252 をマージしておきますたー
Eishun Kondoh
@shun159
ありがとうございます!
Eishun Kondoh
@shun159
次はlearnだとおもうのですが、構造がちょっと複雑です。
learnは別途flow_mod_spec構造(というのはないですが)定義する必要があります
えーっと、poxのexampleにもlearnを使ったものがあります。
Yasuhito Takamiya
@yasuhito
たしか、trema-book に説明書いてくれましたね??
learn はぼくがやってもいいですし、近藤さんがやってくれてもOKです。
Eishun Kondoh
@shun159

たしか、trema-book に説明書いてくれましたね??

はい、ですです。

えーっと、poxのexampleにもlearnを使ったものがあります。

少々お待ちください…

  learn = nx.nx_action_learn(table_id=1,hard_timeout=10)
  learn.spec.chain(
      field=nx.NXM_OF_VLAN_TCI, n_bits=12).chain(
      field=nx.NXM_OF_ETH_SRC, match=nx.NXM_OF_ETH_DST).chain(
      field=nx.NXM_OF_IN_PORT, output=True)

  msg.actions.append(learn)
  msg.actions.append(nx.nx_action_resubmit.resubmit_table(1))
POXはこうなのですが、私がぱっと見てもわかりづらいな。
という印象です。
Yasuhito Takamiya
@yasuhito
chain というのがよくわかんないです
そもそも learn もよくわかってないので、近藤さんのスライドを読んで勉強してみるか。。。
Eishun Kondoh
@shun159
はい、おっしゃるとおりです。
多分、[].<< みたいなやつなのだとおもいますが、
Yasuhito Takamiya
@yasuhito
明日とあさっては阪大なので、learn は週末にやろうと思うんですが、ほかにサクッとできそうなのはありますか?
Eishun Kondoh
@shun159
比較的、loadかoutput_regが簡単だとおもいます。moveもそれほど変わらないですが。
32bit のmatch headerをつくれればさくさく進むかと思います。
Yasuhito Takamiya
@yasuhito
りょうかいす! あと、Nicira 拡張以外のメッセージで、trema/pio#249 の中で先にやっといたほうがよさげなのって思い付きますか?
OpenFlow1.0では、だいたい必要そうなのは片付いたとは思うんですが、Trema本を進めるにはStats系が次は必要かなとは思っています。
Eishun Kondoh
@shun159
そうですね…もうすでにだいたい揃ってる気がします…
Yasuhito Takamiya
@yasuhito
あっ! あと trema/pio#249 の中に書いてありますが、アクションをいくつか名前を変えようと思っています。EtherSource → SourceMac などです。この中で、何か異論があったらいつでも言ってくださいーー。
Eishun Kondoh
@shun159
はい!
ぜひ
Yasuhito Takamiya
@yasuhito
SetIpToS とかは、ToS って使ったことないんですけど、Ip っているのかな? とか思っています。
たんじゅんに SetTos でいいのではと。
Eishun Kondoh
@shun159
あ、確かに…。
Ipなくてよいのではないでしょうか??
Yasuhito Takamiya
@yasuhito
あといろいろお願いして申し分けないんですが、trema/pio#249 みたいな感じで、OpenFlow1.3 のメッセージ一覧チケットを作るので手伝ってもらえないでしょうか? リストアップするだけです。やる気がおきない時の作業として最適です。
Eishun Kondoh
@shun159
りょうかいです!w
Yasuhito Takamiya
@yasuhito
さっそく空ですが作ってみました。trema/pio#264
Eishun Kondoh
@shun159
ありがとうございます!
Yasuhito Takamiya
@yasuhito
じゃあ SetIpTos → SetTos にリネームします。
Eishun Kondoh
@shun159
はい!!
Eishun Kondoh
@shun159
nxアクションに必要な、match headerをどうやって書こうか、
30分くらい考えたものの書きっぷりがわからず…。
こうかけるようにしたかったです。
NxLoad.new(
  offset: 0,
  n_bits: 32, # <= 指定なしの時はdstのmatch_bit_lenがdefaultでも良いかも。。。
  dst: :reg_0, # <= :dstオプション に指定するmatch header
  value: 0xdeadbeef
)
# offset + n_bits > dstのmatch_bit_len  ならエラーにしても良いはず、errorは`bad set len` が帰ってくるだけですが…
Yasuhito Takamiya
@yasuhito
今日の授業中に僕も考えてみます!
Eishun Kondoh
@shun159
ありがとうございます!!
Yasuhito Takamiya
@yasuhito
ところで、ルータを1.3に移植するのってどのくらい大変と思いますか?授業の課題で出そうかなと思ってます
Eishun Kondoh
@shun159
少々お待ちを…
Yasuhito Takamiya
@yasuhito
必要なアクションが足りてないかも?
Eishun Kondoh
@shun159

trema-edge/simple-router.rb をベースに考えるのが良いと思いますが、このサンプルのテーブル設計は、あまりopenflow13っぽくないので、そこから考えるのがいい気がします。アクションは足りてないです。

私の感覚でいうと、それほど難しくは感じません。

Eishun Kondoh
@shun159
ちなみに、拙作のnx版simple-routerはこう書きなおしています。
nx版なので、参考にならないですが…
http://slides.com/shun159/deck/fullscreen#/8
Yasuhito Takamiya
@yasuhito
テーブルのダンプですな 笑
Eishun Kondoh
@shun159
ですですw
好きな人にはつたわるはず…!
Yasuhito Takamiya
@yasuhito
@shun159 すみません、授業の話でもうしわけないのですが、ラーニングスイッチ OF1.3 版で受講者がバグ報告してくれました。ちょっと見てもらえますか? trema/learning_switch#17
Eishun Kondoh
@shun159
半日ください、明日の朝には直ってるはずです。
Yasuhito Takamiya
@yasuhito
りょうかいです! ちなみに、FDB を使わずにフローエントリだけでやる、って原理的にできたりしますか?
Eishun Kondoh
@shun159
yamatchan の指摘の通りです。
FDBを使わずフローエントリだけでやるのには無理がありました。
なので、FDBを使う版に修正します。フローテーブルの設計も変わります。全くの失敗です。申し訳ありません。
Yasuhito Takamiya
@yasuhito
いえいえ、逆にいろいろ実装してもらって助かってます!
Chris Lee
@chrislee35
このチャットも止めましたか?