pio 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rspec +2 -0
- data/Gemfile +3 -2
- data/Guardfile +4 -1
- data/README.md +44 -6
- data/Rakefile +5 -23
- data/lib/pio.rb +15 -0
- data/lib/pio/arp.rb +31 -0
- data/lib/pio/arp/frame.rb +38 -0
- data/lib/pio/arp/message.rb +66 -0
- data/lib/pio/arp/reply.rb +55 -0
- data/lib/pio/arp/request.rb +55 -0
- data/lib/pio/ip.rb +90 -0
- data/lib/pio/lldp.rb +74 -12
- data/lib/pio/lldp/frame.rb +53 -4
- data/lib/pio/lldp/management-address-value.rb +7 -1
- data/lib/pio/lldp/optional-tlv.rb +3 -1
- data/lib/pio/lldp/organizationally-specific-value.rb +23 -0
- data/lib/pio/mac.rb +156 -0
- data/lib/pio/type/ethernet-header.rb +16 -0
- data/lib/pio/type/ip-address.rb +28 -0
- data/lib/pio/{lldp → type}/mac-address.rb +4 -3
- data/lib/pio/version.rb +1 -19
- data/pio.org +518 -0
- data/pio.org_archive +389 -0
- data/spec/pio/arp/reply_spec.rb +150 -0
- data/spec/pio/arp/request_spec.rb +131 -0
- data/spec/pio/arp_spec.rb +136 -0
- data/spec/pio/ip_spec.rb +38 -0
- data/spec/pio/lldp_spec.rb +195 -38
- data/spec/pio/mac_spec.rb +82 -0
- data/spec/spec_helper.rb +9 -0
- metadata +27 -17
- data/spec/pio/lldp/chassis-id-tlv_spec.rb +0 -27
- data/spec/pio/lldp/end-of-lldpdu-value_spec.rb +0 -20
- data/spec/pio/lldp/frame_spec.rb +0 -82
- data/spec/pio/lldp/mac-address_spec.rb +0 -20
- data/spec/pio/lldp/optional-tlv_spec.rb +0 -81
- data/spec/pio/lldp/port-id-tlv_spec.rb +0 -27
- data/spec/pio/lldp/ttl-tlv_spec.rb +0 -26
@@ -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
|
-
|
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
|
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
|
data/lib/pio/version.rb
CHANGED
@@ -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.
|
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
|
+
クタリングして取り込む予定。
|