IP Library Granted Patent US 12,425,323
Granted Patent B2
US 12,425,323 · App. 18/631,630 · Granted Sep 23, 2025

Application wire

Inventors: Ping Pan (San Jose, CA); Richard D. Gitlin (Little Silver, NJ)
Assignee: K. Mizra LLC
H04L45/00H04L45/38H04L45/50H04L45/68H04L45/74H04L47/24H04L65/1013H04L69/22
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,425,323
App. No.
18/631,630
Granted
Sep 23, 2025
Kind
B2
Abstract

A method includes, at a node associated with a multiprotocol label switching system (MPLS) network, identifying information associated with an application flow based on one or more unencapsulated packet headers of the application flow or based on an ingress data stream that includes the application flow. The method further includes, in response to identifying the information, and based on stored data that maps application flows with psuedowires, determining a number of pseudowires corresponding to paths through the MPLS network, where the stored data indicates, for a sending device application, a distributed mapping of the application flow via at least one of the number of psuedowires, and communicating data related to the sending device application via at least one of the number of pseudowires.

Claims (53)

1. A method, comprising:

identifying, by a system comprising at least one processor, a first subset of data packets having a defined priority based on a parameter associated with an application flow;

assigning, by the system;

the first subset of the data packets to a first data stream;

a second subset of the data packets that excludes the first subset of the data packets to a second data stream; and

a third subset of the data packets that excludes the first subset of the data packets and the second set of data packets to a third data stream; and

encapsulating, by the system:

a first data packet of the first data stream with a first pseudowire header associated with a first pseudowire;

a second data packet of the second data stream with a second pseudowire header associated with a second pseudowire; and

a third data packet of the third data stream with a third pseudowire header associated with a third pseudowire,

wherein assigning the first and second subsets of the data packets comprises assigning the first subset and the second subset in response to determining that the data packets exceed an available data rate of the first pseudowire.

2. The method of claim 1 , further comprising:

in response to determining that a first priority of the first pseudowire is higher than a second priority of the second pseudowire, mapping, by the system, the first data stream to the first pseudowire.

3. The method of claim 1 , further comprising identifying, by the system, the application flow based on header information associated with at least one of the data packets.

4. The method of claim 3 , further comprising mapping, by the system, the at least one of the data packets to the application flow based on the header information.

5. The method of claim 3 , further comprising determining, by the system, the parameter based on the application flow.

6. The method of claim 1 , further comprising setting, by the system, at least one of a packet label field, a sequence number field, a service differentiation field, a service guarantee field, or a flow control field in at least one of the first pseudowire header or the second pseudowire header.

7. The method of claim 1 , wherein the encapsulating the first data packet yields a first encapsulated data packet, and the encapsulating the third data packet yields a second encapsulated data packet, and the method further comprises:

sending, by the system, the first encapsulated data packet over the first pseudowire via one or more first multi-protocol label switching devices; and

sending, by the system, the second encapsulated data packet over the second pseudowire via one or more second multi-protocol label switching devices.

8. A device, comprising:

a memory that stores executable instructions; and a processor, communicatively coupled to the memory, that executes or facilitates execution of the executable instructions to at least:

determine a first subset of data packets that have a defined priority based on a parameter associated with an application flow;

determine that the first subset of data packets exceed a defined data rate of a first pseudowire;

assign the first subset of the data packets to a first data stream;

assign a second subset of the data packets that excludes the first subset of the data packets to a second data stream;

encapsulate a first data packet of the first data stream with a first pseudowire header corresponding to the first pseudowire; and

encapsulate a second data packet of the second data stream with a second pseudowire header corresponding to a second pseudowire,

wherein the assignment of the first subset of the data packets to the first data stream and of the second subset of the data packets to the second data stream is based at least in part on the determination that the first subset of data packets exceeds the defined data rate of a first pseudowire.

9. The device of claim 8 , wherein the processor further executes or facilitates the execution of the computer-executable instructions to:

compare a first priority associated with the first pseudowire with a second priority associated with the second pseudowire; and

assign the first data stream to the first pseudowire based on a determination that the first priority exceeds the second priority.

10. The device of claim 8 , wherein the processor further executes or facilitates the execution of the computer-executable instructions to identify the application flow based on header information read from at least one of the data packets.

11. The device of claim 10 , wherein the processor further executes or facilitates the execution of the computer-executable instructions to assign the at least one of the data packets to the application flow based on the header information.

12. The device of claim 10 , wherein the processor further executes or facilitates the execution of the computer-executable instructions to determine the parameter based on identification of the application flow.

