pio 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,16 @@
1
+ require "pio/type/mac-address"
2
+
3
+
4
+ module Pio
5
+ module Type
6
+ module EthernetHeader
7
+ def ethernet_header options
8
+ class_eval do
9
+ mac_address :destination_mac
10
+ mac_address :source_mac
11
+ uint16 :ether_type, :value => options[ :ether_type ]
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,28 @@
1
+ require "bindata"
2
+
3
+
4
+ module Pio
5
+ module Type
6
+ # IP address
7
+ class IpAddress < BinData::Primitive
8
+ array :octets, :type => :uint8, :initial_length => 4
9
+
10
+
11
+ def set value
12
+ self.octets = value
13
+ end
14
+
15
+
16
+ def get
17
+ IP.new octets.collect { | each | "%d" % each }.join( "." )
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+
24
+ ### Local variables:
25
+ ### mode: Ruby
26
+ ### coding: utf-8-unix
27
+ ### indent-tabs-mode: nil
28
+ ### End:
@@ -1,20 +1,21 @@
1
1
  require "bindata"
2
+ require "pio/mac"
2
3
 
3
4
 
4
5
  module Pio
5
- class Lldp
6
+ module Type
6
7
  # MAC address
7
8
  class MacAddress < BinData::Primitive
8
9
  array :octets, :type => :uint8, :initial_length => 6
9
10
 
10
11
 
11
12
  def set value
12
- self.octets = value.split( /:/ ).collect { | each | each.hex }
13
+ self.octets = value
13
14
  end
14
15
 
15
16
 
16
17
  def get
17
- octets.inject( "" ) { | str, each | str + ( "%02x" % each ) }.hex
18
+ Mac.new( octets.inject( "" ) { | str, each | str + ( "%02x" % each ) }.hex )
18
19
  end
19
20
  end
20
21
  end
@@ -1,25 +1,7 @@
1
- #
2
- # Copyright (C) 2013 NEC Corporation
3
- #
4
- # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License, version 3, as
6
- # published by the Free Software Foundation.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License along
14
- # with this program; if not, write to the Free Software Foundation, Inc.,
15
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
- #
17
-
18
-
19
1
  # Base module.
20
2
  module Pio
21
3
  # gem version.
22
- VERSION = "0.1.1"
4
+ VERSION = "0.2.1"
23
5
  end
24
6
 
25
7
 
data/pio.org ADDED
@@ -0,0 +1,518 @@
1
+ #+TITLE: Pio の TODO
2
+ #+FILETAGS: PIO
3
+ #+ICALENDAR_EXCLUDE_TAGS: noex
4
+
5
+ GitHub のリポジトリはこちら https://github.com/trema/pio
6
+
7
+ * Special Dates
8
+ * Notes
9
+ ** ARP フォーマット :NOTE:
10
+ :LOGBOOK:
11
+ CLOCK: [2013-09-05 木 17:30]--[2013-09-05 木 17:31] => 0:01
12
+ :END:
13
+ [2013-09-05 木 17:30]
14
+
15
+ 近藤さんおすすめの ARP フォーマット解説。
16
+ http://www.n-study.com/network/arpheader.htm
17
+ ** ターミナルでペアプロするための設定 :NOTE:
18
+ :LOGBOOK:
19
+ CLOCK: [2013-07-22 月 09:29]--[2013-07-22 月 09:30] => 0:01
20
+ :END:
21
+ :PROPERTIES:
22
+ :orgtrello-id: 5201cfedc4c8f14e25000f99
23
+ :ID: B40E64E6-BFD3-4ABA-8F02-E7C180AF2737
24
+ :END:
25
+ [2013-07-22 月 09:29]
26
+
27
+ http://www.zeespencer.com/articles/building-a-remote-pairing-setup/
28
+ * Tasks
29
+ このアイテムをそれぞれのリリースに割り振る。
30
+ ** NEXT git パスワードを省略できるように
31
+ [2013-09-13 金 17:07]
32
+ ** WAITING 鈴木さんルータの ARP 部分を Pio で書き直してもらう :WAITING:
33
+ - State "WAITING" from "TODO" [2013-09-18 水 12:04] \\
34
+ ARP のコードが実機で動いてから
35
+ :LOGBOOK:
36
+ CLOCK: [2013-09-14 土 10:20]--[2013-09-14 土 10:21] => 0:01
37
+ :END:
38
+ [2013-09-14 土 10:20]
39
+ ** WAITING 鈴木さんの IPv4Address への PR を Pio へ誘導 :WAITING:
40
+ - State "WAITING" from "TODO" [2013-09-18 水 12:05] \\
41
+ 本体にマージし 0.2.0 をリリースしてから。
42
+ [2013-09-14 土 10:22]
43
+
44
+ https://github.com/trema/trema-edge/pull/22
45
+ ** TODO flay に PR を送る (FlayTask が動かない件)
46
+ :LOGBOOK:
47
+ CLOCK: [2013-09-18 水 17:20]--[2013-09-18 水 17:21] => 0:01
48
+ :END:
49
+ [2013-09-18 水 17:20]
50
+ ** TODO bindata 1.6.0 の changelog をチェック
51
+ [2013-09-05 木 21:32]
52
+ ** TODO 各 OpenFlow メッセージのパーサを作る
53
+ [2013-09-06 金 19:27]
54
+ ** TODO Nick さんに README の英語をチェックしてもらう
55
+ [2013-09-18 水 12:01]
56
+ * Research and Development
57
+ ** TODO 0.2.0 リリース
58
+ :LOGBOOK:
59
+ CLOCK: [2013-09-13 金 16:30]--[2013-09-13 金 17:02] => 0:32
60
+ CLOCK: [2013-09-13 金 16:29]--[2013-09-13 金 16:30] => 0:01
61
+ CLOCK: [2013-09-13 金 16:28]--[2013-09-13 金 16:29] => 0:01
62
+ CLOCK: [2013-09-13 金 16:26]--[2013-09-13 金 16:27] => 0:01
63
+ CLOCK: [2013-09-13 金 16:13]--[2013-09-13 金 16:26] => 0:13
64
+ CLOCK: [2013-09-13 金 16:07]--[2013-09-13 金 16:11] => 0:04
65
+ CLOCK: [2013-09-13 金 15:53]--[2013-09-13 金 15:54] => 0:01
66
+ CLOCK: [2013-09-13 金 15:45]--[2013-09-13 金 15:48] => 0:03
67
+ CLOCK: [2013-09-13 金 14:05]--[2013-09-13 金 15:43] => 1:38
68
+ CLOCK: [2013-09-13 金 13:25]--[2013-09-13 金 13:28] => 0:03
69
+ CLOCK: [2013-09-13 金 11:40]--[2013-09-13 金 11:56] => 0:16
70
+ CLOCK: [2013-09-13 金 11:27]--[2013-09-13 金 11:28] => 0:01
71
+ CLOCK: [2013-09-13 金 10:32]--[2013-09-13 金 10:33] => 0:01
72
+ CLOCK: [2013-09-13 金 10:27]--[2013-09-13 金 10:31] => 0:04
73
+ CLOCK: [2013-09-13 金 10:06]--[2013-09-13 金 10:07] => 0:01
74
+ CLOCK: [2013-09-13 金 09:59]--[2013-09-13 金 10:05] => 0:06
75
+ CLOCK: [2013-09-05 木 11:04]--[2013-09-05 木 11:05] => 0:01
76
+ :END:
77
+ [2013-09-05 木 11:04]
78
+ *** DONE 実機で検証
79
+ CLOSED: [2013-09-19 木 13:56]
80
+ - State "DONE" from "WAITING" [2013-09-19 木 13:56]
81
+ - State "WAITING" from "TODO" [2013-09-18 水 12:00] \\
82
+ 近藤さんに再度実機でのテストを依頼中。
83
+ :LOGBOOK:
84
+ CLOCK: [2013-09-06 金 16:05]--[2013-09-06 金 16:06] => 0:01
85
+ :END:
86
+ [2013-09-06 金 16:05]
87
+
88
+ 近藤さんが実機検証環境を作り中。
89
+
90
+ その上で Arp Request をつかまえてパースしたり、Arp Request を送るだけの
91
+ 簡単なコントローラを動かし、しばらく動かしてバグがないかを確認してもら
92
+ う。
93
+
94
+ もし何か問題があれば、コードにフィードバックする。
95
+
96
+ **** DONE 実機環境を構築
97
+ CLOSED: [2013-09-18 水 12:00]
98
+ [2013-09-13 金 09:44]
99
+ *** DONE Arp::{Request,Reply} の #mandatory_options をリファクタリング
100
+ CLOSED: [2013-09-19 木 10:29] SCHEDULED: <2013-09-19 木>
101
+ :LOGBOOK:
102
+ CLOCK: [2013-09-19 木 10:23]--[2013-09-19 木 10:29] => 0:06
103
+ CLOCK: [2013-09-19 木 10:07]--[2013-09-19 木 10:08] => 0:01
104
+ :END:
105
+ :PROPERTIES:
106
+ :Effort: 0:30
107
+ :END:
108
+ [2013-09-19 木 10:07]
109
+
110
+ 今の実装だと、「必須オプション」と「それぞれの型」という 2 つの情報が
111
+ 入ってしまっている。「それぞれの型」の情報は、Arp::Message に引き上げ
112
+ たほうがいいと思う。
113
+ *** DONE FlayTask が正しく動いてるか確認
114
+ CLOSED: [2013-09-18 水 17:17] SCHEDULED: <2013-09-18 水>
115
+ [2013-09-18 水 16:54]
116
+
117
+ 最小の FlayTask だけを含んだ Rakefile を作ってみたけどやっぱりダメだっ
118
+ た。なぜか verbose = trueにしたときだけレポートが表示される。FlayTask
119
+ のバグか?
120
+ *** DONE 近藤さんからもらったキャプチャデータを試す
121
+ CLOSED: [2013-09-18 水 16:35] SCHEDULED: <2013-09-18 水>
122
+ :LOGBOOK:
123
+ CLOCK: [2013-09-18 水 16:24]--[2013-09-18 水 16:35] => 0:11
124
+ :END:
125
+ :PROPERTIES:
126
+ :Effort: 1:00
127
+ :END:
128
+ [2013-09-18 水 15:04]
129
+
130
+ https://gist.github.com/shun159/6604955
131
+ *** DONE ruby_topology を新しい Lldp.new に合わせて直す
132
+ CLOSED: [2013-09-18 水 11:12] SCHEDULED: <2013-09-18 水>
133
+ :LOGBOOK:
134
+ CLOCK: [2013-09-18 水 10:45]--[2013-09-18 水 11:12] => 0:27
135
+ CLOCK: [2013-09-17 火 22:45]--[2013-09-17 火 22:46] => 0:01
136
+ :END:
137
+ :PROPERTIES:
138
+ :Effort: 0:30
139
+ :END:
140
+ [2013-09-17 火 22:45]
141
+ *** DONE README.md に ARP の例を追加
142
+ CLOSED: [2013-09-18 水 10:19] SCHEDULED: <2013-09-18 水>
143
+ [2013-09-13 金 16:29]
144
+
145
+ できれば .org から tangle して生成したいけどそれはまた今度の話?
146
+ *** DONE ARP のオプション処理をリファクタリング
147
+ CLOSED: [2013-09-18 水 10:07] SCHEDULED: <2013-09-18 水>
148
+ :LOGBOOK:
149
+ CLOCK: [2013-09-18 水 09:19]--[2013-09-18 水 10:07] => 0:48
150
+ :END:
151
+ :PROPERTIES:
152
+ :Effort: 0:30
153
+ :END:
154
+ [2013-09-18 水 09:17]
155
+ *** DONE require "pio" ですべてロードされるようにする
156
+ CLOSED: [2013-09-17 火 15:20] SCHEDULED: <2013-09-17 火>
157
+ :LOGBOOK:
158
+ CLOCK: [2013-09-13 金 16:27]--[2013-09-13 金 16:28] => 0:01
159
+ :END:
160
+ [2013-09-13 金 16:27]
161
+
162
+ README.md にはそのように書いてあるけど、実際にはそうなっていない。
163
+ *** DONE Lldp のリファクタリング
164
+ CLOSED: [2013-09-17 火 23:01] SCHEDULED: <2013-09-17 火>
165
+ [2013-09-13 金 16:26]
166
+
167
+ ARP のテストのように Lldp.new と Lldp.read のテストだけに絞ってシンプル
168
+ にする。
169
+
170
+ **** DONE lldp_spec.rb にパーサのテストを補強
171
+ CLOSED: [2013-09-17 火 14:27] SCHEDULED: <2013-09-17 火>
172
+ :LOGBOOK:
173
+ CLOCK: [2013-09-17 火 11:08]--[2013-09-17 火 14:27] => 3:19
174
+ CLOCK: [2013-09-17 火 10:52]--[2013-09-17 火 10:53] => 0:01
175
+ :END:
176
+ :PROPERTIES:
177
+ :Effort: 0:30
178
+ :END:
179
+ [2013-09-17 火 10:52]
180
+ **** DONE lldp_spec.rb にジェネレータのテストを補強
181
+ CLOSED: [2013-09-17 火 17:43] SCHEDULED: <2013-09-17 火>
182
+ :LOGBOOK:
183
+ CLOCK: [2013-09-17 火 10:53]--[2013-09-17 火 10:54] => 0:01
184
+ :END:
185
+ :PROPERTIES:
186
+ :Effort: 2:00
187
+ :END:
188
+ [2013-09-17 火 10:53]
189
+ **** DONE README.md の Lldp の使いかたを更新
190
+ CLOSED: [2013-09-17 火 17:50] SCHEDULED: <2013-09-17 火>
191
+ :LOGBOOK:
192
+ CLOCK: [2013-09-17 火 17:45]--[2013-09-17 火 17:46] => 0:01
193
+ :END:
194
+ [2013-09-17 火 17:45]
195
+ **** DONE rake quality の警告をつぶす
196
+ CLOSED: [2013-09-17 火 21:58] SCHEDULED: <2013-09-17 火>
197
+ :LOGBOOK:
198
+ CLOCK: [2013-09-17 火 21:33]--[2013-09-17 火 21:58] => 0:25
199
+ :END:
200
+ [2013-09-17 火 21:32]
201
+ **** DONE rake spec のエラーを直す
202
+ CLOSED: [2013-09-17 火 22:06] SCHEDULED: <2013-09-17 火>
203
+ :LOGBOOK:
204
+ CLOCK: [2013-09-17 火 22:04]--[2013-09-17 火 22:06] => 0:02
205
+ CLOCK: [2013-09-17 火 22:02]--[2013-09-17 火 22:03] => 0:01
206
+ :END:
207
+ [2013-09-17 火 22:02]
208
+
209
+ 2.0 系だけ?MacBook Air で実行したら次のエラーが出た。
210
+
211
+ #+BEGIN_SRC shell
212
+ /Users/yasuhito/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/json/common.rb:270:in `pretty_generate': uninitialized constant JSON::State (NameError)
213
+ from /Users/yasuhito/.rvm/gems/ruby-2.0.0-p247/gems/simplecov-0.7.1/lib/simplecov/json.rb:16:in `dump'
214
+ from /Users/yasuhito/.rvm/gems/ruby-2.0.0-p247/gems/simplecov-0.7.1/lib/simplecov/result_merger.rb:69:in `block in store_result'
215
+ from /Users/yasuhito/.rvm/gems/ruby-2.0.0-p247/gems/simplecov-0.7.1/lib/simplecov/result_merger.rb:68:in `open'
216
+ from /Users/yasuhito/.rvm/gems/ruby-2.0.0-p247/gems/simplecov-0.7.1/lib/simplecov/result_merger.rb:68:in `store_result'
217
+ from /Users/yasuhito/.rvm/gems/ruby-2.0.0-p247/gems/simplecov-0.7.1/lib/simplecov.rb:48:in `result'
218
+ from /Users/yasuhito/.rvm/gems/ruby-2.0.0-p247/gems/simplecov-0.7.1/lib/simplecov/configuration.rb:133:in `block in at_exit'
219
+ from /Users/yasuhito/.rvm/gems/ruby-2.0.0-p247/gems/simplecov-0.7.1/lib/simplecov/defaults.rb:52:in `call'
220
+ from /Users/yasuhito/.rvm/gems/ruby-2.0.0-p247/gems/simplecov-0.7.1/lib/simplecov/defaults.rb:52:in `block in <top (required)>'
221
+ /Users/yasuhito/.rvm/rubies/ruby-2.0.0-p247/bin/ruby -S rspec ./spec/pio/arp/reply_spec.rb ./spec/pio/arp/request_spec.rb ./spec/pio/arp_spec.rb ./spec/pio/ip_spec.rb ./spec/pio/lldp/chassis-id-tlv_spec.rb ./spec/pio/lldp/end-of-lldpdu-value_spec.rb ./spec/pio/lldp/frame_spec.rb ./spec/pio/lldp/optional-tlv_spec.rb ./spec/pio/lldp/port-id-tlv_spec.rb ./spec/pio/lldp/ttl-tlv_spec.rb ./spec/pio/lldp_spec.rb ./spec/pio/mac_spec.rb failed
222
+ #+END_SRC
223
+ **** DONE いらないテストを消す
224
+ CLOSED: [2013-09-17 火 22:08] SCHEDULED: <2013-09-17 火>
225
+ :LOGBOOK:
226
+ CLOCK: [2013-09-17 火 22:06]--[2013-09-17 火 22:07] => 0:01
227
+ :END:
228
+ [2013-09-17 火 22:06]
229
+ *** DONE quality タスクの description を追加
230
+ CLOSED: [2013-09-13 金 16:13] SCHEDULED: <2013-09-13 金>
231
+ :LOGBOOK:
232
+ CLOCK: [2013-09-13 金 16:11]--[2013-09-13 金 16:13] => 0:02
233
+ :END:
234
+ [2013-09-05 木 21:32]
235
+ *** DONE Pio::Mac のテストコードを Trema から移植
236
+ CLOSED: [2013-09-13 金 16:07] SCHEDULED: <2013-09-13 金>
237
+ :LOGBOOK:
238
+ CLOCK: [2013-09-13 金 15:54]--[2013-09-13 金 16:07] => 0:13
239
+ CLOCK: [2013-09-13 金 15:44]--[2013-09-13 金 15:45] => 0:01
240
+ :END:
241
+ [2013-09-13 金 15:44]
242
+ *** DONE Pio::IP のテストコードを Trema から移植
243
+ CLOSED: [2013-09-13 金 15:53] SCHEDULED: <2013-09-13 金>
244
+ :LOGBOOK:
245
+ CLOCK: [2013-09-13 金 15:48]--[2013-09-13 金 15:53] => 0:05
246
+ CLOCK: [2013-09-13 金 15:43]--[2013-09-13 金 15:44] => 0:01
247
+ :END:
248
+ [2013-09-13 金 15:43]
249
+ *** DONE Pio::Arp::Reply#initialize の flog 警告を直す
250
+ CLOSED: [2013-09-13 金 13:25] SCHEDULED: <2013-09-13 金>
251
+ :LOGBOOK:
252
+ CLOCK: [2013-09-13 金 11:56]--[2013-09-13 金 13:25] => 1:29
253
+ CLOCK: [2013-09-13 金 10:31]--[2013-09-13 金 10:32] => 0:01
254
+ :END:
255
+ [2013-09-13 金 10:31]
256
+ *** DONE Pio::Arp::Request#initialize の flog 警告を直す
257
+ CLOSED: [2013-09-13 金 11:27] SCHEDULED: <2013-09-13 金>
258
+ :LOGBOOK:
259
+ CLOCK: [2013-09-13 金 10:33]--[2013-09-13 金 11:27] => 0:54
260
+ :END:
261
+ [2013-09-13 金 10:32]
262
+ *** DONE Pio::IP#prefixlen の reek 警告部分を直す
263
+ CLOSED: [2013-09-13 金 10:27] SCHEDULED: <2013-09-13 金>
264
+ :LOGBOOK:
265
+ CLOCK: [2013-09-13 金 10:07]--[2013-09-13 金 10:27] => 0:20
266
+ CLOCK: [2013-09-13 金 10:05]--[2013-09-13 金 10:06] => 0:01
267
+ :END:
268
+ [2013-09-13 金 10:05]
269
+
270
+ 次の警告が出ている。
271
+
272
+ #+BEGIN_SRC shell
273
+ % rake quality
274
+ lib/pio/ip.rb -- 3 warnings:
275
+ Pio::IP#prefixlen has approx 6 statements (TooManyStatements)
276
+ Pio::IP#prefixlen refers to mask more than self (FeatureEnvy)
277
+ Pio::IP#prefixlen refers to range more than self (FeatureEnvy)
278
+ 3 total warnings
279
+ #+END_SRC
280
+ *** DONE rake quality が最後まで走るようにする
281
+ CLOSED: [2013-09-13 金 09:59] SCHEDULED: <2013-09-13 金>
282
+ :LOGBOOK:
283
+ CLOCK: [2013-09-13 金 09:57]--[2013-09-13 金 09:59] => 0:02
284
+ CLOCK: [2013-09-13 金 09:50]--[2013-09-13 金 09:51] => 0:01
285
+ :END:
286
+ [2013-09-13 金 09:50]
287
+
288
+ いまの reek, flog タスク等は問題があったときに例外を上げてそこで止まっ
289
+ てしまうので、次のタスクに行かない。そうではなくて、エラーメッセージだ
290
+ け出して quality タスク全体をひととおり実行するように直す。
291
+ *** DONE ARP パーサを作る (Pio::Arp.read)
292
+ CLOSED: [2013-09-12 木 14:57]
293
+ [2013-08-02 金 17:19]
294
+ **** DONE rake quality にかける
295
+ CLOSED: [2013-09-12 木 11:48] SCHEDULED: <2013-09-12 木>
296
+ [2013-09-12 木 09:09]
297
+ **** DONE RSpec の見直し
298
+ CLOSED: [2013-09-12 木 11:36] SCHEDULED: <2013-09-12 木>
299
+ :LOGBOOK:
300
+ CLOCK: [2013-09-12 木 10:30]--[2013-09-12 木 11:36] => 1:06
301
+ CLOCK: [2013-09-11 水 21:36]--[2013-09-11 水 21:37] => 0:01
302
+ :END:
303
+ [2013-09-11 水 21:36]
304
+
305
+ ここに書いてあるベストプラクティスを参考に、ひととおり見直す。
306
+ http://betterspecs.org/jp/
307
+ **** DONE Arp.read でパースした結果の各フィールドのテストを追加
308
+ CLOSED: [2013-09-12 木 10:08] SCHEDULED: <2013-09-12 木>
309
+ [2013-09-11 水 15:47]
310
+ **** DONE pio/lldp/mac-address.rb -> pio/mac-address.rb に変更
311
+ CLOSED: [2013-09-09 月 13:52]
312
+ :LOGBOOK:
313
+ CLOCK: [2013-09-06 金 16:02]--[2013-09-06 金 16:03] => 0:01
314
+ :END:
315
+ [2013-09-06 金 16:02]
316
+ **** DONE ARP Reply のテストを追加
317
+ CLOSED: [2013-09-09 月 14:17] SCHEDULED: <2013-09-09 月>
318
+ [2013-09-06 金 16:04]
319
+ **** DONE operation の値で ArpRequest と ArpReply クラスを変える
320
+ CLOSED: [2013-09-11 水 14:30]
321
+ :LOGBOOK:
322
+ CLOCK: [2013-09-06 金 16:23]--[2013-09-06 金 16:24] => 0:01
323
+ :END:
324
+ [2013-09-06 金 16:23]
325
+ **** DONE 金曜日分の作業を近藤さんリポジトリに push する
326
+ CLOSED: [2013-09-06 金 16:22]
327
+ :LOGBOOK:
328
+ CLOCK: [2013-09-06 金 16:14]--[2013-09-06 金 16:15] => 0:01
329
+ :END:
330
+ [2013-09-06 金 16:14]
331
+ **** DONE Arp.read で ArpRequest or ArpReply が返ってくる部分のテストを書く
332
+ CLOSED: [2013-09-11 水 14:30]
333
+ [2013-09-11 水 14:10]
334
+ **** DONE いらないファイルがないか探して消す
335
+ CLOSED: [2013-09-11 水 14:54]
336
+ [2013-09-09 月 14:19]
337
+ **** DONE lib/pio/arp/ip-address.rb -> lib/pio/type/ip-address.rb
338
+ CLOSED: [2013-09-11 水 15:45]
339
+ :LOGBOOK:
340
+ CLOCK: [2013-09-11 水 15:43]--[2013-09-11 水 15:44] => 0:01
341
+ :END:
342
+ [2013-09-11 水 15:43]
343
+ **** DONE lib/pio/mac-address.rb -> lib/pio/type/mac-address.rb
344
+ CLOSED: [2013-09-11 水 15:42]
345
+ :LOGBOOK:
346
+ CLOCK: [2013-09-11 水 15:38]--[2013-09-11 水 15:39] => 0:01
347
+ :END:
348
+ [2013-09-11 水 15:38]
349
+ **** DONE 調べる: ARP request と reply でパディングが付くのはどんなとき?
350
+ CLOSED: [2013-09-11 水 15:06]
351
+ :LOGBOOK:
352
+ CLOCK: [2013-09-09 月 14:02]--[2013-09-09 月 14:03] => 0:01
353
+ :END:
354
+ [2013-09-09 月 14:02]
355
+
356
+ 近藤さんが時間のあるときに調べる。
357
+ **** DONE リネーム ArpRequest -> Arp::Request
358
+ CLOSED: [2013-09-11 水 15:01]
359
+ [2013-09-11 水 14:56]
360
+ **** DONE リネーム ArpReply -> Arp::Reply
361
+ CLOSED: [2013-09-11 水 15:05]
362
+ [2013-09-11 水 14:57]
363
+ *** DONE Arp Request のジェネレータを作る (Pio::Arp::Request.new) :Request:
364
+ CLOSED: [2013-09-12 木 14:57]
365
+ :LOGBOOK:
366
+ CLOCK: [2013-09-10 火 11:36]--[2013-09-10 火 11:38] => 0:02
367
+ CLOCK: [2013-09-10 火 11:08]--[2013-09-10 火 11:10] => 0:02
368
+ CLOCK: [2013-09-10 火 10:47]--[2013-09-10 火 10:48] => 0:01
369
+ :END:
370
+ [2013-09-09 月 15:23]
371
+ **** DONE #to_binary を追加
372
+ CLOSED: [2013-09-12 木 14:36] SCHEDULED: <2013-09-12 木>
373
+ [2013-09-12 木 11:51]
374
+ **** DONE RSpec の見直し
375
+ CLOSED: [2013-09-12 木 14:36] SCHEDULED: <2013-09-12 木>
376
+ :LOGBOOK:
377
+ CLOCK: [2013-09-12 木 13:34]--[2013-09-12 木 14:09] => 0:35
378
+ CLOCK: [2013-09-11 水 21:36]--[2013-09-11 水 21:37] => 0:01
379
+ :END:
380
+ [2013-09-11 水 21:36]
381
+
382
+ ここに書いてあるベストプラクティスを参考に、ひととおり見直す。
383
+ http://betterspecs.org/jp/
384
+ **** DONE rake quality にかける
385
+ CLOSED: [2013-09-12 木 14:44] SCHEDULED: <2013-09-12 木>
386
+ [2013-09-12 木 08:47]
387
+ **** DONE Trema の IP アドレスクラスを持ってくる
388
+ CLOSED: [2013-09-11 水 14:05]
389
+ [2013-09-11 水 13:41]
390
+ **** DONE Trema の Mac クラスを Pio に持ってくる
391
+ CLOSED: [2013-09-11 水 13:40] SCHEDULED: <2013-09-11 水>
392
+ :LOGBOOK:
393
+ CLOCK: [2013-09-11 水 11:17]--[2013-09-11 水 11:18] => 0:01
394
+ :END:
395
+ [2013-09-11 水 11:17]
396
+ **** DONE #new に必須オプションが渡されてないときのエラー処理
397
+ CLOSED: [2013-09-11 水 11:03]
398
+ [2013-09-10 火 11:38]
399
+ **** DONE 整数 -> 8bit int の Array に変換するエレガントな書き方
400
+ CLOSED: [2013-09-10 火 11:36] SCHEDULED: <2013-09-10 火>
401
+ :LOGBOOK:
402
+ CLOCK: [2013-09-10 火 11:10]--[2013-09-10 火 11:36] => 0:26
403
+ :END:
404
+ [2013-09-09 月 17:13]
405
+ **** DONE IP アドレスを文字列で指定できるようにする
406
+ CLOSED: [2013-09-10 火 11:08] SCHEDULED: <2013-09-10 火>
407
+ :LOGBOOK:
408
+ CLOCK: [2013-09-10 火 10:48]--[2013-09-10 火 11:08] => 0:20
409
+ :END:
410
+ [2013-09-09 月 17:10]
411
+ **** DONE 00:00:00:00:00:00 な MAC アドレスの名前を調べる
412
+ CLOSED: [2013-09-10 火 10:47] SCHEDULED: <2013-09-10 火>
413
+ :LOGBOOK:
414
+ CLOCK: [2013-09-10 火 10:45]--[2013-09-10 火 10:47] => 0:02
415
+ :END:
416
+ [2013-09-09 月 15:53]
417
+ **** DONE MAC アドレスを文字列で指定できるようにする
418
+ CLOSED: [2013-09-09 月 17:10]
419
+ [2013-09-09 月 15:58]
420
+ **** DONE ARP Request を生成するテストを追加
421
+ CLOSED: [2013-09-09 月 15:56]
422
+ [2013-09-09 月 14:25]
423
+ *** DONE Arp Reply のジェネレータを作る (Pio::Arp::Reply.new) :Reply:
424
+ CLOSED: [2013-09-12 木 14:57]
425
+ [2013-09-09 月 15:26]
426
+ **** DONE #to_binary を追加
427
+ CLOSED: [2013-09-12 木 14:36] SCHEDULED: <2013-09-12 木>
428
+ [2013-09-12 木 11:51]
429
+ **** DONE RSpec の見直し
430
+ CLOSED: [2013-09-12 木 14:36] SCHEDULED: <2013-09-12 木>
431
+ :LOGBOOK:
432
+ CLOCK: [2013-09-12 木 14:09]--[2013-09-12 木 14:36] => 0:27
433
+ CLOCK: [2013-09-11 水 21:36]--[2013-09-11 水 21:37] => 0:01
434
+ :END:
435
+ [2013-09-11 水 21:36]
436
+
437
+ ここに書いてあるベストプラクティスを参考に、ひととおり見直す。
438
+ http://betterspecs.org/jp/
439
+ **** DONE rake quality にかける
440
+ CLOSED: [2013-09-12 木 14:44] SCHEDULED: <2013-09-12 木>
441
+ :LOGBOOK:
442
+ CLOCK: [2013-09-12 木 09:09]--[2013-09-12 木 09:10] => 0:01
443
+ :END:
444
+ [2013-09-12 木 09:09]
445
+ **** DONE ARP Reply を生成するテストを追加
446
+ [2013-09-09 月 14:27]
447
+ *** DONE Arp::Frame と Lldp::Frame の Ethernet ヘッダ部分を共通化
448
+ CLOSED: [2013-09-12 木 15:15] SCHEDULED: <2013-09-12 木>
449
+ :LOGBOOK:
450
+ CLOCK: [2013-09-12 木 14:58]--[2013-09-12 木 15:15] => 0:17
451
+ CLOCK: [2013-09-06 金 16:10]--[2013-09-06 金 16:13] => 0:03
452
+ :END:
453
+ [2013-09-06 金 16:10]
454
+
455
+ たとえば、以下のように 3 つのフィールドがひとつにまとまることになる。
456
+
457
+ #+BEGIN_SRC ruby
458
+ mac_address :destination_mac
459
+ mac_address :source_mac
460
+ uint16 :ether_type, :value => 0x0806
461
+
462
+ #=>
463
+
464
+ ethernet :ethernet
465
+ # or
466
+ ehternet :l2
467
+ #+END_SRC
468
+
469
+ みたいな感じ?
470
+ *** DONE Lldp の :ethertype -> :ether_type に名前を変更
471
+ CLOSED: [2013-09-12 木 15:18] SCHEDULED: <2013-09-12 木>
472
+ :LOGBOOK:
473
+ CLOCK: [2013-09-12 木 15:16]--[2013-09-12 木 15:18] => 0:02
474
+ CLOCK: [2013-09-06 金 20:38]--[2013-09-06 金 20:39] => 0:01
475
+ :END:
476
+ [2013-09-06 金 20:38]
477
+ *** DONE guard の "ambiguous option stat" を直す
478
+ CLOSED: [2013-09-12 木 09:35] SCHEDULED: <2013-09-12 木>
479
+ :LOGBOOK:
480
+ CLOCK: [2013-09-12 木 09:19]--[2013-09-12 木 09:35] => 0:16
481
+ CLOCK: [2013-09-12 木 09:16]--[2013-09-12 木 09:17] => 0:01
482
+ :END:
483
+ [2013-09-12 木 09:16]
484
+ *** DONE フィールド名を修正
485
+ :LOGBOOK:
486
+ CLOCK: [2013-09-10 火 14:46]--[2013-09-10 火 14:48] => 0:02
487
+ :END:
488
+ [2013-09-10 火 14:46]
489
+
490
+ - :source_hardware_address -> :sender_hardware_address
491
+ - :source_protocol_address -> :sender_protocol_address
492
+ *** DONE Arp::Request と Arp::Reply の共通部分をクラスに引き上げ
493
+ CLOSED: [2013-09-13 金 14:05] SCHEDULED: <2013-09-13 金>
494
+ :LOGBOOK:
495
+ CLOCK: [2013-09-13 金 13:28]--[2013-09-13 金 14:05] => 0:37
496
+ :END:
497
+ [2013-09-13 金 13:28]
498
+ ** WAITING 0.3.0 リリース :WAITING:
499
+ - State "WAITING" from "TODO" [2013-09-06 金 17:17] \\
500
+ 0.2.0 が無事に出てから
501
+ [2013-09-05 木 17:29]
502
+ *** TODO ICMP パーサを作る
503
+ [2013-08-02 金 17:19]
504
+ *** NEXT YARD の警告をつぶす
505
+ SCHEDULED: <2014-08-19 火>
506
+ :PROPERTIES:
507
+ :Effort: 0:30
508
+ :END:
509
+ [2013-07-31 水 15:32]
510
+ ** WAITING 0.4.0 リリース :WAITING:
511
+ - State "WAITING" from "TODO" [2013-09-06 金 17:18] \\
512
+ 0.3.0 が無事に出てから。
513
+ [2013-09-06 金 16:30]
514
+ *** TODO DHCP パーサを作る
515
+ [2013-08-02 金 17:17]
516
+
517
+ 近藤さんがすでにコーディング中。Pull-Request が来たらいっしょにリファ
518
+ クタリングして取り込む予定。