MCPcopy Create free account
hub / github.com/F-Stack/f-stack / _compare_packets

Method _compare_packets

dpdk/dts/framework/test_suite.py:220–254  ·  view source on GitHub ↗
(self, expected_packet: Packet, received_packet: Packet)

Source from the content-addressed store, hash-verified

218 self._fail_test_case_verify("An expected packet not found among received packets.")
219
220 def _compare_packets(self, expected_packet: Packet, received_packet: Packet) -> bool:
221 self._logger.debug(
222 f"Comparing packets: \n{expected_packet.summary()}\n{received_packet.summary()}"
223 )
224
225 l3 = IP in expected_packet.layers()
226 self._logger.debug("Found l3 layer")
227
228 received_payload = received_packet
229 expected_payload = expected_packet
230 while received_payload and expected_payload:
231 self._logger.debug("Comparing payloads:")
232 self._logger.debug(f"Received: {received_payload}")
233 self._logger.debug(f"Expected: {expected_payload}")
234 if received_payload.__class__ == expected_payload.__class__:
235 self._logger.debug("The layers are the same.")
236 if received_payload.__class__ == Ether:
237 if not self._verify_l2_frame(received_payload, l3):
238 return False
239 elif received_payload.__class__ == IP:
240 if not self._verify_l3_packet(received_payload, expected_payload):
241 return False
242 else:
243 # Different layers => different packets
244 return False
245 received_payload = received_payload.payload
246 expected_payload = expected_payload.payload
247
248 if expected_payload:
249 self._logger.debug(f"The expected packet did not contain {expected_payload}.")
250 return False
251 if received_payload and received_payload.__class__ != Padding:
252 self._logger.debug("The received payload had extra layers which were not padding.")
253 return False
254 return True
255
256 def _verify_l2_frame(self, received_packet: Ether, l3: bool) -> bool:
257 self._logger.debug("Looking at the Ether layer.")

Callers 1

verify_packetsMethod · 0.95

Calls 2

_verify_l2_frameMethod · 0.95
_verify_l3_packetMethod · 0.95

Tested by

no test coverage detected