← Back to Patent Explorer
US6510164B1 Expired / Lapsed US ⏱️ 0.0 years remaining

User-level dedicated interface for IP applications in a data packet switching and load balancing system

Assignee: Oracle America Inc
•
Filing: 1998-11-16
•
Granted: 2003-01-21
•
Expires: 2018-11-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A multiprocessor computer system comprises a plurality of network interfaces each adapted to be coupled to respective external networks for receiving and sending data packets to and from remote devices coupled to the external networks via a particular communication protocol. The multiprocessor computer system further comprises a plurality of symmetrical processors including a control processor and at least one switching processor. The switching processor further includes at least one network application executing thereon. The control processor further includes an operating system portion having a kernel memory and at least one network driver communicating with the plurality of network interfaces. A buffer descriptor list is accessible by the network application and the network driver. The buffer descriptor list defines the status of buffers provided in the kernel memory that are used for temporary storage of data packets transferred between the network application and the plurality of network interfaces via the network driver. Data packets received by the network interfaces from the external networks directed to the network application are placed in selected ones of the buffers by the network driver for direct access by the network application. Similarly, data packets transmitted from the network application to the external networks are placed in other selected ones of the buffers for direct access by the network driver.

Inventors

  • 👤 Kumar Ramaswamy
  • 👤 Cher-Wen Lin
  • 👤 Randall David Rettberg
  • 👤 Mizanur Mohammed Rahman

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 23:21
CPC Classifications
H; H04; H04L; H04L49/00; H04L49/90; H04L49/901; H04L45/00; H04L49/9047; H04L49/9057; H04L49/25; H04L49/30; H04L49/3009; H04L49/35; H04L49/351

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 228 words
A multiprocessor computer system, comprising: a plurality of network interfaces each adapted to be coupled to respective external networks for receiving and sending data packets to and from remote devices coupled to said external networks via a particular communication protocol; a plurality of symmetrical processors including a control processor and at least one switching processor, said at least one switching processor further including at least one network application executing thereon, said control processor further including an operating system portion that includes a kernel memory and at least one network driver communicating with said plurality of network interfaces; and a buffer descriptor list accessible by said at least one network application and said at least one network driver, said buffer descriptor list defining status of buffers provided in said kernel memory used for temporary storage of data packets transferred between said at least one network application and said plurality of network interfaces via said network driver; wherein, data packets received by said network interfaces from said external networks directed to said at least one network application are placed in selected ones of said buffers by said network driver for direct access by said at least one network application, and data packets transmitted from said at least one network application to said external networks are placed in other selected ones of said buffers for direct access by said network driver.
Claim 2
Dependent Claim 228 words
A multiprocessor computer system, comprising: a plurality of network interfaces each adapted to be coupled to respective external networks for receiving and sending data packets to and from remote devices coupled to said external networks via a particular communication protocol; a plurality of symmetrical processors including a control processor and at least one switching processor, said at least one switching processor further including at least one network application executing thereon, said control processor further including an operating system portion that includes a kernel memory and at least one network driver communicating with said plurality of network interfaces; and a buffer descriptor list accessible by said at least one network application and said at least one network driver, said buffer descriptor list defining status of buffers provided in said kernel memory used for temporary storage of data packets transferred between said at least one network application and said plurality of network interfaces via said network driver; wherein, data packets received by said network interfaces from said external networks directed to said at least one network application are placed in selected ones of said buffers by said network driver for direct access by said at least one network application, and data packets transmitted from said at least one network application to said external networks are placed in other selected ones of said buffers for direct access by said network driver.
Claim 3
Dependent Claim 60 words
The multiprocessor computer system of claim 1 , wherein said at least one switching processor further includes stored instructions to be executed by said at least one switching processor, said stored instructions comprising the steps of: disabling interrupts directed to said at least one switching processor; and circling through said buffer descriptor list to monitor ownership status of said buffers.
Claim 4
Dependent Claim 58 words
The multiprocessor computer system of claim 2 , wherein said stored instructions further comprise: for receiving a data packet from said external networks, identifying one of said buffers reflecting ownership by one of said network applications, processing a data packet stored in said one of said buffers, and restoring said one of said buffers to a free status.
Claim 5
Dependent Claim 60 words
The multiprocessor computer system of claim 2 , wherein said stored instructions further comprise: for transmitting a data packet from said at least one network application, identifying a free one of said buffers, storing a data packet in said free buffer, and changing ownership status of said free buffer to reflect ownership by one of said plurality of network interfaces.
Claim 6
Dependent Claim 91 words
The multiprocessor computer system of claim 1 , wherein said control processor receives raw load status data from said external networks and generates load distribution configuration data therefrom, said load distribution configuration data being accessible by said at least one switching processor, said at least one switching processor routing received ones of said data packets not directed to said at least one network application to a selected one of said external networks in accordance with information included in a header portion of said data packets and said load distribution configuration data.
Claim 7
Dependent Claim 35 words
The multiprocessor computer system of claim 1 , wherein said at least one switching processor further provides periodic polling of corresponding ones of said network interfaces for detecting received ones of said data packets therein.
Claim 8
Dependent Claim 38 words
The multiprocessor computer system of claim 5 , wherein said at least one switching processor further re-writes said routing information included in said header portion of said data packets to reflect said selected one of said external networks.
Claim 9
Dependent Claim 27 words
The multiprocessor computer system of claim 5 , further comprising a shared memory including a connection table reflecting status of previously received ones of said data packets.
Claim 10
Dependent Claim 48 words
The multiprocessor computer system of claim 8 , wherein said at least one switching processor accesses said connection table to determine correspondence between a received one of said data packets and said previously received ones of said data packets in determining said selected one of said external networks.
Claim 11
Dependent Claim 22 words
The multiprocessor computer system of claim 8 , wherein said memory further comprises a configuration table containing said load distribution configuration data.
Claim 12
Dependent Claim 121 words
The multiprocessor computer system of claim 5 , wherein said at least one switching processor further includes a switching program having an engine module containing stored instructions to be executed by said at least one switching processor, said stored instructions comprising the steps of: polling a first one of said network interfaces for presence of a received data packet; if a received data packet is present at said first one of said network interfaces, routing said received data packet to said selected one of said external networks; and if a received one of said data packets is not present at said first one of said network interfaces, polling another one of said network interfaces for presence of a received data packet.
Claim 13
Dependent Claim 122 words
The multiprocessor computer system of claim 8 , wherein said at least one switching processor further includes; a filter module having stored instructions to be executed by said at least one switching processor, said stored instructions comprising the steps of: reading routing information from said header portion of said data packet; accessing said load distribution configuration data stored in said shared memory; selecting said selected one of said external networks based on said routing information and said load distribution configuration data; modifying said data packet by re-writing said routing information to reflect said selected one of said external networks; and sending said modified data packet to one of said plurality of network interfaces corresponding to said selected one of said external networks.
Claim 14
Dependent Claim 96 words
The multiprocessor computer system of claim 12 , wherein said stored instructions of said filter module further comprises the steps of: reading transport information from said header portion of said data packet; and accessing connection status data stored in a connection table of said shared memory reflecting status of previously received -ones of said data packets, wherein, if said transport information indicates that said data packet corresponds to a previously received data packet, then said selecting step further comprises selecting said selected one of said external networks based on routing of said previously received data packet.
Claim 15
Dependent Claim 238 words
In a multiprocessor computer system comprising a plurality of symmetrical processors and a plurality of network interfaces each adapted to be coupled to respective external networks for receiving data packets from remote devices and sending data packets thereto via a particular communication protocol, a method for operating said computer system comprises the steps of: configuring one of said plurality of processors as a control processor and others of said plurality of processors as switching processors, said control processor further having an operating system portion that includes a kernel memory and at least one network driver communicating with said plurality of network interfaces, at least one of said switching processors further including a network application executing thereon; providing a buffer descriptor list accessible by said network application and said at least one network driver, said buffer descriptor list defining status of plural buffers provided in said kernel memory used for temporary storage of data packets transferred between said network application and said plurality of network interfaces via said network driver; placing incoming data packets received by said network interfaces from said external networks directed to said at least one network application in selected ones of said buffers by said network driver for direct access by said network application; and placing outgoing data packets transmitted from said at least one network application to said external networks in other selected ones of said buffers for direct access by said network driver.
Claim 16
Dependent Claim 238 words
In a multiprocessor computer system comprising a plurality of symmetrical processors and a plurality of network interfaces each adapted to be coupled to respective external networks for receiving data packets from remote devices and sending data packets thereto via a particular communication protocol, a method for operating said computer system comprises the steps of: configuring one of said plurality of processors as a control processor and others of said plurality of processors as switching processors, said control processor further having an operating system portion that includes a kernel memory and at least one network driver communicating with said plurality of network interfaces, at least one of said switching processors further including a network application executing thereon; providing a buffer descriptor list accessible by said network application and said at least one network driver, said buffer descriptor list defining status of plural buffers provided in said kernel memory used for temporary storage of data packets transferred between said network application and said plurality of network interfaces via said network driver; placing incoming data packets received by said network interfaces from said external networks directed to said at least one network application in selected ones of said buffers by said network driver for direct access by said network application; and placing outgoing data packets transmitted from said at least one network application to said external networks in other selected ones of said buffers for direct access by said network driver.
Claim 17
Dependent Claim 35 words
The method of claim 14 , further comprising the steps of: disabling interrupts directed to said at least one switching processor; and circling through said buffer descriptor list to monitor ownership status of said buffers.
Claim 18
Dependent Claim 49 words
The method of claim 14 , wherein said step of placing incoming data packets further comprises: identifying one of said buffers reflecting ownership by said network application, processing a data packet stored in said one of said buffers, and restoring said one of said buffers to a free status.
Claim 19
Dependent Claim 50 words
The method of claim 14 , wherein said step of placing outgoing data packets further comprise: identifying a free one of said buffers, storing a data packet in said free buffer, and changing ownership status of said free buffer to reflect ownership by one of said plurality of network interfaces.
Claim 20
Dependent Claim 96 words
The method of claim 14 , further comprising the steps of: providing load data to said control processor regarding load status of said external networks; generating load distribution configuration data from said load data using said control processor and providing said load distribution configuration data for access by said data packet switching processors; and routing a received data packets not directed to said network application using said switching processors to a selected one of said external networks in accordance with information included in a header portion of said data packet and said load distribution configuration data.
Claim 21
Dependent Claim 37 words
The method of claim 18 , further comprising the step of re-writing said routing information included in said header portion of said data packets by said switching processors to reflect said selected one of said external networks.
Claim 22
Dependent Claim 25 words
The method of claim 18 , further comprising the step of providing a connection table reflecting status of previously received ones of said data packets.
Claim 23
Dependent Claim 45 words
The method of claim 20 , further comprising accessing said connection table by said switching processors to determine correspondence between said received one of said data packets and said previously received ones of said data packets in determining said selected one of said external networks.
Claim 24
Dependent Claim 18 words
The method of claim 18 , further comprising providing a configuration table containing said load distribution configuration data.
Claim 25
Dependent Claim 14 words
The method of claim 14 , wherein said particular communication protocol further comprises TCP/IP.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-01-20 2006-07-22 2007-01-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-01-20 2010-07-22 2011-01-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-01-20 2014-07-22 2015-01-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag