summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2012-10-05 19:01:52 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2012-10-06 13:16:13 +0900
commit5fd538ee7f968941c9394014e215e578c181d9f8 (patch)
tree7b62f5370160e6a2d1d74fa4a68b64fa123e6025
parent9c30012955c45226403b84a7d09d9095301f62f1 (diff)
packet lib: make Packet class iterator
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/lib/packet/packet.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/ryu/lib/packet/packet.py b/ryu/lib/packet/packet.py
index c7963af7..93553404 100644
--- a/ryu/lib/packet/packet.py
+++ b/ryu/lib/packet/packet.py
@@ -22,6 +22,7 @@ class Packet(object):
super(Packet, self).__init__()
self.data = data
self.protocols = []
+ self.protocol_idx = 0
self.parsed_bytes = 0
if self.data:
# Do we need to handle non ethernet?
@@ -55,3 +56,16 @@ class Packet(object):
for p in self.protocols:
if p.__class__.__name__ == name:
return p
+
+ def next(self):
+ try:
+ p = self.protocols[self.protocol_idx]
+ except:
+ self.protocol_idx = 0
+ raise StopIteration
+
+ self.protocol_idx += 1
+ return p
+
+ def __iter__(self):
+ return self