pio 0.2.1 → 0.2.2
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/.gitignore +2 -1
- data/.rspec +1 -0
- data/lib/pio/arp/frame.rb +3 -3
- data/lib/pio/arp/message.rb +5 -4
- data/lib/pio/arp/reply.rb +0 -1
- data/lib/pio/arp/request.rb +2 -3
- data/lib/pio/ipv4_address.rb +149 -0
- data/lib/pio/lldp.rb +2 -2
- data/lib/pio/lldp/{chassis-id-tlv.rb → chassis_id_tlv.rb} +0 -0
- data/lib/pio/lldp/{end-of-lldpdu-value.rb → end_of_lldpdu_value.rb} +0 -0
- data/lib/pio/lldp/frame.rb +5 -5
- data/lib/pio/lldp/{management-address-value.rb → management_address_value.rb} +0 -0
- data/lib/pio/lldp/{optional-tlv.rb → optional_tlv.rb} +7 -7
- data/lib/pio/lldp/{organizationally-specific-value.rb → organizationally_specific_value.rb} +0 -0
- data/lib/pio/lldp/{port-description-value.rb → port_description_value.rb} +0 -0
- data/lib/pio/lldp/{port-id-tlv.rb → port_id_tlv.rb} +0 -0
- data/lib/pio/lldp/{system-capabilities-value.rb → system_capabilities_value.rb} +0 -0
- data/lib/pio/lldp/{system-description-value.rb → system_description_value.rb} +0 -0
- data/lib/pio/lldp/{system-name-value.rb → system_name_value.rb} +0 -0
- data/lib/pio/lldp/{ttl-tlv.rb → ttl_tlv.rb} +0 -0
- data/lib/pio/mac.rb +4 -4
- data/lib/pio/type/{ethernet-header.rb → ethernet_header.rb} +1 -1
- data/lib/pio/type/{ip-address.rb → ip_address.rb} +2 -1
- data/lib/pio/type/{mac-address.rb → mac_address.rb} +0 -0
- data/lib/pio/version.rb +1 -1
- data/pio.org +69 -445
- data/pio.org_archive +451 -0
- data/spec/pio/arp/reply_spec.rb +4 -5
- data/spec/pio/arp/request_spec.rb +5 -6
- data/spec/pio/arp_spec.rb +0 -1
- data/spec/pio/ipv4_address_spec.rb +99 -0
- data/spec/pio/lldp_spec.rb +0 -1
- data/spec/pio/mac_spec.rb +3 -4
- metadata +19 -19
- data/lib/pio/ip.rb +0 -90
- data/spec/pio/ip_spec.rb +0 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffde8b15ff26955c6cb9bb0351d5dccd1eae1c00
|
4
|
+
data.tar.gz: 5bdb5cf6cba9138b660b72f856058cca8b813a45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13f6c6425349b174caf3b3b0d9b799bd94d115a7f099d53ae026da3541af39c5e5f2d6168ff27a1dc1eda99e140207f42f5d3ba67a137c30af49f06098b8fe93
|
7
|
+
data.tar.gz: b63d0743cec0bf45b016c963b74d95105858383e8b01601915df9eeb803d6c5906148e2f419a71d5957305617d8e80dfd495fe7170213cc582eb37bccaf39c3f
|
data/.gitignore
CHANGED
data/.rspec
CHANGED
data/lib/pio/arp/frame.rb
CHANGED
data/lib/pio/arp/message.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
require "pio/arp/frame"
|
2
1
|
require "forwardable"
|
2
|
+
require "pio/arp/frame"
|
3
|
+
require "pio/ipv4_address"
|
3
4
|
|
4
5
|
|
5
6
|
module Pio
|
@@ -45,7 +46,7 @@ module Pio
|
|
45
46
|
def option_hash
|
46
47
|
mandatory_options.inject( {} ) do | opt, each |
|
47
48
|
klass = option_to_klass[ each ]
|
48
|
-
opt_pair = { each => klass.new( user_options[ each ] ).
|
49
|
+
opt_pair = { each => klass.new( user_options[ each ] ).to_ary }
|
49
50
|
opt.merge opt_pair
|
50
51
|
end.merge default_options
|
51
52
|
end
|
@@ -57,8 +58,8 @@ module Pio
|
|
57
58
|
:destination_mac => Mac,
|
58
59
|
:sender_hardware_address => Mac,
|
59
60
|
:target_hardware_address => Mac,
|
60
|
-
:sender_protocol_address =>
|
61
|
-
:target_protocol_address =>
|
61
|
+
:sender_protocol_address => IPv4Address,
|
62
|
+
:target_protocol_address => IPv4Address,
|
62
63
|
}
|
63
64
|
end
|
64
65
|
end
|
data/lib/pio/arp/reply.rb
CHANGED
data/lib/pio/arp/request.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require "pio/arp/frame"
|
2
2
|
require "pio/arp/message"
|
3
|
-
require "pio/ip"
|
4
3
|
require "pio/mac"
|
5
4
|
|
6
5
|
|
@@ -10,8 +9,8 @@ module Pio
|
|
10
9
|
class Request < Message
|
11
10
|
OPERATION = 1
|
12
11
|
|
13
|
-
BROADCAST_MAC_ADDRESS = Mac.new( 0xffffffffffff ).
|
14
|
-
ALL_ZERO_MAC_ADDRESS = Mac.new( 0 ).
|
12
|
+
BROADCAST_MAC_ADDRESS = Mac.new( 0xffffffffffff ).to_ary
|
13
|
+
ALL_ZERO_MAC_ADDRESS = Mac.new( 0 ).to_ary
|
15
14
|
|
16
15
|
|
17
16
|
########################################################################
|
@@ -0,0 +1,149 @@
|
|
1
|
+
require "forwardable"
|
2
|
+
require "ipaddr"
|
3
|
+
|
4
|
+
|
5
|
+
module Pio
|
6
|
+
#
|
7
|
+
# IPv4 Address
|
8
|
+
#
|
9
|
+
class IPv4Address
|
10
|
+
extend Forwardable
|
11
|
+
|
12
|
+
|
13
|
+
#
|
14
|
+
# @return [IPAddr] value object instance of proxied IPAddr.
|
15
|
+
#
|
16
|
+
attr_reader :value
|
17
|
+
|
18
|
+
|
19
|
+
#
|
20
|
+
# Creates a {IPv4Address} instance object as a proxy to IPAddr class.
|
21
|
+
#
|
22
|
+
# @overload initialize(addr)
|
23
|
+
#
|
24
|
+
# @param [String|Number] addr
|
25
|
+
# an IPv4 address specified either as a String or Number.
|
26
|
+
#
|
27
|
+
# @raise [TypeError] invalid address if supplied argument is invalid
|
28
|
+
#
|
29
|
+
# @return [IPv4Address] self
|
30
|
+
# a proxy to IPAddr.
|
31
|
+
#
|
32
|
+
def initialize addr
|
33
|
+
case addr
|
34
|
+
when Integer
|
35
|
+
@value = IPAddr.new( addr, Socket::AF_INET )
|
36
|
+
when String
|
37
|
+
@value = IPAddr.new( addr )
|
38
|
+
else
|
39
|
+
raise TypeError, "Invalid IPv4 address: #{ addr.inspect }"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
#
|
45
|
+
# @return [String] the IPv4 address in its text representation.
|
46
|
+
#
|
47
|
+
def_delegator :value, :to_s
|
48
|
+
|
49
|
+
|
50
|
+
#
|
51
|
+
# @return [Number] the IPv4 address in its numeric representation.
|
52
|
+
#
|
53
|
+
def_delegator :value, :to_i
|
54
|
+
|
55
|
+
|
56
|
+
#
|
57
|
+
# @return [Array]
|
58
|
+
# an array of decimal numbers converted from IPv4 address.
|
59
|
+
#
|
60
|
+
def to_ary
|
61
|
+
to_s.split( "." ).collect do | each |
|
62
|
+
each.to_i
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
#
|
68
|
+
# @return [IPv4Address]
|
69
|
+
# Returns the IPv4 address masked with masklen.
|
70
|
+
#
|
71
|
+
def mask! masklen
|
72
|
+
@value = @value.mask( masklen )
|
73
|
+
return self
|
74
|
+
end
|
75
|
+
alias :prefix! :mask!
|
76
|
+
|
77
|
+
|
78
|
+
#
|
79
|
+
# @return [IPv4Address]
|
80
|
+
# Returns the IPv4 address masked with masklen.
|
81
|
+
#
|
82
|
+
def mask masklen
|
83
|
+
self.clone.mask!( masklen )
|
84
|
+
end
|
85
|
+
alias :prefix :mask
|
86
|
+
|
87
|
+
|
88
|
+
#
|
89
|
+
# @return [bool]
|
90
|
+
# Returns true if the address belongs to class A.
|
91
|
+
#
|
92
|
+
def class_a?
|
93
|
+
mask( 1 ).to_s == "0.0.0.0"
|
94
|
+
end
|
95
|
+
|
96
|
+
|
97
|
+
#
|
98
|
+
# @return [bool]
|
99
|
+
# Returns true if the address belongs to class B.
|
100
|
+
#
|
101
|
+
def class_b?
|
102
|
+
mask( 2 ).to_s == "128.0.0.0"
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
#
|
107
|
+
# @return [bool]
|
108
|
+
# Returns true if the address belongs to class C.
|
109
|
+
#
|
110
|
+
def class_c?
|
111
|
+
mask( 3 ).to_s == "192.0.0.0"
|
112
|
+
end
|
113
|
+
|
114
|
+
|
115
|
+
#
|
116
|
+
# @return [bool]
|
117
|
+
# Returns true if the address belongs to class D.
|
118
|
+
#
|
119
|
+
def class_d?
|
120
|
+
mask( 4 ).to_s == "224.0.0.0"
|
121
|
+
end
|
122
|
+
alias :multicast? :class_d?
|
123
|
+
|
124
|
+
|
125
|
+
#
|
126
|
+
# @return [bool]
|
127
|
+
# Returns true if the address belongs to class E.
|
128
|
+
#
|
129
|
+
def class_e?
|
130
|
+
mask( 4 ).to_s == "240.0.0.0"
|
131
|
+
end
|
132
|
+
|
133
|
+
|
134
|
+
#
|
135
|
+
# @return [bool]
|
136
|
+
# Returns true if the address is unicast address.
|
137
|
+
#
|
138
|
+
def unicast?
|
139
|
+
class_a? or class_b? or class_c?
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
|
145
|
+
### Local variables:
|
146
|
+
### mode: Ruby
|
147
|
+
### coding: utf-8-unix
|
148
|
+
### indent-tabs-mode: nil
|
149
|
+
### End:
|
data/lib/pio/lldp.rb
CHANGED
@@ -21,8 +21,8 @@ module Pio
|
|
21
21
|
|
22
22
|
def to_hash
|
23
23
|
{
|
24
|
-
:destination_mac => Mac.new( destination_mac ).
|
25
|
-
:source_mac => Mac.new( source_mac ).
|
24
|
+
:destination_mac => Mac.new( destination_mac ).to_ary,
|
25
|
+
:source_mac => Mac.new( source_mac ).to_ary,
|
26
26
|
:chassis_id => dpid,
|
27
27
|
:port_id => port_id
|
28
28
|
}
|
File without changes
|
File without changes
|
data/lib/pio/lldp/frame.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require "rubygems"
|
2
2
|
require "bindata"
|
3
3
|
|
4
|
-
require "pio/lldp/
|
5
|
-
require "pio/lldp/
|
6
|
-
require "pio/lldp/
|
7
|
-
require "pio/lldp/
|
8
|
-
require "pio/type/
|
4
|
+
require "pio/lldp/chassis_id_tlv"
|
5
|
+
require "pio/lldp/optional_tlv"
|
6
|
+
require "pio/lldp/port_id_tlv"
|
7
|
+
require "pio/lldp/ttl_tlv"
|
8
|
+
require "pio/type/ethernet_header"
|
9
9
|
|
10
10
|
|
11
11
|
module Pio
|
File without changes
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require "pio/lldp/
|
2
|
-
require "pio/lldp/
|
3
|
-
require "pio/lldp/
|
4
|
-
require "pio/lldp/
|
5
|
-
require "pio/lldp/
|
6
|
-
require "pio/lldp/
|
7
|
-
require "pio/lldp/
|
1
|
+
require "pio/lldp/port_description_value"
|
2
|
+
require "pio/lldp/system_name_value"
|
3
|
+
require "pio/lldp/system_description_value"
|
4
|
+
require "pio/lldp/system_capabilities_value"
|
5
|
+
require "pio/lldp/management_address_value"
|
6
|
+
require "pio/lldp/organizationally_specific_value"
|
7
|
+
require "pio/lldp/end_of_lldpdu_value"
|
8
8
|
|
9
9
|
|
10
10
|
module Pio
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/pio/mac.rb
CHANGED
@@ -73,11 +73,11 @@ module Pio
|
|
73
73
|
# address string format.
|
74
74
|
#
|
75
75
|
# @example
|
76
|
-
# Mac.new("11:22:33:44:55:66").
|
76
|
+
# Mac.new("11:22:33:44:55:66").to_ary #=> [ 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 ]
|
77
77
|
#
|
78
78
|
# @return [Array] the Ethernet address in Array format
|
79
79
|
#
|
80
|
-
def
|
80
|
+
def to_ary
|
81
81
|
@string.split( ":" ).collect do | each |
|
82
82
|
each.hex
|
83
83
|
end
|
@@ -103,7 +103,7 @@ module Pio
|
|
103
103
|
# @return [Boolean] whether the Ethernet address is multicast
|
104
104
|
#
|
105
105
|
def multicast?
|
106
|
-
|
106
|
+
to_ary[ 0 ] & 1 == 1
|
107
107
|
end
|
108
108
|
|
109
109
|
|
@@ -116,7 +116,7 @@ module Pio
|
|
116
116
|
# @return [Boolean] whether the Ethernet address is broadcast
|
117
117
|
#
|
118
118
|
def broadcast?
|
119
|
-
|
119
|
+
to_ary.all? { | each | each == 0xff }
|
120
120
|
end
|
121
121
|
|
122
122
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "bindata"
|
2
|
+
require "pio/ipv4_address"
|
2
3
|
|
3
4
|
|
4
5
|
module Pio
|
@@ -14,7 +15,7 @@ module Pio
|
|
14
15
|
|
15
16
|
|
16
17
|
def get
|
17
|
-
|
18
|
+
IPv4Address.new octets.collect { | each | "%d" % each }.join( "." )
|
18
19
|
end
|
19
20
|
end
|
20
21
|
end
|
File without changes
|
data/lib/pio/version.rb
CHANGED
data/pio.org
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#+TITLE: Pio
|
1
|
+
#+TITLE: Pio の開発
|
2
2
|
#+FILETAGS: PIO
|
3
3
|
#+ICALENDAR_EXCLUDE_TAGS: noex
|
4
4
|
|
@@ -14,6 +14,13 @@ CLOCK: [2013-09-05 木 17:30]--[2013-09-05 木 17:31] => 0:01
|
|
14
14
|
|
15
15
|
近藤さんおすすめの ARP フォーマット解説。
|
16
16
|
http://www.n-study.com/network/arpheader.htm
|
17
|
+
** ICMP のテスト用データ :NOTE:
|
18
|
+
:LOGBOOK:
|
19
|
+
CLOCK: [2013-09-22 日 22:25]--[2013-09-22 日 22:26] => 0:01
|
20
|
+
:END:
|
21
|
+
[2013-09-22 日 22:25]
|
22
|
+
|
23
|
+
https://gist.github.com/shun159/6647589
|
17
24
|
** ターミナルでペアプロするための設定 :NOTE:
|
18
25
|
:LOGBOOK:
|
19
26
|
CLOCK: [2013-07-22 月 09:29]--[2013-07-22 月 09:30] => 0:01
|
@@ -25,488 +32,105 @@ CLOCK: [2013-07-22 月 09:29]--[2013-07-22 月 09:30] => 0:01
|
|
25
32
|
[2013-07-22 月 09:29]
|
26
33
|
|
27
34
|
http://www.zeespencer.com/articles/building-a-remote-pairing-setup/
|
35
|
+
** ICMP フォーマット :NOTE:
|
36
|
+
[2013-09-22 日 23:09]
|
37
|
+
|
38
|
+
http:///www.asahi-net.or.jp/~aa4t-nngk/ipttut/output/icmpheaders.html
|
28
39
|
* Tasks
|
29
40
|
このアイテムをそれぞれのリリースに割り振る。
|
30
41
|
** NEXT git パスワードを省略できるように
|
31
42
|
[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
43
|
** TODO bindata 1.6.0 の changelog をチェック
|
51
44
|
[2013-09-05 木 21:32]
|
52
45
|
** TODO 各 OpenFlow メッセージのパーサを作る
|
53
46
|
[2013-09-06 金 19:27]
|
54
47
|
** TODO Nick さんに README の英語をチェックしてもらう
|
55
48
|
[2013-09-18 水 12:01]
|
56
|
-
|
57
|
-
|
49
|
+
** TODO phost を Pio で書き直す
|
50
|
+
[2013-09-24 火 15:36]
|
51
|
+
* Releases
|
52
|
+
** TODO 0.2.2 リリース
|
58
53
|
:LOGBOOK:
|
59
|
-
CLOCK: [2013-09-
|
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
|
54
|
+
CLOCK: [2013-09-19 木 14:29]--[2013-09-19 木 16:39] => 2:10
|
76
55
|
:END:
|
77
|
-
[2013-09-
|
78
|
-
*** DONE
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
56
|
+
[2013-09-19 木 14:17]
|
57
|
+
*** DONE IP -> IPv4Address
|
58
|
+
SCHEDULED: <2013-09-26 木>
|
59
|
+
[2013-09-26 木 13:33]
|
60
|
+
*** DONE 鈴木さんの IPv4Address への PR を Pio へ誘導
|
61
|
+
CLOSED: [2013-09-19 木 14:29] SCHEDULED: <2013-09-19 木>
|
83
62
|
:LOGBOOK:
|
84
|
-
CLOCK: [2013-09-
|
63
|
+
CLOCK: [2013-09-19 木 14:27]--[2013-09-19 木 14:29] => 0:02
|
85
64
|
:END:
|
86
|
-
[2013-09-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
その上で Arp Request をつかまえてパースしたり、Arp Request を送るだけの
|
91
|
-
簡単なコントローラを動かし、しばらく動かしてバグがないかを確認してもら
|
92
|
-
う。
|
65
|
+
- State "TODO" from "WAITING" [2013-09-19 木 14:18]
|
66
|
+
- State "WAITING" from "TODO" [2013-09-18 水 12:05] \\
|
67
|
+
0.2.0 をリリースしてから。
|
68
|
+
[2013-09-14 土 10:22]
|
93
69
|
|
94
|
-
|
70
|
+
鈴木さんが trema-edge に出している PR はこちら
|
71
|
+
https://github.com/trema/trema-edge/pull/22
|
95
72
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
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:
|
73
|
+
コメントしておいた。
|
74
|
+
https://github.com/trema/trema-edge/pull/22#issuecomment-24717877
|
75
|
+
*** DONE チケットを切ったことを鈴木さんに確認
|
76
|
+
CLOSED: [2013-09-24 火 20:57] SCHEDULED: <2013-09-24 火 13:45>
|
105
77
|
:PROPERTIES:
|
106
|
-
:Effort: 0:
|
78
|
+
:Effort: 0:05
|
107
79
|
:END:
|
108
|
-
[2013-09-
|
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 水>
|
80
|
+
[2013-09-20 金 09:26]
|
81
|
+
** TODO 0.2.3 リリース
|
122
82
|
:LOGBOOK:
|
123
|
-
CLOCK: [2013-09-
|
124
|
-
:END:
|
125
|
-
:PROPERTIES:
|
126
|
-
:Effort: 1:00
|
83
|
+
CLOCK: [2013-09-26 木 13:31]--[2013-09-26 木 13:32] => 0:01
|
127
84
|
:END:
|
128
|
-
[2013-09-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
85
|
+
[2013-09-26 木 13:31]
|
86
|
+
*** TODO 鈴木さんルータの ARP 部分を Pio で書き直してもらう
|
87
|
+
- State "TODO" from "WAITING" [2013-09-19 木 14:18]
|
88
|
+
- State "WAITING" from "TODO" [2013-09-18 水 12:04] \\
|
89
|
+
ARP のコードが実機で動いてから
|
133
90
|
:LOGBOOK:
|
134
|
-
CLOCK: [2013-09-
|
135
|
-
CLOCK: [2013-09-17 火 22:45]--[2013-09-17 火 22:46] => 0:01
|
136
|
-
:END:
|
137
|
-
:PROPERTIES:
|
138
|
-
:Effort: 0:30
|
91
|
+
CLOCK: [2013-09-14 土 10:20]--[2013-09-14 土 10:21] => 0:01
|
139
92
|
:END:
|
140
|
-
[2013-09-
|
141
|
-
*** DONE README.md に ARP の例を追加
|
142
|
-
CLOSED: [2013-09-18 水 10:19] SCHEDULED: <2013-09-18 水>
|
143
|
-
[2013-09-13 金 16:29]
|
93
|
+
[2013-09-14 土 10:20]
|
144
94
|
|
145
|
-
|
146
|
-
|
147
|
-
|
95
|
+
GitHub のチケットはこちら:
|
96
|
+
https://github.com/trema/pio/issues/1
|
97
|
+
** TODO 0.3.0 リリース
|
98
|
+
- State "TODO" from "WAITING" [2013-09-19 木 14:16]
|
99
|
+
- State "WAITING" from "TODO" [2013-09-06 金 17:17] \\
|
100
|
+
0.2.0 が無事に出てから
|
101
|
+
[2013-09-05 木 17:29]
|
102
|
+
*** TODO ICMP パーサを作る
|
103
|
+
[2013-08-02 金 17:19]
|
104
|
+
*** DONE gem の命名規則に合わせる
|
105
|
+
CLOSED: [2013-09-26 木 08:28] SCHEDULED: <2013-09-26 木>
|
148
106
|
:LOGBOOK:
|
149
|
-
CLOCK: [2013-09-
|
107
|
+
CLOCK: [2013-09-26 木 08:20]--[2013-09-26 木 08:28] => 0:08
|
108
|
+
CLOCK: [2013-09-26 木 08:05]--[2013-09-26 木 08:06] => 0:01
|
150
109
|
:END:
|
151
110
|
:PROPERTIES:
|
152
111
|
:Effort: 0:30
|
153
112
|
:END:
|
154
|
-
[2013-09-
|
155
|
-
***
|
156
|
-
|
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:
|
113
|
+
[2013-09-26 木 08:05]
|
114
|
+
*** NEXT YARD の警告をつぶす
|
115
|
+
SCHEDULED: <2014-08-19 火>
|
176
116
|
:PROPERTIES:
|
177
117
|
:Effort: 0:30
|
178
118
|
:END:
|
179
|
-
[2013-
|
180
|
-
|
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 フィールド名を修正
|
119
|
+
[2013-07-31 水 15:32]
|
120
|
+
*** TODO flay に PR を送る (FlayTask が動かない件)
|
485
121
|
:LOGBOOK:
|
486
|
-
CLOCK: [2013-09-
|
122
|
+
CLOCK: [2013-09-18 水 17:20]--[2013-09-18 水 17:21] => 0:01
|
487
123
|
:END:
|
488
|
-
[2013-09-
|
489
|
-
|
490
|
-
- :
|
491
|
-
- :source_protocol_address -> :sender_protocol_address
|
492
|
-
*** DONE Arp::Request と Arp::Reply の共通部分をクラスに引き上げ
|
493
|
-
CLOSED: [2013-09-13 金 14:05] SCHEDULED: <2013-09-13 金>
|
124
|
+
[2013-09-18 水 17:20]
|
125
|
+
*** DONE 明示的に spec_helper.rb をロードしてる部分をなくす
|
126
|
+
CLOSED: [2013-09-26 木 08:18] SCHEDULED: <2013-09-26 木>
|
494
127
|
:LOGBOOK:
|
495
|
-
CLOCK: [2013-09-
|
128
|
+
CLOCK: [2013-09-26 木 08:14]--[2013-09-26 木 08:15] => 0:01
|
496
129
|
: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
130
|
:PROPERTIES:
|
507
131
|
:Effort: 0:30
|
508
132
|
:END:
|
509
|
-
[2013-
|
133
|
+
[2013-09-26 木 08:14]
|
510
134
|
** WAITING 0.4.0 リリース :WAITING:
|
511
135
|
- State "WAITING" from "TODO" [2013-09-06 金 17:18] \\
|
512
136
|
0.3.0 が無事に出てから。
|