diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2012-08-27 11:37:27 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2012-08-28 05:58:25 +0900 |
commit | 3fdb2dabecfc02bc7669e97d27b96efb14ce040a (patch) | |
tree | eab0b46c6bfc0d64b4a11f1571c092e28c29a4e4 | |
parent | 4e887d03c80e6bbd39a1898a0bd929d16f26aa09 (diff) |
packet lib: add data serialize support to Packet class
This enables you to send data with Packet class.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r-- | ryu/lib/packet/packet.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/ryu/lib/packet/packet.py b/ryu/lib/packet/packet.py index bbe4de9d..c7963af7 100644 --- a/ryu/lib/packet/packet.py +++ b/ryu/lib/packet/packet.py @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +from . import packet_base from . import ethernet @@ -37,11 +38,14 @@ class Packet(object): self.data = bytearray() r = self.protocols[::-1] for i, p in enumerate(r): - if i == len(r) - 1: - prev = None + if p.__class__.__bases__[0] == packet_base.PacketBase: + if i == len(r) - 1: + prev = None + else: + prev = r[i + 1] + data = p.serialize(self.data, prev) else: - prev = r[i + 1] - data = p.serialize(self.data, prev) + data = str(p) self.data = data + self.data def add_protocol(self, proto): |