13. The device of claim 8 , wherein at least one of the first pseudowire header or the second pseudowire header comprises at least one of a packet label field, a sequence number field, a service differentiation field, a service guarantee field, or a flow control field.

14. The device of claim 8 , wherein encapsulation of the first data packet and the second data packet yields a first encapsulated data packet and a second encapsulated data packet, respectively, and the processor further executes or facilitates the execution of the computer-executable instructions to:

transfer the first encapsulated data packet over the first pseudowire via one or more first multi-protocol label switching devices; and

transfer the second encapsulated data packet via the second pseudowire using one or more second multi-protocol label switching devices.

15. A computer-readable storage device having stored thereon computer executable instructions that, in response to execution, cause a device comprising a processor to perform operations, comprising:

identifying a first subset of data packets having a defined priority based on a parameter associated with an application flow;

determining that the first subset of data packets exceeds an available data rate of a first pseudowire;

in response to determining that the first subset of data packets exceeds an available rate of the first pseudowire:

assigning the first subset of the data packets to a first data stream;

assigning a second subset of the data packets excluding the first subset to a second data stream;

encapsulating a first data packet of the first data stream with a first pseudowire header corresponding to the first pseudowire; and

encapsulating a second data packet of the second data stream with a second pseudowire header corresponding to a second pseudowire.

16. The computer-readable storage device of claim 15 , the operations further comprising:

determining that a first priority assigned to the first pseudowire exceeds a second priority assigned to the second pseudowire; and

mapping the first data stream to the first pseudowire in response to the determining.

17. The computer-readable storage device of claim 15 , wherein the encapsulating the first data packet yields a first encapsulated data packet, the encapsulating the second data packet yields a second encapsulated data packet, and the operations further comprise:

sending the first encapsulated data packet via the first pseudowire using one or more first multi-protocol label switching devices; and

sending the second encapsulated data packet via the second pseudowire using one or more second multi-protocol label switching devices.

