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
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
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
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
def __len__(self): return roundup(4 + len(self.field),8)
def __len__(self): return roundup(4 + 4,8)
def __len__(self): return roundup(4 + len(self.field), 8)
def __len__(self): return roundup(4 + 4, 8)