summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2012-08-27 11:37:27 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2012-08-28 05:58:25 +0900
commit3fdb2dabecfc02bc7669e97d27b96efb14ce040a (patch)
treeeab0b46c6bfc0d64b4a11f1571c092e28c29a4e4
parent4e887d03c80e6bbd39a1898a0bd929d16f26aa09 (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.py12
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):