Code Duplication    Length = 22-28 lines in 3 locations

pyof/v0x04/controller2switch/group_mod.py 1 location

@@ 66-93 (lines=28) @@
63
        super().__init__(pyof_class=Bucket, items=items)
64
65
66
class GroupMod(GenericMessage):
67
    """Group setup and teardown (controller -> datapath)."""
68
69
    header = Header(message_type=Type.OFPT_GROUP_MOD)
70
    command = UBInt16(enum_ref=GroupModCommand)
71
    group_type = UBInt8()
72
    #: Pad to 64 bits.
73
    pad = Pad(1)
74
    group_id = UBInt32()
75
    buckets = ListOfBuckets()
76
77
    def __init__(self, xid=None, command=None, group_type=None, group_id=None,
78
                 buckets=None):
79
        """Create a GroupMod with the optional parameters below.
80
81
        Args:
82
            xid (int): Header's transaction id. Defaults to random.
83
            command (GroupModCommand): One of OFPGC_*.
84
            group_type (GroupType): One of OFPGT_*.
85
            group_id (int): Group identifier.
86
            buckets (:class:`ListOfBuckets`): The length of the bucket
87
                array is inferred from the length field in the header.
88
        """
89
        super().__init__(xid)
90
        self.command = command
91
        self.group_type = group_type
92
        self.group_id = group_id
93
        self.buckets = buckets
94

pyof/v0x04/controller2switch/multipart_reply.py 1 location

@@ 421-445 (lines=25) @@
418
        self.duration_nsec = duration_nsec
419
420
421
class GroupDescStats(GenericStruct):
422
    """Body of reply to OFPMP_GROUP_DESC request."""
423
424
    length = UBInt16()
425
    group_type = UBInt8()
426
    #: Pad to 64 bits.
427
    pad = Pad(1)
428
    group_id = UBInt32()
429
    buckets = FixedTypeList(Bucket)
430
431
    def __init__(self, length=None, group_type=None, group_id=None,
432
                 buckets=None):
433
        """Create a GroupDescStats with the optional parameters below.
434
435
        Args:
436
            length (int): Length of this entry.
437
            group_type (|GroupType_v0x04|): One of OFPGT_*.
438
            group_id (int): Group identifier.
439
            buckets (|ListOfBuckets_v0x04|): List of buckets in group.
440
        """
441
        super().__init__()
442
        self.length = length
443
        self.group_type = group_type
444
        self.group_id = group_id
445
        self.buckets = buckets
446
447
448
class GroupFeatures(GenericStruct):

pyof/v0x04/common/header.py 1 location

@@ 83-104 (lines=22) @@
80
# Classes
81
82
83
class Header(GenericStruct):
84
    """Representation of an OpenFlow message Header."""
85
86
    version = UBInt8(OFP_VERSION)
87
    message_type = UBInt8(enum_ref=Type)
88
    length = UBInt16()
89
    xid = UBInt32()
90
91
    def __init__(self, message_type=None, length=None, xid=None):
92
        """Create a Header with the optional parameters below.
93
94
        Args:
95
            message_type (~pyof.v0x04.common.header.Type):
96
                One of the OFPT_* constants.
97
            length (int): Length including this ofp_header.
98
            xid (int): Transaction id associated with this packet. Replies use
99
                the same id as was in the request to facilitate pairing.
100
        """
101
        super().__init__()
102
        self.message_type = message_type
103
        self.length = length
104
        self.xid = randint(0, MAXID) if xid is None else xid
105