IP Library Granted Patent US 8,601,139
Granted Patent B2
US 8,601,139 · App. 12/315,080 · Granted Dec 3, 2013

Multiple core session initiation protocol (SIP)

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 8,601,139
App. No.
12/315,080
Granted
Dec 3, 2013
Kind
B2
Abstract

A Session Initiation Protocol (SIP) proxy server including a multi-core central processing unit (CPU) is presented. The multi-core CPU includes a receiving core dedicated to pre-SIP message processing. The pre-SIP message processing may include message retrieval, header and payload parsing, and Call-ID hashing. The Call-ID hashing is used to determine a post-SIP processing core designated to process messages between particular user pair. The pre-SIP and post-SIP configuration allows for the use of multiple processing cores to utilize a single control plane, thereby providing an accurate topology of the network for each processing core.

Claims (30)

1. A method for processing a protocol message, the method comprising:

in a receiving core of a multi-core processor, the receiving core configured to perform pre-SIP processing of protocol messages:

given a plurality of different media sessions between users, for each of the media sessions, analyzing a protocol message sent to the receiving core in order to determine an associated call identifier, wherein the call identifier uniquely identifies protocol messages, including the protocol message being analyzed, associated with one of the media sessions, wherein for each media session, all corresponding protocol messages are identified by a single respective call identifier;

hashing the call identifier with a hash function at the receiving core in order to determine a processing core from a plurality of processing cores in the multi-core processor, the processing cores configured to perform post-SIP processing of protocol messages; and

directing the protocol message analyzed to the processing core determined, wherein for each media session, all the corresponding protocol messages are directed to a single respective processing core of the plurality of processing cores in the multi-core processor.

2. The method of claim 1 wherein the call identifier is included in a heading of the protocol message.

3. The method of claim 1 further including processing a plurality of protocol messages on respective processing cores in parallel and with a single copy of a control software process.

4. The method of claim 3 wherein the control software process is a private branch exchange (PBX) process, a SIP Media Gateway processor, or a SIP Proxy server.

5. A hardware multi-core processing system comprising:

a receiving core dedicated to pre-SIP processing of protocol messages, the receiving core configured to receive a protocol message and to hash a call identifier associated with the protocol message, the receiving core further configured to direct the protocol message based on the hashed call identifier,

wherein given a plurality of different media sessions between users, for each of the media sessions, the call identifier uniquely identifies protocol messages, including the protocol message being directed, associated with one of the media sessions, wherein for each media session, all corresponding protocol messages are identified by a single respective call identifier; and

a plurality of processing cores configured to perform post-SIP processing of protocol messages, where a processing core of the plurality of processing cores is configured to receive the protocol message based on the hashed call identifier, the processing core configured to further process the protocol message, wherein for each media session, all the corresponding protocol messages are received by a single respective processing core.

6. The system of claim 5 wherein the plurality of processing cores are configured to process a plurality of incoming protocol messages in parallel and with a single copy of a control software process.

7. The system of claim 6 wherein the control software process is a private branch exchange (PBX), a SIP Media Gateway processor, or a SIP Proxy server.

8. The system of claim 5 wherein the call identifier is included in a header of the protocol message.

9. A method for processing protocol messages, the method comprising:

receiving a plurality of protocol messages sent to a receiving core, the receiving core configured to perform pre-SIP processing of protocol messages;

given a plurality of different media sessions between users, for each of the media sessions, analyzing the protocol messages at the receiving core in order to determine an associated call identifier, wherein the call identifier uniquely identifies protocol messages, including the protocol messages being analyzed, associated with one of the media sessions, wherein for each media session, all corresponding protocol messages are identified by a single respective call identifier;

directing the protocol messages, based on the call identifier, to respective processing cores from a plurality of processing cores, the processing cores configured to perform post-SIP processing of protocol messages, the receiving core and the plurality of processing cores being located within a same multi-core processor; and

processing the protocol messages in respective processing cores in a parallel manner, where each processing core operates within a single control plane, wherein for each media session, all the corresponding protocol messages are directed to a single respective processing core.

10. The method of claim 9 wherein the single control plane is a private branch exchange (PBX), a SIP Media Gateway processor, or a SIP Proxy server.

11. A hardware multi-core processing system comprising:

a receiving core dedicated to pre-SIP processing of protocol messages, the receiving core configured to receive a protocol message, the receiving core further configured to direct the protocol message for further processing based on a call identifier associated with the protocol message, wherein-given a plurality of different media sessions between users, for each of the media sessions, the call identifier uniquely identifies protocol messages, including the protocol message being directed, associated with one of the media sessions, wherein for each media session, all corresponding protocol messages are identified by a single respective call identifier; and

a plurality of processing cores, the processing cores configured to perform post-SIP processing of protocol messages, where a processing core of the plurality of processing cores is configured to receive the protocol message based on the call identifier, the plurality of processing cores configured to process incoming protocol messages in parallel and under a single control plane, wherein for each media session, all the corresponding protocol messages are received by a single respective processing core.

12. The system of claim 11 wherein the single control plane is a private branch exchange, a SIP Media Gateway processor, or a SIP Proxy server.

13. The system of claim 11 wherein the receiving core includes a hash function configured to hash the call identifier to determine which processing core of the plurality of processing cores to send the protocol message.

14. A non-transitory computer-readable medium storing instructions for processing a protocol message that, when executed by a computer, cause the computer to:

given a plurality of different media sessions between users, for each of the media sessions, analyze a protocol message sent to a receiving core in order to determine an associated call identifier, the receiving core dedicated to pre-SIP processing of protocol messages, wherein the call identifier uniquely identifies protocol messages, including the protocol message being analyzed, associated with one of the media sessions, wherein for each media session, all corresponding protocol messages are identified by a single respective call identifier;

hash the call identifier with a hash function at the receiving core in order to determine a processing core from a plurality of processing cores in the multi-core processor, the processing cores configured to perform post-SIP processing of protocol messages; and

direct the protocol message to the processing core determined, wherein for each media session, all the corresponding protocol messages are directed to a single respective processing core of the plurality of processing cores in the multi-core processor.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
MERGER Recorded Jul 21, 2011
From: CAVIUM NETWORKS, INC.
To: CAVIUM, INC.
Reel/Frame 026632/0672 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2009
From: GOYAL, RAJAN; HUSSAIN, M. RAGHIB
To: CAVIUM NETWORKS, INC.
Reel/Frame 022268/0482 →