IP Library Granted Patent US 12,477,315
Granted Patent B2
US 12,477,315 · App. 18/055,461 · Granted Nov 18, 2025

Targeted PDU capture by a network device for enhanced wireless network diagnostics

Inventor: Ta Chien Lin (Oakland, CA)
Assignee: Palo Alto Networks, Inc.
H04W8/02H04L61/103H04L61/5014H04W24/08H04W40/246H04W80/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,477,315
App. No.
18/055,461
Granted
Nov 18, 2025
Kind
B2
Abstract

A network device with wireless access point capabilities selectively captures PDUs detected on an instrumented interface(s) to capture those of one or more types/subtypes “of interest.” PDU types/subtypes that network device interface(s) has been instrumented to treat as “of interest” include those transmitted during a device's initial network activity during startup or attempted establishment of a wireless network connection. The interface(s) instrumented for targeted PDU capture can include wireless and/or wired (e.g., Ethernet) interfaces that are received on raw sockets so that each header type of a captured PDU is written to the PDU capture file. Prior to upload of a PDU capture file to a system from which it can be retrieved for analysis, the network device adds network metadata to the file based on context of the environment in which the network device operates. The network metadata can include IP address and/or network topology information determined at runtime.

Claims (49)

1 . A method comprising:

receiving a first protocol data unit (PDU) on a first interface of a plurality of interfaces of a network device, wherein the first interface is one of the plurality of interfaces of the network device instrumented to capture PDUs, wherein the network device comprises a wireless access point;

determining a type of the first PDU, wherein the type of the first PDU corresponds to a communication protocol with which the first PDU is associated;

determining if the first PDU should be captured based on a type of the first PDU and a type of the first interface on which the first PDU was received;

based on determining that the first PDU should be captured, writing a copy of the first PDU in a PDU capture file;

associating information about a network environment in which the network device operates with the PDU capture file as metadata; and

based on determining that an upload criterion has been satisfied, uploading the PDU capture file having the metadata associated therewith to a server.

2 . The method of claim 1 further comprising instrumenting the plurality of interfaces to capture PDUs based on, for each interface of the plurality of interfaces, declaring a raw socket and binding the raw socket to the interface.

3 . The method of claim 2 , wherein receiving the first PDU on the first interface comprises receiving the first PDU on the raw socket bound to the first interface.

4 . The method of claim 1 further comprising determining the information about the network environment in which the network device operates based on at least one of a neighbor table, a topology table, and a Dynamic Host Configuration Protocol (DHCP) table that the network device maintains.

5 . The method of claim 1 , wherein the plurality of interfaces comprises at least one of an Ethernet interface, a wireless interface, a bridge interface, and a loopback interface of the network device.

6 . The method of claim 1 , wherein determining that an upload criterion has been satisfied comprises at least one of determining that the PDU capture file has reached a size threshold, determining that PDU capture has been ongoing for a time that exceeds a time threshold, or determining that the PDU capture file should be uploaded in accordance with a schedule.

7 . The method of claim 1 , wherein determining the type of the first PDU further comprises determining a subtype of the first PDU, and wherein determining if the first PDU should be captured based on the type of the first PDU further comprises determining if the first PDU should be captured based on the subtype of the first PDU.

8 . The method of claim 1 , wherein determining if the first PDU should be captured based on the type of the first PDU comprises determining if the first PDU is an 802.11 management frame, a DHCP message, a 4-way handshake message, or an Address Resolution Protocol (ARP) message.

9 . The method of claim 1 , wherein the PDU capture file is a Packet Capture (PCAP) file or a PCAP Next Generation (PCAPNG) file.

10 . The method of claim 1 further comprising:

receiving a second PDU on the first interface of the network device;

determining that the second PDU should not be captured based on a type of the second PDU; and

allowing the second PDU to pass without writing a copy of the second PDU to the PDU capture file.

11 . The method of claim 1 , wherein the receiving, determining, and writing are triggered based on receipt of a request that indicates the network device, and wherein the receiving, determining, and writing are performed for a first length of time after receipt of the request.

12 . The method of claim 11 , wherein determining that the upload criterion has been satisfied comprises determining that the first length of time has elapsed.

13 . One or more non-transitory computer-readable media comprising program code for a network device comprising a wireless access point to selectively capture protocol data units (PDUs), the program code comprising instructions executable by a processor to:

instrument a plurality of interfaces of the network device to capture PDUs;

