summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYuichi Ito <ito.yuichi0@gmail.com>2013-11-06 17:16:23 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2013-11-08 10:44:29 +0900
commit8de99416faf55055c7dab48a84fef1b9a71da0ff (patch)
treefa299d02b894cc94ed35054530e90bf9c3032df1
parent1d1cdeea99c35344414871b7d36a30aeefc9741a (diff)
packet lib: icmp: support len(icmp.*)
Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/lib/packet/icmp.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/ryu/lib/packet/icmp.py b/ryu/lib/packet/icmp.py
index e383e216..d3d4cddd 100644
--- a/ryu/lib/packet/icmp.py
+++ b/ryu/lib/packet/icmp.py
@@ -115,6 +115,9 @@ class icmp(packet_base.PacketBase):
return hdr
+ def __len__(self):
+ return self._MIN_LEN + len(self.data)
+
@icmp.register_icmp_type(ICMP_ECHO_REPLY, ICMP_ECHO_REQUEST)
class echo(stringify.StringifyMixin):
@@ -167,6 +170,12 @@ class echo(stringify.StringifyMixin):
return hdr
+ def __len__(self):
+ length = self._MIN_LEN
+ if self.data is not None:
+ length += len(self.data)
+ return length
+
@icmp.register_icmp_type(ICMP_DEST_UNREACH)
class dest_unreach(stringify.StringifyMixin):
@@ -227,6 +236,12 @@ class dest_unreach(stringify.StringifyMixin):
return hdr
+ def __len__(self):
+ length = self._MIN_LEN
+ if self.data is not None:
+ length += len(self.data)
+ return length
+
@icmp.register_icmp_type(ICMP_TIME_EXCEEDED)
class TimeExceeded(stringify.StringifyMixin):
@@ -276,3 +291,9 @@ class TimeExceeded(stringify.StringifyMixin):
hdr += self.data
return hdr
+
+ def __len__(self):
+ length = self._MIN_LEN
+ if self.data is not None:
+ length += len(self.data)
+ return length