| 265 | |
| 266 | |
| 267 | class IE_IP_Address(gtp.IE_Base): |
| 268 | name = "IE IP Address" |
| 269 | fields_desc = [ByteEnumField("ietype", 74, IEType), |
| 270 | ShortField("length", None), |
| 271 | BitField("CR_flag", 0, 4), |
| 272 | BitField("instance", 0, 4), |
| 273 | ConditionalField( |
| 274 | IPField("address", RandIP()), |
| 275 | lambda pkt: pkt.length == 4), |
| 276 | ConditionalField( |
| 277 | IP6Field("address6", None), |
| 278 | lambda pkt: pkt.length == 16)] |
| 279 | |
| 280 | def post_build(self, p, pay): |
| 281 | if self.length is None: |
| 282 | tmp_len = 16 if self.address6 is not None else 4 |
| 283 | p = p[:1] + struct.pack("!H", tmp_len) + p[2:] |
| 284 | return p + pay |
| 285 | |
| 286 | |
| 287 | class IE_MEI(gtp.IE_Base): |
nothing calls this directly
no test coverage detected
searching dependent graphs…