for each PDU of a plurality of PDUs received on one of the plurality of interfaces,

determine a type of the PDU, wherein the type of the PDU corresponds to a communication protocol with which the PDU is associated;

determine whether to capture the PDU based on the type of the PDU and a type of the one of the plurality of interfaces on which the PDU was received;

based on a determination that the PDU should be captured, capture the PDU in a PDU capture file;

add information about other devices with network interfaces in a same network environment as the network device to the PDU capture file as metadata; and

upload the PDU capture file to a server, wherein the PDU capture file that is uploaded comprises copies of a subset of the plurality of PDUs and the metadata.

14 . The non-transitory computer-readable media of claim 13 , wherein the instructions to determine whether to capture the PDU comprise instructions to determine whether the type is one of a plurality of PDU types designated for capturing for the one of the plurality of interfaces.

15 . The non-transitory computer-readable media of claim 14 , wherein the instructions to determine the type of the PDU comprise instructions to determine at least one of the communication protocol with which the PDU is associated and a type of the PDU indicated in a header of the PDU, wherein the header is formatted according to the communication protocol with which the PDU is associated.

16 . The non-transitory computer-readable media of claim 13 , wherein the instructions to instrument the plurality of interfaces comprise instructions to, for each interface of the plurality of interfaces, declare a raw socket and bind the raw socket to the interface.

17 . The non-transitory computer-readable media of claim 13 wherein the program code further comprises instructions to determine the information about other devices with network interfaces based on at least one of a neighbor table, a topology table, and a Dynamic Host Configuration Protocol (DHCP) table maintained by the network device.

18 . The non-transitory computer-readable media of claim 13 , wherein selectively capturing PDUs is triggered based on receipt of a request that indicates the network device, and wherein the instructions to upload the PDU capture file comprise instructions to upload the PDU capture file based on a determination that a first length of time since commencement of selectively capturing PDUs has elapsed.

19 . A network device comprising:

a wireless access point;

a processor; and

a computer-readable medium having instructions stored thereon that are executable by the processor to cause the network device to,

for each interface of a plurality of interfaces of the network device that is instrumented to capture protocol data units (PDUs),

based on receipt of a PDU on the interface, determine a type of the PDU, wherein the type of the PDU corresponds to a communication protocol with which the PDU is associated;

determine if the type of the PDU is designated for capturing for the interface on which the PDU was received; and

based on a determination that the type of the PDU is designated for capturing, capture the PDU in a first file;

associate information determined about a network environment in which the network device is located with the first file as metadata; and

upload the first file to a server based on satisfaction of an upload criterion.

20 . The network device of claim 19 , wherein the instructions executable by the processor to cause the network device to determine if the type of the PDU is designated for capturing comprise instructions executable by the processor to cause the network device to determine if the PDU is an 802.11 management frame, a Dynamic Host Configuration Protocol (DHCP) message, or an Address Resolution Protocol (ARP) message.

21 . The network device of claim 19 , wherein the instructions executable by the processor to cause the network device to capture the PDU in a first file comprise instructions executable by the processor to cause the network device to write a copy of the PDU to a Packet Capture (PCAP) file or a PCAP Next Generation (PCAPNG) file.

22 . The network device of claim 19 , wherein the plurality of interfaces comprise one or more of an Ethernet interface, a wireless interface, a bridge interface, and a loopback interface of the network device.

23 . The network device of claim 19 further comprising instructions executable by the processor to cause the network device to instrument each interface of the plurality of interfaces, wherein the instructions executable by the processor to cause the network device to instrument each interface comprise instructions executable by the processor to cause the network device to declare a raw socket and bind the raw socket to the interface.

