| @@ 135-165 (lines=31) @@ | ||
| 132 | return message_instance |
|
| 133 | ||
| 134 | ||
| 135 | def new_message_from_header(header): |
|
| 136 | """Given an OF Header, return an empty message of header's message_type. |
|
| 137 | ||
| 138 | Args: |
|
| 139 | header (:class:`~pyof.v0x04.common.header.Header`): |
|
| 140 | Unpacked OpenFlow Header. |
|
| 141 | ||
| 142 | Returns: |
|
| 143 | Empty OpenFlow message of the same type of message_type attribute from |
|
| 144 | the given header. |
|
| 145 | The header attribute of the message will be populated. |
|
| 146 | ||
| 147 | Raises: |
|
| 148 | KytosUndefinedMessageType: Unkown Message_Type. |
|
| 149 | ||
| 150 | """ |
|
| 151 | message_type = header.message_type |
|
| 152 | if not isinstance(message_type, Type): |
|
| 153 | try: |
|
| 154 | if isinstance(message_type, str): |
|
| 155 | message_type = Type[message_type] |
|
| 156 | elif isinstance(message_type, int): |
|
| 157 | message_type = Type(message_type) |
|
| 158 | except ValueError: |
|
| 159 | raise ValueError |
|
| 160 | ||
| 161 | message = new_message_from_message_type(message_type) |
|
| 162 | message.header.xid = header.xid |
|
| 163 | message.header.length = header.length |
|
| 164 | ||
| 165 | return message |
|
| 166 | ||
| 167 | ||
| 168 | def unpack_message(buffer): |
|
| @@ 91-121 (lines=31) @@ | ||
| 88 | return message_instance |
|
| 89 | ||
| 90 | ||
| 91 | def new_message_from_header(header): |
|
| 92 | """Given an OF Header, return an empty message of header's message_type. |
|
| 93 | ||
| 94 | Args: |
|
| 95 | header (~pyof.v0x01.common.header.Header): Unpacked OpenFlow Header. |
|
| 96 | ||
| 97 | Returns: |
|
| 98 | Empty OpenFlow message of the same type of message_type attribute from |
|
| 99 | the given header. |
|
| 100 | The header attribute of the message will be populated. |
|
| 101 | ||
| 102 | Raises: |
|
| 103 | KytosUndefinedMessageType: Unkown Message_Type. |
|
| 104 | ||
| 105 | """ |
|
| 106 | message_type = header.message_type |
|
| 107 | if not isinstance(message_type, Type): |
|
| 108 | try: |
|
| 109 | if isinstance(message_type, str): |
|
| 110 | message_type = Type[message_type] |
|
| 111 | elif isinstance(message_type, int): |
|
| 112 | message_type = Type(message_type) |
|
| 113 | except ValueError: |
|
| 114 | raise ValueError |
|
| 115 | ||
| 116 | message = new_message_from_message_type(message_type) |
|
| 117 | message.header.xid = header.xid |
|
| 118 | message.header.length = header.length |
|
| 119 | ||
| 120 | return message |
|
| 121 | ||
| 122 | ||
| 123 | def unpack_message(buffer): |
|
| 124 | """Unpack the whole buffer, including header pack. |
|