Continuity (9)
Continuation 17406865 · Aug 19, 2021
Continuation 16912546 · Jun 25, 2020
Continuation 16536103 · Aug 8, 2019
Continuation 15838014 · Dec 11, 2017
Continuation 14919687 · Oct 21, 2015
Continuation 14055721 · Oct 16, 2013
Continuation 11543727 · Oct 5, 2006
Provisional Application 60725038 · Oct 7, 2005
Related Publication 20240380692A1 · Nov 14, 2024
References Cited (92)
US 5920705A · Lyon et al. · 1999 [cited by applicant]
US 6167051A · Nagami et al. · 2000 [cited by applicant]
US 6347088B1 · Katou et al. · 2002 [cited by applicant]
US 6430184B1 · Robins et al. · 2002 [cited by applicant]
US 6477166B1 · Sanzi et al. · 2002 [cited by applicant]
US 6546427B1 · Ehrlich et al. · 2003 [cited by applicant]
US 6574477B1 · Rathunde · 2003 [cited by applicant]
US 6621793B2 · Widegren et al. · 2003 [cited by applicant]
US 6665273B1 · Goguen et al. · 2003 [cited by applicant]
US 6680943B1 · Gibson et al. · 2004 [cited by applicant]
US 6751684B2 · Owen et al. · 2004 [cited by applicant]
US 6813271B1 · Cable · 2004 [cited by applicant]
US 6845389B1 · Sen et al. · 2005 [cited by applicant]
US 6917592B1 · Ramankutty et al. · 2005 [cited by applicant]
US 6985488B2 · Pan et al. · 2006 [cited by applicant]
US 7050396B1 · Cohen et al. · 2006 [cited by applicant]
US 7200104B2 · Saleh et al. · 2007 [cited by applicant]
US 7436782B2 · Ngo et al. · 2008 [cited by applicant]
US 7590070B1 · Asawa et al. · 2009 [cited by applicant]
US 7697528B2 · Parry et al. · 2010 [cited by applicant]
US 7830787B1 · Wijnands et al. · 2010 [cited by applicant]
US 9843509B2 · Pan et al. · 2017 [cited by applicant]
US 20010021175A1 · Haverinen · 2001 [cited by applicant]
US 20010023453A1 · Sundqvist · 2001 [cited by applicant]
US 20010043603A1 · Yu · 2001 [cited by applicant]
US 20020112072A1 · Jain · 2002 [cited by applicant]
US 20020141393A1 · Eriksson et al. · 2002 [cited by applicant]
US 20020146026A1 · Unitt et al. · 2002 [cited by applicant]
US 20030002482A1 · Kubler et al. · 2003 [cited by applicant]
US 20030039237A1 · Forslöw · 2003 [cited by applicant]
US 20030093747A1 · Brouet · 2003 [cited by examiner]
US 20030117950A1 · Huang · 2003 [cited by applicant]
US 20040105459A1 · Mannam · 2004 [cited by applicant]
US 20040114595A1 · Doukai · 2004 [cited by applicant]
US 20040133692A1 · Blanchet et al. · 2004 [cited by applicant]
US 20040156313A1 · Hofmeister et al. · 2004 [cited by applicant]
US 20040174865A1 · ONeill · 2004 [cited by applicant]
US 20040252717A1 · Solomon et al. · 2004 [cited by applicant]
US 20050018605A1 · Foote et al. · 2005 [cited by applicant]
US 20050044262A1 · Luo · 2005 [cited by applicant]
US 20050058060A1 · Caldwell et al. · 2005 [cited by applicant]
US 20050080890A1 · Yang et al. · 2005 [cited by applicant]
US 20050080911A1 · Stiers et al. · 2005 [cited by applicant]
US 20050093770A1 · De et al. · 2005 [cited by applicant]
US 20050125490A1 · Ramia · 2005 [cited by applicant]
US 20050220148A1 · Delregno et al. · 2005 [cited by applicant]
US 20050237927A1 · Kano et al. · 2005 [cited by applicant]
US 20050238049A1 · Delregno · 2005 [cited by applicant]
US 20050259586A1 · Hafid et al. · 2005 [cited by applicant]
US 20060002423A1 · Rembert et al. · 2006 [cited by applicant]
US 20060018252A1 · Sridhar et al. · 2006 [cited by applicant]
US 20060046658A1 · Cruz et al. · 2006 [cited by applicant]
US 20060047851A1 · Voit et al. · 2006 [cited by applicant]
US 20060090008A1 · Guichard et al. · 2006 [cited by applicant]
US 20060146832A1 · Rampal et al. · 2006 [cited by applicant]
US 20060215653A1 · Lavigne et al. · 2006 [cited by applicant]
US 20060227767A1 · Johnson et al. · 2006 [cited by applicant]
US 20060233167A1 · McAllister et al. · 2006 [cited by applicant]
US 20070030851A1 · Sinicrope et al. · 2007 [cited by applicant]
US 20070038921A1 · Pekonen et al. · 2007 [cited by applicant]
US 20070053366A1 · Booth et al. · 2007 [cited by applicant]
US 20070070893A1 · Butenweg et al. · 2007 [cited by applicant]
US 20070127479A1 · Sinicrope et al. · 2007 [cited by applicant]
US 20070206607A1 · Chapman et al. · 2007 [cited by applicant]
US 20080031129A1 · Arseneault et al. · 2008 [cited by applicant]
US 20080144632A1 · Rabie et al. · 2008 [cited by applicant]
US 20080144641A1 · Le et al. · 2008 [cited by applicant]
US 20080186897A1 · Rune et al. · 2008 [cited by applicant]
Afferton, Thomas S, et al., “Ethernet Transport over Wide Area Networks”, Afferton, Thomas S. et al., Ethernet Transport over Wide Area Networks, Packet-Aware Transport for Metro Networks, IEEE Communications Magazine, … [cited by applicant]
Anderson L, et al., “LDP Specification”, Anderson, L. et al., LDP Specification, Network Working Group, Jan. 2001, Jan. 2001. [cited by applicant]
Blake , et al., “An Architecture for Differentiated Services”, Blake et al. “An Architecture for Differentiated Services,” Network Working Group, Dec. 1998, Dec. 1998. [cited by applicant]
Braden , et al., “Integrated Services in the Internet Architecture: an overview”, Braden et al. “Integrated Services in the Internet Architecture: an overview,” Network Working Group, Jun. 1994, Jun. 1994. [cited by applicant]
Bryant , et al., “Pseudo wire Emulation Edge to-Edge (PWE3) Architecture”, Bryant et al. “Pseudo wire Emulation Edge40-Edge (PWE3) Architecture, ” Network Working Group, Mar. 2005, Mar. 2005. [cited by applicant]
Bryant S, et al., “Pseudo Wire Emulation Edge-to-Edge (PWE3) Architecture”, Bryant, S. et al., Pseudo Wire Emulation Edge-to-Edge (PWE3) Architecture, Network Working Group, Mar. 2005., Mar. 2005. [cited by applicant]
Martini Luca, et al., “Dynamic Placement of Multi Segment Pseudo Wires”, Martini, Luca et al., Dynamic Placement of Multi Segment Pseudo Wires, PWE3 Working Group, Jun. 2006., Jun. 2006. [cited by applicant]
Martini Luca, et al., “Encapsulation Methods for Transport of Ethernet over MPLS Networks”, Martini, Luca et al., Encapsulation Methods for Transport of Ethernet over MPLS Networks, Network Working Group. Apr. 2006., Ap… [cited by applicant]
Martini Luca, et al., “Encapsulation Methods for Transport of Frame Relay Over MPLS Networks”, Martini, Luca et al., Encapsulation Methods for Transport of Frame Relay Over MPLS Networks, Network Working Group, Feb. 200… [cited by applicant]
Martini, Luca , et al., “Internet Draft, Segmented Pseudo Wire”, Martini, Luca et al., Internet Draft, Segmented Pseudo Wire, Network Working Group, Jul. 2007, Jul. 2007. [cited by applicant]
Martini Luca, et al., “Pseudowire Setup and Maintenance using LDP”, Martini, Luca et al., Pseudowire Setup and Maintenance using LDP. Network Working Group, Mar. 2005., Mar. 2005. [cited by applicant]
Martini, Luca , et al., “Pseudowire Setup and Maintenance using the Label Distribution Protocol (LDP)”, Martini, L. et al., Pseudowire Setup and Maintenance using the Label Distribution Protocol (LDP), Network Working G… [cited by applicant]
Martini L, et al., “Pseudowire Setup and Maintenance using the Label Distribution Protocol (LDP)”, Martini, L. et al., Pseudowire Setup and Maintenance using the Label Distribution Protocol (LDP). Network Working Group,… [cited by applicant]
McPherson , et al., “Pseudowire Emulation Edge to Edge (PWE3)”, Mcpherson et al., Pseudowire Emulation Edge to Edge (PWE3) Jun. 13, 2007, http://www.ietforg/html.charters/pwe3-carter.html, Jun. 2007. [cited by applicant]
Metz Chris, et al., “Pseudowire Attachment Identifiers for Aggregation and VPN Autodiscovery”, Metz, Chris et al., Pseudowire Attachment Identifiers for Aggregation and VPN Autodiscovery, PWE3 Working Group, Feb. 25, 20… [cited by applicant]
Newton, Harry , ““Newton's Telecom Dictionary”, 23rd Updated and Expanded Edition”, Harry Newton, “Newton's Telecom Dictionary”, 23rd Updated and Expanded Edition, p. 825, p. 239, Flatiron Publishing, New York, Mar. 200… [cited by applicant]
Pan, Ping , “Internet Draft, Dry-Martini: Supporting Pseudo-wires in Sub-IP Access Networks”, Pan, Ping, Internet Draft, Dry-Martini: Supporting Pseudo-wires in Sub-IP Access Networks, Network Working Group, Jul. 2005.,… [cited by applicant]
Pan, P , et al., “Internet Draft, Pseudo Wire Protection”, Pan, P. et al., Internet Draft, Pseudo Wire Protection, Jul. 2006, Jul. 2006. [cited by applicant]
Rosen, E, et al., “BGP-MPLS IP Virtual Private Networks (VPN)”, Rosen, E. et al., BGP-MPLS IP Virtual Private Networks (VPN), Network Working Group, Feb. 2006., Feb. 2006. [cited by applicant]
Rosen, Eric C, et al., “Internet Draft, PWE3 Congestion Control Framework”, Rosen, Eric C. et al., Internet Draft, PWE3 Congestion Control Framework, Network Working Group. Mar. 2004., Mar. 2004. [cited by applicant]
Rosen, Eric , et al., “PWE3 Congestion Control Framework”, Rosen, Eric C. et al., Internet Draft, PWE3 Congestion Control Framework, Network Working Group, Mar. 2004. [cited by applicant]
Shah, Himanshu , et al., “Internet Draft, ARP Mediation for IP Interworking of Layer 2 VPN”, Shah, Himanshu et al., Internet Draft, ARP Mediation for IP Interworking of Layer 2 VPN, L2VPN Working Group, Jul. 2007., Jul.… [cited by applicant]
Theimer, T , et al., “Requirements for OAM Functionality in MPLS”, Theimer, T. et al., “Requirements for OAM Functionality in MPLS”, Oct. 1999, Watersprings., Oct. 1999. [cited by applicant]
Vasseur , et al., “Path Computation Element (pce)”, Vasseur, et al., Path Computation Element (pce), May 9, 2007, http://www.ietLorg/html.charters/pce.charter.html, May 2007. [cited by applicant]