24 . The network device of claim 19 further comprising instructions executable by the processor to cause the network device to determine that the upload criterion has been satisfied, wherein the instructions executable by the processor to cause the network device to determine that the upload criterion has been satisfied comprise instructions executable by the processor to cause the network device to determine that a first length of time since receipt of a request to capture PDUs in the first file has elapsed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2022
From: LIN, TA CHIEN
To: PALO ALTO NETWORKS, INC.
Reel/Frame 061768/0912 →
Continuity (2)
Provisional Application 63265126 · Dec 8, 2021
Related Publication 20230180099A1 · Jun 8, 2023
References Cited (184)
US 5842040A · Hughes · 1998 [cited by examiner]
US 6538997B1 · Wang · 2003 [cited by examiner]
US 7051038B1 · Yeh · 2006 [cited by examiner]
US 7206831B1 · Dube · 2007 [cited by examiner]
US 7466703B1 · Arunachalam · 2008 [cited by examiner]
US 7522540B1 · Maufer · 2009 [cited by examiner]
US 7583611B1 · Robertson · 2009 [cited by examiner]
US 8509252B2 · Chiba · 2013 [cited by examiner]
US 9414094B2 · Van Zijst · 2016 [cited by examiner]
US 9426071B1 · Caldejon · 2016 [cited by examiner]
US 9430646B1 · Mushtaq · 2016 [cited by examiner]
US 9485525B1 · Oztaskent · 2016 [cited by examiner]
US 9537972B1 · Edwards · 2017 [cited by examiner]
US 9560018B2 · Bellagamba et al. · 2017 [cited by applicant]
US 9942787B1 · Tillotson · 2018 [cited by examiner]
US 10003660B2 · Furr et al. · 2018 [cited by applicant]
US 10025802B2 · Vermeulen · 2018 [cited by examiner]
US 10187400B1 · Castro · 2019 [cited by examiner]
US 10567288B1 · Mutnuru · 2020 [cited by examiner]
US 10652713B2 · Chuppala · 2020 [cited by examiner]
US 10721250B2 · Ling · 2020 [cited by examiner]
US 10841216B1 · Hoang · 2020 [cited by examiner]
US 11115426B1 · Pazhyannur · 2021 [cited by examiner]
US 11323312B1 · Banka et al. · 2022 [cited by applicant]
US 11418928B1 · Hoelzle · 2022 [cited by examiner]
US 11469974B1 · Cruise · 2022 [cited by examiner]
US 11606286B2 · Michael et al. · 2023 [cited by applicant]
US 11617125B2 · Kollar et al. · 2023 [cited by applicant]
US 11638150B1 · Visen · 2023 [cited by examiner]
US 11700303B1 · Richards · 2023 [cited by examiner]
US 11792156B1 · Eyberg · 2023 [cited by examiner]
US 12192820B2 · Yeh et al. · 2025 [cited by applicant]
US 20020150041A1 · Reinshmidt · 2002 [cited by examiner]
US 20040054820A1 · Karaoguz · 2004 [cited by examiner]
US 20040057430A1 · Paavolainen · 2004 [cited by examiner]
US 20050152290A1 · Sakusabe · 2005 [cited by examiner]
US 20060064751A1 · Ahuja · 2006 [cited by examiner]
US 20060233179A1 · Estrada · 2006 [cited by examiner]
US 20060248194A1 · Ly · 2006 [cited by examiner]
US 20070058655A1 · Myers · 2007 [cited by examiner]
US 20070220310A1 · Sharma · 2007 [cited by examiner]
US 20070288994A1 · Tang · 2007 [cited by examiner]
US 20070297334A1 · Pong · 2007 [cited by examiner]
US 20080080495A1 · Barrett · 2008 [cited by examiner]
US 20080186907A1 · Yagyuu · 2008 [cited by examiner]
US 20090074411A1 · Bernard · 2009 [cited by examiner]
US 20090086651A1 · Luft · 2009 [cited by examiner]
US 20090122801A1 · Chang · 2009 [cited by examiner]
US 20090161584A1 · Guan · 2009 [cited by examiner]
US 20090235174A1 · Royt · 2009 [cited by examiner]
US 20090254651A1 · Sheppard · 2009 [cited by examiner]
US 20100011139A1 · Wang · 2010 [cited by examiner]
US 20100274908A1 · Koskelainen · 2010 [cited by examiner]
US 20110058482A1 · Nomura · 2011 [cited by examiner]
US 20110059723A1 · Oguchi · 2011 [cited by examiner]
US 20110164527A1 · Mishra · 2011 [cited by examiner]
US 20110320870A1 · Kenigsberg · 2011 [cited by examiner]
US 20120030687A1 · Bhandiwad · 2012 [cited by examiner]
US 20120072520A1 · Radulescu · 2012 [cited by examiner]
US 20120144013A1 · Eckert · 2012 [cited by examiner]
US 20120230210A1 · Reed · 2012 [cited by examiner]
US 20130007848A1 · Chaskar · 2013 [cited by examiner]
US 20130064175A1 · Pandey · 2013 [cited by examiner]
US 20130100824A1 · Cao · 2013 [cited by examiner]
US 20130124738A1 · Lynch · 2013 [cited by examiner]
US 20130142083A1 · Seibert, III · 2013 [cited by examiner]
US 20130343181A1 · Stroud · 2013 [cited by examiner]
US 20140244733A1 · Han · 2014 [cited by examiner]
US 20140254459A1 · Gelal · 2014 [cited by examiner]
US 20140269329A1 · Hooda · 2014 [cited by examiner]
US 20140280737A1 · Bicket · 2014 [cited by examiner]
US 20140337614A1 · Kelson · 2014 [cited by examiner]
US 20140355613A1 · Pope · 2014 [cited by examiner]
US 20150200846A1 · Hui · 2015 [cited by examiner]
US 20150264073A1 · Tavakoli · 2015 [cited by examiner]
US 20160065423A1 · Zhang · 2016 [cited by examiner]
US 20160112287A1 · Farmer · 2016 [cited by examiner]
US 20160119418A1 · Cho · 2016 [cited by examiner]
US 20160134516A1 · Hui · 2016 [cited by examiner]
US 20160164832A1 · Bellagamba et al. · 2016 [cited by applicant]
US 20160205118A1 · Kim · 2016 [cited by examiner]
US 20160226826A1 · Pan · 2016 [cited by examiner]
US 20160294689A1 · Zheng · 2016 [cited by examiner]
US 20160308986A1 · Bar-Yanai · 2016 [cited by examiner]
US 20160352601A1 · Zhang · 2016 [cited by examiner]
US 20170012844A1 · Ellison · 2017 [cited by examiner]
US 20170019353A1 · Rajapakse · 2017 [cited by examiner]
US 20170054709A1 · Benjamin · 2017 [cited by examiner]
US 20170180421A1 · Shieh · 2017 [cited by examiner]
US 20170208528A1 · Zhang · 2017 [cited by examiner]
US 20170223043A1 · Munoz · 2017 [cited by examiner]
US 20170237640A1 · Stocker · 2017 [cited by examiner]
US 20170244745A1 · Key · 2017 [cited by examiner]
US 20170302750A1 · Greenberger · 2017 [cited by examiner]
US 20170317969A1 · Masurekar · 2017 [cited by examiner]
US 20170346933A1 · Pope · 2017 [cited by examiner]
US 20180139086A1 · Chakraborty · 2018 [cited by examiner]
US 20180248770A1 · Regmi · 2018 [cited by examiner]
US 20180270110A1 · Chugtu · 2018 [cited by examiner]
US 20180288145A1 · Levy · 2018 [cited by examiner]
US 20180308111A1 · Bigbee · 2018 [cited by examiner]
US 20180324138A1 · Das · 2018 [cited by examiner]
US 20180351904A1 · Mizik · 2018 [cited by examiner]
US 20190036806A1 · Chandrasekaran · 2019 [cited by examiner]
US 20190103174A1 · Power · 2019 [cited by examiner]
US 20190132199A1 · Sharma · 2019 [cited by examiner]
US 20190132282A1 · Lei · 2019 [cited by examiner]
US 20190182364A1 · Dwight · 2019 [cited by examiner]
US 20190190930A1 · Miron · 2019 [cited by examiner]
US 20190245700A1 · Dobre · 2019 [cited by examiner]
US 20190254117A1 · Chen · 2019 [cited by examiner]
US 20190288934A1 · Chakra · 2019 [cited by examiner]
US 20200007421A1 · Bridges · 2020 [cited by examiner]
US 20200029286A1 · Haley · 2020 [cited by examiner]
US 20200053063A1 · Chaubey · 2020 [cited by examiner]
US 20200059771A1 · Zhang · 2020 [cited by examiner]
US 20200084147A1 · Gandhi · 2020 [cited by examiner]
US 20200090795A1 · Chang · 2020 [cited by examiner]
US 20200112334A1 · Kondareddy · 2020 [cited by examiner]
US 20200125462A1 · Zhu · 2020 [cited by examiner]
US 20200128502A1 · Alexander · 2020 [cited by examiner]
US 20200186600A1 · Dawani · 2020 [cited by examiner]
US 20200204574A1 · Christian · 2020 [cited by examiner]
US 20200213242A1 · Zheng · 2020 [cited by examiner]
US 20200257602A1 · Crosby · 2020 [cited by examiner]
US 20200259831A1 · Pampati · 2020 [cited by examiner]
US 20200296007A1 · Finn, II · 2020 [cited by examiner]
US 20200314730A1 · Kollar et al. · 2020 [cited by applicant]
US 20210006638A1 · Bhide · 2021 [cited by examiner]
US 20210067613A1 · Li · 2021 [cited by examiner]
US 20210092127A1 · Li · 2021 [cited by examiner]
US 20210099394A1 · Sharma · 2021 [cited by examiner]
US 20210153098A1 · Kuenzi · 2021 [cited by examiner]
US 20210160161A1 · Scahill · 2021 [cited by examiner]
US 20210160275A1 · Anderson · 2021 [cited by examiner]
US 20210165731A1 · Ross · 2021 [cited by examiner]
US 20210194894A1 · Anderson · 2021 [cited by examiner]
US 20210289552A1 · Aboul-Magd · 2021 [cited by examiner]
US 20210352516A1 · Sawabe · 2021 [cited by examiner]
US 20210385070A1 · Watson · 2021 [cited by examiner]
US 20210385138A1 · Watson · 2021 [cited by examiner]
US 20220014459A1 · Ganguli · 2022 [cited by examiner]
US 20220014963A1 · Yeh et al. · 2022 [cited by applicant]
US 20220021650A1 · Moore · 2022 [cited by examiner]
US 20220038949A1 · Petria · 2022 [cited by examiner]
US 20220046033A1 · Tang · 2022 [cited by examiner]
US 20220078072A1 · Rayes · 2022 [cited by examiner]
US 20220094637A1 · Dutta · 2022 [cited by examiner]
US 20220104100A1 · M · 2022 [cited by examiner]
US 20220116302A1 · Gupta · 2022 [cited by examiner]
US 20220131835A1 · Fenton · 2022 [cited by examiner]
US 20220166663A1 · Banka et al. · 2022 [cited by applicant]
US 20220210170A1 · Di Pinto · 2022 [cited by examiner]
US 20220224616A1 · Andress · 2022 [cited by examiner]
US 20220247505A1 · Li · 2022 [cited by examiner]
US 20220247691A1 · Xu · 2022 [cited by examiner]
US 20220294880A1 · Scahill · 2022 [cited by examiner]
US 20220321566A1 · Coyle · 2022 [cited by examiner]
US 20220345931A1 · Svennebring et al. · 2022 [cited by applicant]
US 20220360531A1 · Sudhan · 2022 [cited by examiner]
US 20220385560A1 · Dutta · 2022 [cited by examiner]
US 20220394063A1 · Pauly · 2022 [cited by examiner]
US 20220394475A1 · Busser · 2022 [cited by examiner]
US 20230006898A1 · Albrecht · 2023 [cited by examiner]
US 20230043492A1 · Veijalainen · 2023 [cited by examiner]
US 20230052712A1 · Newell · 2023 [cited by examiner]
US 20230053116A1 · Uhling · 2023 [cited by examiner]
US 20230059486A1 · Ozkaptan · 2023 [cited by examiner]
US 20230121193A1 · Busser · 2023 [cited by examiner]
US 20230156069A1 · Cundall · 2023 [cited by examiner]
US 20230156077A1 · Jamil · 2023 [cited by examiner]
US 20240048466A1 · Uzawa · 2024 [cited by examiner]
US 20240193091A1 · Park · 2024 [cited by examiner]
US 20240193136A1 · Chen · 2024 [cited by examiner]
US 20240214323A1 · Cheng · 2024 [cited by examiner]
US 20240214431A1 · Martinez de la Cruz · 2024 [cited by examiner]
US 20240273086A1 · Harting · 2024 [cited by examiner]
US 20240291745A1 · Chhabra · 2024 [cited by examiner]
US 20240296254A1 · Askerov · 2024 [cited by examiner]
US 20240356825A1 · Uzawa · 2024 [cited by examiner]
US 20250182352A1 · Wang · 2025 [cited by examiner]
Phang, et al., “Design and Implementation of V6SNIFF: An Efficient IPv6 Packet Sniffer”, 2008 Third International Conference on Convergence and Hybrid Information Technology, Nov. 2008, pp. 44-49. [cited by applicant]
U.S. Appl. No. 18/055,470, Non-Final Office Action mailed May 6, 2025, 25 pages. [cited by applicant]
IEEE, “IEEE Standard for Local and Metropolitan Area Networks—Port-Based Network Access Control”, In IEEE Std. 802.1X-2020 (Revision of IEEE Std 802.1X-2010 incorporating IEEE Std 802.1Xbx-2014 and IEEE Std. 802.1Xck-20… [cited by applicant]