diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2012-10-05 19:01:52 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2012-10-06 13:16:13 +0900 |
commit | 5fd538ee7f968941c9394014e215e578c181d9f8 (patch) | |
tree | 7b62f5370160e6a2d1d74fa4a68b64fa123e6025 | |
parent | 9c30012955c45226403b84a7d09d9095301f62f1 (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.py | 14 |
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 |