Example #1
0
 def unpack(self, binary_string):
     if len(binary_string) <= 8:
         binary_string = ofp_action_set_field.unpack(self)
     else: 
         (self.type, self.len) = struct.unpack("!HH",  binary_string[0:4])
         binary_string = binary_string[4:]
         binary_string = self.field.unpack(binary_string, bytes = self.len - 4)
         padding_size = roundup(len(self.field) -4,8) -  (len(self.field) -4) 
         if padding_size:
             binary_string = binary_string[padding_size:]
     return binary_string
Example #2
0
 def pack(self):
     packed = ""
     if len(self.field) <= 4:
         packed += ofp_action_set_field.pack()
     else:
         self.len = len(self)
         packed += struct.pack("!HH", self.type, self.len)
         packed += self.field.pack()
         padding_size = roundup(len(self.field) -4,8) -  (len(self.field) -4)
         if padding_size:
             padding = [0] * padding_size
             packed += struct.pack("!" + str(padding_size) + "B", *padding)
     return packed
Example #3
0
 def unpack(self, binary_string):
     if len(binary_string) <= 8:
         binary_string = ofp_action_set_field.unpack(self)
     else:
         (self.type, self.len) = struct.unpack("!HH", binary_string[0:4])
         binary_string = binary_string[4:]
         binary_string = self.field.unpack(binary_string,
                                           bytes=self.len - 4)
         padding_size = roundup(len(self.field) - 4,
                                8) - (len(self.field) - 4)
         if padding_size:
             binary_string = binary_string[padding_size:]
     return binary_string
Example #4
0
 def pack(self):
     packed = ""
     if len(self.field) <= 4:
         packed += ofp_action_set_field.pack()
     else:
         self.len = len(self)
         packed += struct.pack("!HH", self.type, self.len)
         packed += self.field.pack()
         padding_size = roundup(len(self.field) - 4,
                                8) - (len(self.field) - 4)
         if padding_size:
             padding = [0] * padding_size
             packed += struct.pack("!" + str(padding_size) + "B", *padding)
     return packed
Example #5
0
 def __len__(self):
     return roundup(4 + len(self.field),8)
Example #6
0
 def __len__(self):
     return roundup(4 + 4,8)
Example #7
0
 def __len__(self):
     return roundup(4 + len(self.field), 8)
Example #8
0
 def __len__(self):
     return roundup(4 + 4, 8)