MCPcopy Create free account
hub / github.com/FDio/vpp / create_packet

Method create_packet

test/test_bfd.py:749–796  ·  view source on GitHub ↗

create a BFD packet, reflecting the current state of session

(self)

Source from the content-addressed store, hash-verified

747 bfd.auth_type = self.auth_type
748
749 def create_packet(self):
750 """create a BFD packet, reflecting the current state of session"""
751 if self.sha1_key:
752 bfd = BFD(flags="A")
753 bfd.auth_type = self.sha1_key.auth_type
754 bfd.auth_len = BFD.sha1_auth_len
755 bfd.auth_key_id = self.bfd_key_id
756 bfd.auth_seq_num = self.our_seq_number
757 bfd.length = BFD.sha1_auth_len + BFD.bfd_pkt_len
758 else:
759 bfd = BFD()
760 packet = Ether(
761 src=self.phy_interface.remote_mac, dst=self.phy_interface.local_mac
762 )
763 if self.tunnel_header:
764 packet = packet / self.tunnel_header
765 if self.af == AF_INET6:
766 packet = (
767 packet
768 / IPv6(
769 src=self.peer_addr,
770 dst=self.local_addr,
771 hlim=255,
772 )
773 / UDP(sport=self.udp_sport, dport=BFD.udp_dport)
774 / bfd
775 )
776 else:
777 packet = (
778 packet
779 / IP(src=self.peer_addr, dst=self.local_addr, ttl=255)
780 / UDP(sport=self.udp_sport, dport=BFD.udp_dport)
781 / bfd
782 )
783 self.test.logger.debug("BFD: Creating packet")
784 self.fill_packet_fields(packet)
785 if self.sha1_key:
786 hash_material = (
787 scapy.compat.raw(packet[BFD])[:32]
788 + self.sha1_key.key
789 + b"\0" * (20 - len(self.sha1_key.key))
790 )
791 self.test.logger.debug(
792 "BFD: Calculated SHA1 hash: %s"
793 % hashlib.sha1(hash_material).hexdigest()
794 )
795 packet[BFD].auth_key_hash = hashlib.sha1(hash_material).digest()
796 return packet
797
798 def send_packet(self, packet=None, interface=None):
799 """send packet on interface, creating the packet if needed"""

Callers 12

send_packetMethod · 0.95
test_queued_pollMethod · 0.45
test_poll_responseMethod · 0.45
test_echoMethod · 0.45
test_echo_failMethod · 0.45
test_stale_echoMethod · 0.45
test_echoMethod · 0.45

Calls 2

fill_packet_fieldsMethod · 0.95
BFDClass · 0.90

Tested by

no test coverage detected