KR100624679B1 - method and system for managing Inter Processor Communication channel in Embedded system - Google Patents

method and system for managing Inter Processor Communication channel in Embedded system Download PDF

Info

Publication number
KR100624679B1
KR100624679B1 KR1020040001710A KR20040001710A KR100624679B1 KR 100624679 B1 KR100624679 B1 KR 100624679B1 KR 1020040001710 A KR1020040001710 A KR 1020040001710A KR 20040001710 A KR20040001710 A KR 20040001710A KR 100624679 B1 KR100624679 B1 KR 100624679B1
Authority
KR
South Korea
Prior art keywords
ipc
board
message
application
daemon
Prior art date
Application number
KR1020040001710A
Other languages
Korean (ko)
Other versions
KR20050073344A (en
Inventor
황철훈
최병구
박용석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040001710A priority Critical patent/KR100624679B1/en
Publication of KR20050073344A publication Critical patent/KR20050073344A/en
Application granted granted Critical
Publication of KR100624679B1 publication Critical patent/KR100624679B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/24Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using dedicated network management hardware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/026Details of "hello" or keep-alive messages

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명에서는 임베디드 시스템에서 보드의 부팅시 보드별로 IPC 채널 설정을 위한 IPC 관리자를 구동하여 커널층에서 각 보드간에 TCP 또는 UDP 소켓을 이용하여 IPC 채널을 설정하는 단계와, 각 보드별로 IPC 관리자가 자신의 보드에서 구동될 상위 어플리케이션 데몬들의 서비스 등록을 위한 API를 제공하는 단계와, 상위 어플리케이션 데몬의 부팅시 IPC 관리자가 API를 통해 해당 어플리케이션 데몬으로부터 해당 어플리케이션 데몬의 서비스를 등록받아 해당 어플리케이션 데몬의 서비스 정보를 저장하고 서비스 정보에 따라 어플리케이션 데몬이 콜백함수로 제공한 제어 메시지 수신 함수를 바인딩하는 단계와, 임의의 어플리케이션 데몬에 대한 메시지가 수신되는 경우, IPC 관리자는 해당 서비스 아이디 별로 바인딩된 콜백함수를 호출하여 상위 어플리케이션 데몬에 메시지를 전달하여 어플리케이션 데몬간 IPC 통신을 수행하는 단계를 포함하여 각각의 어플리케이션 데몬들이 직접 관리해야하는 IPC 채널의 개수를 줄이고, 커널층에 IPC 관리자를 둠으로써 LCRPC간에 안정적인 IPC 채널 관리와 제어를 할 수 있고, IPC 채널을 관리하기 위한 부가적인 트래픽의 양을 현저하게 줄일 수 있다.In the present invention, the IPC manager for setting the IPC channel for each board at the time of booting the board in the embedded system to set the IPC channel using TCP or UDP socket between each board in the kernel layer, and the IPC manager for each board Provide API for service registration of upper application daemons to be run on the board of the server, and when the upper application daemon boots, the IPC administrator registers the service of the application daemon from the corresponding application daemon through the API and provides service information of the corresponding application daemon. And storing the control message receiving function provided by the application daemon as a callback function according to the service information, and when a message for any application daemon is received, the IPC manager calls the callback function bound by the service ID. Top Apps by Stable IPC channel management and control between LCRPCs by reducing the number of IPC channels that each application daemon must manage directly, including sending messages to the application daemons to perform IPC communication between application daemons, and having an IPC manager at the kernel layer. It can significantly reduce the amount of additional traffic for managing the IPC channel.

IPC, IPC 관리자, 커널, 어플리케이션, 데몬, 릴레이, TCP, UDPIPC, IPC Manager, Kernel, Application, Daemon, Relay, TCP, UDP

Description

임베디드 시스템의 아이피씨 채널 관리 방법 및 그 시스템{method and system for managing Inter Processor Communication channel in Embedded system} Method and system for managing Inter Processor Communication channel in Embedded system             

도 1은 하나의 시스템에 실장된 스위칭 제어보드와 가입자 보드간에 수행되는 종래의 IPC 채널 관리 방법을 설명하기 위한 개념도.1 is a conceptual diagram illustrating a conventional IPC channel management method performed between a switching control board and a subscriber board mounted in one system.

도 2는 IPC 설정에 따른 IPC 채널의 개수를 보여주는 도면.2 is a diagram illustrating the number of IPC channels according to IPC configuration.

도 3은 본 발명에 따른 IPC 채널 관리 시스템의 개념 설명도.3 is a conceptual diagram of an IPC channel management system according to the present invention;

도 4는 IPC 설정에 따른 IPC 채널의 개수를 보여주는 도면.4 is a diagram illustrating the number of IPC channels according to IPC configuration.

도 5 내지 도 6은 릴레이 방식을 통하여 서로 다른 가입자 보드간에 IPC 채널을 설정하는 것을 설명하기 위한 개념도.5 to 6 is a conceptual diagram illustrating the establishment of an IPC channel between different subscriber boards through a relay scheme.

도 7은 본 발명에 따른 릴레이 기능을 이용하여 셀프간에 IPC 통신을 수행하는 것을 설명하기 위한 개념도.7 is a conceptual diagram for explaining the IPC communication between the self using the relay function according to the present invention.

본 발명은 IPC(Inter Processor Communication) 채널 연결 시스템 및 그 방 법에 관한 것으로, 상세하게는 리눅스(Linux)를 운영체제(Operating System)로 하는 임베디드 시스템(Embedded System)에서 가입자 보드내 혹은 가입자 보드간에 통신을 수행하기 위한 IPC 채널을 설정하고 관리하는 시스템 및 그 방법에 관한 것이다.The present invention relates to an IPC (Inter Processor Communication) channel connection system and a method thereof, and more particularly, to communicate within or between subscriber boards in an embedded system using Linux as an operating system. The present invention relates to a system and method for setting and managing an IPC channel for performing the above.

임베디드 시스템은 PC(personal computer)와 같은 최종 사용자(End user) 장비가 아닌 네트워크 시스템(예를 들면, 라우터 스위치)으로서, 일반적으로 시스템의 안정성을 위해 운용체제로 리눅스를 사용한다.Embedded systems are network systems (for example, router switches), rather than end-user devices such as personal computers (PCs), and typically use Linux as the operating system for system reliability.

종래에 리눅스를 운용체제로 사용하는 환경하에서는 데몬(daemon)이라 불리는 독립적인 소프트웨어 모듈들이 시스템내에서 필요한 수만큼 구동되어 각각의 작업들을 수행한다. 이러한 데몬(daemon)들은 동일한 가입자 보드내에 있는 서로 다른 모듈간 혹은 여러개의 가입자 보드에 있는 서로 같은 종류의 모듈간에 통신을 수행한다.In an environment using Linux as an operating system, independent software modules called daemons are run as many as necessary in the system to perform their respective tasks. These daemons communicate between different modules in the same subscriber board or between different types of modules in multiple subscriber boards.

종래에 이러한 모듈들이 서로 통신을 수행하는 방법에는 직접 TCP(Transmission Control Protocol)나 UDP (user datagram protocol)소켓을 열어 IPC 채널을 통해 점대점으로 풀 메쉬(Full Mesh) 방식으로 연결하는 방식이 주로 사용되고 있다.Conventionally, these modules communicate with each other by directly opening a Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) socket and connecting a full mesh method to a point-to-point through an IPC channel. have.

도 1은 하나의 시스템에 실장된 스위칭 제어보드와 가입자 보드간에 수행되는 종래의 IPC 채널 관리 방법을 설명하기 위한 개념도이다. 1 is a conceptual diagram illustrating a conventional IPC channel management method performed between a switching control board and a subscriber board mounted in a system.

도 1을 참조하면, 일반적으로 리눅스를 운영체제로 하는 시스템에서 어플리케이션 소프트웨어(Application S/W) 데몬간에 통신하는 방법은 세가지가 있다.Referring to FIG. 1, in general, there are three methods for communicating between application software (Application S / W) daemons in a system using Linux.

IPC 타입 A : MASTER / SLAVE ( TCP, UDP )IPC Type A: MASTER / SLAVE (TCP, UDP)

IPC 타입 B : Full Mesh ( TCP, UDP )IPC Type B: Full Mesh (TCP, UDP)

IPC 타입 C : 보드내 통신 ( Domain Socket)IPC Type C: Board Communication

IPC 타입 A(3)는 스위치(2)에서 마스터(MASTER) 데몬이 동작하고 가입자 보드(1)에서 슬레이브(SLAVE) 데몬이 동작하여 서로 통신을 수행하며, 슬레이브 데몬끼리는 서로 통신할 필요가 없는 형태이다.In the IPC type A (3), the master daemon operates at the switch 2 and the slave daemons operate at the subscriber board 1 to communicate with each other, and the slave daemons do not need to communicate with each other. to be.

IPC 타입 B(4)는 각 데몬이 모두 독립적으로 타 보드의 동일한 어플리케이션 데몬끼리 혹은 다른 데몬끼리 풀 메쉬형태로 IPC를 맺어야 하는 경우이다.IPC Type B (4) is a case where each daemon independently needs to form IPC in full mesh form among other application daemons or other daemons.

IPC 타입 C(5)는 동일 보드 내에서 다른 데몬 들끼리 통신하는 경우이다. 이때, 동일 보드 내에서도 IPC 타입 A 형태처럼 특정 데몬에 슬레이브로 종속적으로 접속하는 형태의 경우와 동일 보드내 다른 데몬끼리 연결하는 경우가 혼재될 수 있다. 그러나, IPC 타입 C 형태는 도메인(Domain) 소켓을 일반적으로 사용한다.IPC Type C (5) is a case where different daemons communicate on the same board. At this time, even in the same board as in the IPC type A form, the case in which the slaves are connected to a specific daemon as slaves may be mixed with other daemons in the same board. However, IPC type C forms generally use domain sockets.

IPC B 타입처럼 각 어플리케이션 데몬간 풀메쉬로 맺어야 하는 경우 도 2를 참조하면, 11개의 가입자 보드에서 한 종류의 어플리케이션 데몬이 서로 IPC 채널을 열기 위해서는 모두 시스템 내 (11 x (11-1)/2 ) = 55 개의 IPC 채널이 필요하며, 각 데몬은 10개의 채널을 관리해야 한다.If the application meshes should be full meshed between application daemons like the IPC B type Referring to FIG. 2, in order to open an IPC channel with one application daemon on each of 11 subscriber boards, it is necessary to use (11 x (11-1) / 2) ) = 55 IPC channels are required, and each daemon must manage 10 channels.

그리고, 이런 어플리케이션 데몬의 개수가 10개라면, 시스템내 IPC 채널의 수는 해당 데몬 수 만큼 늘어나 (11 x (11-1)/2 ) x 10 = 550 개의 IPC 채널이 필요로 하게 된다. 그리고, 각 가입자 보드의 커널(Kernel)에서 TCP나 UDP에서 관리해야할 채널의 수 역시 10x10 = 100 개이다.If the number of such application daemons is 10, the number of IPC channels in the system is increased by the number of daemons (11 x (11-1) / 2) x 10 = 550 IPC channels. In addition, the number of channels to be managed by TCP or UDP in the kernel of each subscriber board is also 10x10 = 100.

도 2는 도 1에서 IPC 설정에 따른 IPC 채널의 개수를 보여준다.FIG. 2 shows the number of IPC channels according to IPC configuration in FIG. 1.

종래의 방식에서 각 IPC 방식에서의 채널 갯수를 살펴보면 다음과 같다.In the conventional method, the number of channels in each IPC method is as follows.

IPC 스타일 A(점선)IPC Style A (dotted line)

Total System IPC channel : (LCRPC# -1) * Appd# Total System IPC channel: (LCRPC # -1) * Appd #

IPC 스타일 B(실선)IPC Style B (solid line)

Total System IPC channel : ( LCRPC# x (LCRPC# -1)/2 ) * Appd#Total System IPC channel: (LCRPC # x (LCRPC # -1) / 2) * Appd #

IPC 스타일 C ( 한 LCRPC 내에서 ) IPC Style C (within one LCRPC)

도메인 소켓을 사용한 A 형태 : Slave Appd #A form using domain socket: Slave Appd #

도메인 소켓을 사용한 B 형태 : ( Appd # x ( Appd # -1)/2 )Form B with domain sockets: (Appd # x (Appd # -1) / 2)

(SWRPC도 LCRPC 의 개수로 포함해서 계산함 )       (SWRPC is also included as the number of LCRPC)

이와 같이, 종래의 IPC 채널 관리 방법에 의하면, 각각의 어플리케이션 데몬들이 많은 수의 IPC 채널을 관리해야 하며, 이를 유지하기 위한 많은 트래픽을 발생하게 된다. 아울러, 어플리케이션의 개수와 LCRPC의 개수에 따라 엄청나게 증가하게 되는 문제점이 있다.As described above, according to the conventional IPC channel management method, each application daemon must manage a large number of IPC channels and generate a lot of traffic for maintaining them. In addition, there is a problem that greatly increases according to the number of applications and the number of LCRPC.

본 발명은 이러한 종래의 문제점을 해결하기 위하여 안출된 것으로, 어플리케이션 데몬들이 관리해야 하는 IPC 채널의 수를 줄이고, 그 IPC 채널을 관리하기 위한 트래픽을 줄이기 위한 IPC 채널 관리 방법을 제공하는데 그 목적이 있다.
SUMMARY OF THE INVENTION The present invention has been made to solve such a conventional problem, and an object of the present invention is to provide an IPC channel management method for reducing the number of IPC channels that application daemons must manage and for reducing traffic for managing the IPC channel. .

이러한 목적을 달성하는 본 발명은 커널(Kernel)에서 IPC 관리자(Manager)를 둠으로써 각각의 어플리케이션 데몬들이 직접 관리해야 하는 IPC 채널의 개수를 줄이고, LCRPC(Line Card Routing Processing Controller)간에 안정적인 IPC 채널 관리와 제어를 할 수 있고, IPC 채널을 관리하기 위한 부가적인 트래픽의 양을 줄일 수 있다.In order to achieve the above object, the present invention reduces the number of IPC channels that each application daemon must manage by providing an IPC manager in the kernel, and provides stable IPC channel management between LCRPCs (Line Card Routing Processing Controllers). And control, and can reduce the amount of additional traffic for managing the IPC channel.

또한, 어플리케이션 데몬의 증가와 LCRPC의 증가 혹은, 시스템 셀프(System Shelf)의 증가에도 변함없는 IPC 서비스를 위해 IPC 릴레이(Relay)기능을 지원함으로써 확장성(Scalability)를 높일 수 있다.In addition, scalability can be increased by supporting the IPC relay function for the IPC service which does not change with the increase of the application daemon, the LCRPC, or the increase of the system shelf.

이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하도록 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명에 따른 IPC 채널 관리 시스템의 개념 설명도이고, 도 4는 IPC 설정에 따른 IPC 채널의 개수를 보여주는 도면이다.3 is a conceptual explanatory diagram of an IPC channel management system according to the present invention, and FIG. 4 is a diagram showing the number of IPC channels according to IPC configuration.

도 3을 참조하면, 스위칭 보드에 탑재되는 SWRPC(10)와 각 가입자 보드에 탑재되는 LCRPC(20)(30)가 도시되어 있다. 도면에서 각 보드에는 어플리케이션 데몬들(12, 13, 22, 23, 32, 33)이 실행되고 있다.Referring to FIG. 3, an SWRPC 10 mounted on a switching board and an LCRPC 20, 30 mounted on each subscriber board are shown. In the figure, application daemons 12, 13, 22, 23, 32, and 33 are executed on each board.

SWRPC(10) 및 LCRPC(20, 30)는 커널(Kernel)에 IPC 채널을 관리하는 IPC 관리자(11, 21, 31)를 두고 LCRPC(20 또는 30)가 부팅을 수행할 때, 타 보드와 IPC 채널을 연결 설정한다. 이렇게 함으로써, 어플리케이션이 IPC 연결을 위해 필요로 하는 IPC 채널을 각 어플리케이션의 관리하에 일일이 풀 메쉬로 연결하지 않게 된다.SWRPC (10) and LCRPC (20, 30) has an IPC manager (11, 21, 31) to manage the IPC channel in the kernel (Kernel) when the LCRPC (20 or 30) performs booting, other boards and IPC Set up the channel. In this way, the IPC channel required for the IPC connection by the application does not connect to the full mesh under the management of each application.

LCRPC(20)의 IPC 관리자(21)를 예로 들어 설명하도록 한다. IPC 관리자(21)는 자신이 속한 LCRPC(20)에서 특정 커널의 ipc0 인터페이스 구성 정보를 읽어서 자신의 IP를 자동으로 인지하고, 백플레인에 연결된 하드웨어 특정 레지스터리 정보를 드라이버를 통해 읽어들여 SWRPC(10) 혹은 GRPC(30)의 실장 상태를 파악한다.The IPC manager 21 of the LCRPC 20 will be described as an example. The IPC manager 21 reads ipc0 interface configuration information of a specific kernel from the LCRPC 20 to which it belongs, and automatically recognizes its own IP, and reads hardware-specific registry information connected to the backplane through a driver to read the SWRPC 10 or the like. The mounting state of the GRPC 30 is determined.

LCRPC(20)의 IPC 관리자(21)는 SWRPC(10) 및 LCRPC(30)에게 헬로우(Hello)신호를 보낸다. SWRPC(10) 및 LCRPC(30)이 헬로우 신호를 수신하면, LCRPC(20)는 SWRPC(10) 및 LCRPC(30)과 TCP 또는 UDP 소켓을 열어 IPC 채널 연결 설정을 수행한다.The IPC manager 21 of the LCRPC 20 sends a hello signal to the SWRPC 10 and the LCRPC 30. When the SWRPC 10 and the LCRPC 30 receive the hello signal, the LCRPC 20 opens a TCP or UDP socket with the SWRPC 10 and the LCRPC 30 to perform IPC channel connection establishment.

이를 위한 특성 구성 설정은 커널(Kernel)의 특정 디렉토리에 구성 정보 파일로 저장해서 운용자가 필요시에 변경할 수 있도록 한다. 이 구성 정보 파일에는 IPC를 수행하기 위한 API(Application Program Interface), IPC 연결 타입(풀 메쉬 또는 릴레이 또는 두가지를 혼용, TCP 또는 UDP 등이 될 수 있다)이 포함된다.The property configuration setting for this is saved as a configuration information file in a specific directory of the kernel so that the operator can change it when necessary. This configuration information file includes an application program interface (API) for performing IPC, an IPC connection type (full mesh or relay or a mixture of both, TCP or UDP, etc.).

즉, 커널의 IPC 관리자(21)가 SWRPC(10) 및 LCRPC(30)의 실장 상태를 보고 SWRPC(10) 및 LCRPC(30)의 IPC 관리자(11, 31)와 바로 IPC 채널을 연결설정할 수 있으므로 상위 어플리케이션의 활성 여부에 상관없이 신속하게 IPC 채널을 설정할 수 있다.That is, since the IPC manager 21 of the kernel sees the mounting states of the SWRPC 10 and the LCRPC 30 and directly establishes an IPC channel with the IPC managers 11 and 31 of the SWRPC 10 and the LCRPC 30, You can quickly set up an IPC channel regardless of whether the host application is active.

SWRPC(10) 및 LCRPC(30)의 IPC 관리자(11, 31)와 커널에서 IPC 연결 설정을 수행한 IPC 관리자(21)는 자신의 보드에 존재하는 각 어플리케이션 데몬들이 서비스 등록시 사용할 있도록 서비스 등록 API를 제공한다. 어플리케이션 데몬들은 부팅하면서 자신이 속한 보드의 IPC 관리자(21)로부터 제공받은 서비스 등록 API를 사용하여 IPC 관리자(21)에게 자신의 서비스 ID 와 각종 파라미터들(예를 들면, 버퍼사이즈, IPC 연결 타입(릴레이, 풀메쉬, 혼용))을 전송하여 IPC 서비스를 등록하게 된다.The IPC managers 11 and 31 of the SWRPC 10 and the LCRPC 30 and the IPC manager 21 who have set up the IPC connection in the kernel use the service registration API so that each application daemon on the board can use the service registration. to provide. The application daemons use the service registration API provided from the IPC manager 21 of the board to which they belong to the IPC manager 21 to inform the IPC manager 21 of its service ID and various parameters (for example, buffer size, IPC connection type, etc.). Relay, full mesh, mixed)) to register the IPC service.

임의의 어플리케이션 데몬(22, 23)으로부터 IPC 서비스 등록을 받은 IPC 관리자(21)는 해당 서비스를 내부 DB에 등록하고, 어플리케이션 데몬(22, 23)이 콜백함수로 제공한 제어 메시지 수신 함수를 바인딩한다. 이후 해당 서비스로 수신된 제어 메시지로 인지되면, IPC 관리자(21)는 해당 서비스별 또는 아이디별로 바인딩된 콜백 함수를 호출함으로써 해당 상위 어플리케이션 데몬(22, 23)에 그 메시지를 전달하게된다.The IPC manager 21 having received the IPC service registration from the arbitrary application daemons 22 and 23 registers the service in the internal DB, and binds the control message receiving function provided by the application daemons 22 and 23 as the callback function. . Then, if it is recognized as a control message received by the corresponding service, the IPC manager 21 delivers the message to the corresponding higher application daemons 22 and 23 by calling a callback function bound for each service or for each ID.

또한 IPC 관리자(21)는 각 어플리케이션 데몬(22, 23)에게 IPC 메시지 송신을 위한 API를 제공함으로써 어플리케이션 데몬은 어느 LCRPC(20, 30)의 어느 어플리케이션 데몬(22, 23, 32, 33)에게도 메시지를 송신 할 수 있다. In addition, the IPC manager 21 provides APIs for transmitting IPC messages to the respective application daemons 22 and 23, so that the application daemons can send messages to any application daemons 22, 23, 32, and 33 of any LCRPCs 20 and 30. Can be sent.

IPC 관리자(21)가 제공할 수 있는 API의 초기정의는 아래와 같다.The initial definition of API that can be provided by the IPC manager 21 is as follows.

ipc_send (service id, service card, message , message size ); ipc_send (service id, service card, message, message size);

IPC 관리자(21)는 어플리케이션 데몬( 22, 23)이 이 함수를 호출하면 서비스 식별자(service id)와 메시지 크기(message size)를 IPC 메시지의 헤더에 넣고, 메시지를 부가하여 서비스 카드(service card)에 지정된 LCRPC(20, 30)의 IPC 관리자(21, 31)와 연결된 IPC 채널로 보낸다. When the application daemons 22 and 23 call this function, the IPC manager 21 inserts a service ID and a message size into the header of the IPC message, and adds a message to the service card. Send to the IPC channel connected to the IPC manager (21, 31) of the LCRPC (20, 30) specified in.

이를 수신한 상대편 LCRPC(20, 30)의 IPC 관리자(21, 31)는 서비스 식별자(Service id)를 인지하고, 크기(size)를 통해 메시지의 무결성 검사를 한 후, 해당 서비스 식별자(service id)가 등록할 때 바인딩했던 콜백 함수를 호출해서 메시지를 해당 상위의 어플리케이션 데몬(22, 23, 32, 33)에게 전달해준다.The IPC managers 21 and 31 of the counterpart LCRPCs 20 and 30 that have received this recognize the service identifier, check the integrity of the message through the size, and then check the corresponding service identifier. Calls the callback function that was bound when registering, and delivers the message to the upper application daemon (22, 23, 32, 33).

한편, 동일한 LCRPC/SWRPC(20, 30, 10)내에서 통신을 위한 IPC C 형태의 IPC연결 설정을 수행하는 경우에는 IPC 관리자(11, 21, 31))는 내부에 공유 메모리(Share Memeory)를 사용한다. 즉, 동일한 LCRPC/SWRPC(20, 30, 10)내에서 어플리케이션 데몬(12, 13, 22, 23, 32, 33)들끼리 통신을 수행하는 것이므로, 해당 서비스 식별자(service id)가 등록할 때 바인딩했던 콜백 함수를 호출해서 메시지를 해당 상위의 어플리케이션 데몬에게 전달해준다. 즉, TCP 나 UDP 소켓으로 메시지를 전송하는 것이 아니고, 메시지를 특정 영역에 저장한 후 바로 다른 서비스의 콜백 함수를 호출하면 되는 것이다.On the other hand, when performing IPC C-type IPC connection establishment for communication in the same LCRPC / SWRPC (20, 30, 10), IPC manager (11, 21, 31) has a shared memory (Share Memeory) use. That is, since the application daemons 12, 13, 22, 23, 32, and 33 communicate with each other in the same LCRPC / SWRPC 20, 30, and 10, binding is performed when the corresponding service identifier is registered. Call the callback function that you did and pass the message to the upper application daemon. In other words, rather than sending a message to a TCP or UDP socket, you simply call the other service's callback function after saving the message in a specific area.

IPCMgr Sublayer는 IPC 관리자(21)의 sub-layer로서 Layer1의 특성에 따라 상위단에 신뢰성있는 통신을 위한 서비스를 제공해 주게 된다. 만약 UDP를 사용한다면 신뢰성있는 UDP 통신을 위해서 재전송을 보장하는 기능을 제공하는 것이 한 예이다.The IPCMgr Sublayer is a sub-layer of the IPC manager 21 and provides services for reliable communication at the upper end according to the characteristics of Layer1. If UDP is used, an example is to provide a function to guarantee retransmission for reliable UDP communication.

이와 같이 각 보드의 커널에 있는 IPC 관리자들(11, 21, 31)에 의해 백플레인에 실장된 각 보드끼리는 이미 IPC 연결 설정이 이루어진 상태이므로, 상위 어플리케이션 데몬이 더 추가되는 경우에는 그 추가되는 각 어플리케이션 데몬이 자신이 속한 IPC 관리자(11, 21, 31)에게 IPC 서비스를 등록만 수행하면 된다. 그러면, 해당 IPC 관리자(11, 21, 31)는 자신에게 IPC 등록을 수행한 어플리케이션 데몬의 서비스 id를 등록받아 저장하고 있다가 임의의 메시지중에서 해당 서비스 id를 원하는 경우에는 그 서비스 id에 해당하는 콜백 함수를 호출하여 해당 어플리케이션 데몬에 그 메시지를 전달해준다.As such, each board mounted on the backplane by the IPC managers 11, 21, and 31 in the kernel of each board has already been configured for IPC connection. The daemon only needs to register IPC services with its IPC managers (11, 21, 31). Then, the IPC managers 11, 21, and 31 register and store the service ID of the application daemon that has performed IPC registration. If a desired service ID is desired in any message, the callback corresponding to the service ID is used. Call the function to pass the message to the application daemon.

따라서, 어플리케이션 데몬이 추가되는 경우라도, 어플리케이션 데몬의 관리하에 일일이 점대점으로 IPC 채널을 풀 메쉬로 맺을 필요가 없어지므로 도 4를 참조하면, 시스템 내 총 IPC 채널의 수가 아래와 같이 감소한다.Therefore, even when the application daemon is added, since it is not necessary to form an IPC channel full-mesh point-to-point under the management of the application daemon, referring to FIG. 4, the total number of IPC channels in the system is reduced as follows.

IPC 스타일 AIPC Style A

전체 시스템 IPC 채널: ( # of LCRPC -1) Full system IPC channel: (# of LCRPC -1)

IPC 스타일 BIPC Style B

전체 시스템 IPC 채널 : ( # of LCRPC x ( # of LCRPC -1)/2 ) Full system IPC channel: (# of LCRPC x (# of LCRPC -1) / 2)

IPC 스타일 C (하나의 LCRPC 내에서 )IPC Style C (within one LCRPC)

no socket connection       no socket connection

도 5 및 도 6은 릴레이 방식을 통하여 서로 다른 가입자 보드간에 IPC 채널을 설정하는 것을 설명하기 위한 개념도이다.FIG. 5 and FIG. 6 are conceptual views illustrating setting of IPC channels between different subscriber boards through a relay scheme.

도 5를 참조하면, 예를 들어 LCRPC(20, 30)의 슬레이브 어플리케이션 데몬(22, 23, 32, 33)끼리 직접 메시지를 주고 받을 일이 없고, SWRPC(10)의 마스터 어플리케이션 데몬(12, 13)과 각 LCRPC(20, 30)의 슬레이브 어플리케이션 데몬(22, 23, 32, 33)끼리만 연결하여 메시지를 주고받을 경우에는 LCRPC(20)는 릴레이 기능을 통해 SWRPC(10)를 거쳐 LCRPC(30)로 통신을 할 수 있다.Referring to FIG. 5, for example, the slave application daemons 22, 23, 32, and 33 of the LCRPCs 20 and 30 do not directly exchange messages, but the master application daemons 12 and 13 of the SWRPC 10. ) And the slave application daemons 22, 23, 32, and 33 of each LCRPC 20 and 30 connect and exchange messages with each other, the LCRPC 20 passes through the SWRPC 10 through the relay function to the LCRPC 30. You can communicate with

그리고, 임베디스 시스템 전체의 IPC 채널을 풀메쉬로 하지 않고 릴레이로 하는 경우에는 모든 IPC 채널을 SWRPC(10)로만 연결하고, LCRPC(20)(30)간 IPC 메시지는 릴레이 기능을 통해 SWRPC(10)의 IPC 관리자(11)에서 릴레이해준다.When the IPC channel of the entire embedded system is set to relay without full mesh, all IPC channels are connected to the SWRPC 10 only, and IPC messages between the LCRPC 20 and 30 are relayed to the SWRPC 10 through the relay function. ) Relays in the IPC manager (11).

이러한 릴레이 기능은 셀프의 확장시에 셀프를 서로 연결하는데 사용할 수 있다.This relay function can be used to connect the self to each other when the self is extended.

도 7은 릴레이 기능을 이용하여 셀프간에 IPC 통신을 수행하는 것을 설명하 기 위한 개념도이다.FIG. 7 is a conceptual diagram for explaining IPC communication between self using a relay function. FIG.

도 7을 참조하면, 셀프 A와 셀프B는 각각 셀프내의 SWRPC와 LCRPC들 사이에 각각의 IPC 관리자들을 통하여 IPC 채널을 설정하여 각 SWRPC와 LCRP에서 구동되고 있는 데몬간에 IPC 통신이 가능하다.Referring to FIG. 7, Self A and Self B establish IPC channels through respective IPC managers between SWRPC and LCRPCs in the self, thereby enabling IPC communication between daemons running in each SWRPC and LCRP.

아울러, 셀프A의 SWRPC와 셀프 B의 SWRPC는 각 IPC 관리자들 끼리 IPC 채널을 설정하여 IPC 통신이 가능하다.In addition, Self-A's SWRPC and Self-B's SWRPC enable IPC communication by setting IPC channels among IPC managers.

이 상태에서 셀프 A 및 셀프 B의 각 LCRPC(1-11)들은 자신의 셀프의 SWRPC과 IPC 채널이 설정되어 있으므로, 자신의 셀프내에 있는 SWRPC를 통하여 상대방 셀프내에 있는 SWRPC를 통하여 상대방 셀프에 있는 임의의 LCRPC와 릴레이 기능을 통하여 IPC 채널을 설정할 수 있게 된다.In this state, since each LCRPC (1-11) of Self A and Self B has their own SWRPC and IPC channels, the SWRPC in the Self Self and the SWRPC in the Other Self are randomly selected. IPC channel can be set through LCRPC and relay function.

이 기능은 셀프(Shelf)간에 SWRPC끼리는 IPC 채널을 맺고 각각의 서로 다른 셀프의 LCRPC의 어플리케이션 들끼리 통신할 때 유용하며, 시스템의 전체 IPC 확장성(Scalability)를 높일 수 있는 이점이 있다.This feature is useful when SWRPCs establish IPC channels between themselves, and communicate with each other's applications on LCRPCs of different self, and can increase the overall IPC scalability of the system.

본 발명에 의하면, 각각의 어플리케이션 데몬들이 직접 관리해야하는 IPC 채널의 개수를 줄이고, 커널층에 IPC 관리자를 둠으로써 LCRPC간에 안정적인 IPC 채널 관리와 제어를 할 수 있고, IPC 채널을 관리하기 위한 부가적인 트래픽의 양을 현저하게 줄일 수 있다.According to the present invention, by reducing the number of IPC channels that each application daemon must manage directly, by having an IPC manager in the kernel layer, stable IPC channel management and control between LCRPC, and additional traffic for managing the IPC channel The amount of can be significantly reduced.

또한, 어플리케이션 데몬의 증가와 LCRPC 의 증가 혹은, 시스템 셀프의 증가 에도 변함 없는 IPC 서비스를 위해 IPC 릴레이 기능을 지원함으로써 시스템의 확장성을 높일 수 있다.In addition, the scalability of the system can be increased by supporting the IPC relay function for the IPC service which does not change with the increase of the application daemon, the LCRPC, or the increase of the system itself.

Claims (9)

다수개의 보드를 포함하는 임베디드(Embedded) 시스템에 있어서,In an embedded system including a plurality of boards, 상기 각 보드의 부팅시 보드별로 커널층의 IPC(Inter Processor Communication) 관리자를 구동하여, 각 보드간에 TCP(Transmission Control Protocol) 또는 UDP(user datagram protocol) 소켓을 이용하여 상기 커널층에서 IPC 채널을 설정하는 단계와,When booting each board, the IPC channel is configured in the kernel layer by using an IPC manager of a kernel layer for each board, using a Transmission Control Protocol (TCP) or UDP (user datagram protocol) socket between the boards. To do that, 상기 IPC 관리자가 자신의 보드에서 구동되는 상위 어플리케이션 데몬들의 서비스 등록을 위한 API(Application Program Interface)를 제공하는 단계와,Providing, by the IPC manager, an API (Application Program Interface) for registering services of upper application daemons running on the board; 상위 어플리케이션 데몬(daemon)의 부팅시 상기 IPC 관리자가 상기 API를 통해 해당 어플리케이션 데몬으로부터 서비스를 등록받아 해당 어플리케이션 데몬의 서비스 정보를 저장하고, 상기 서비스 정보에 따라 상기 어플리케이션 데몬이 콜백(call back)함수로 제공한 제어 메시지 수신 함수를 바인딩(binding)하는 단계와,Upon booting a higher application daemon, the IPC manager registers a service from the application daemon through the API, stores service information of the application daemon, and the application daemon calls back a function according to the service information. Binding a control message receiving function provided by 상기 각 IPC 관리자가 메시지가 수신되면, 해당 서비스 아이디별로 바인딩된 상기 콜백 함수를 호출하여 상위 어플리케이션 데몬에 메시지를 전달하여, 어플리케이션 데몬간 IPC 통신을 수행하는 단계를 포함하는 임베디드 시스템의 IPC 채널 관리 방법.When each IPC manager receives a message, calling the callback function bound by the corresponding service ID to deliver a message to a higher application daemon, IPC channel management method of the embedded system comprising the step of performing IPC communication between application daemons . 제 1항에 있어서, 상기 IPC 채널을 설정하는 단계는,The method of claim 1, wherein the setting of the IPC channel comprises: IPC 관리자가 구성 정보를 읽어들여 자신의 보드 IP를 인지하는 단계와,The IPC administrator reads the configuration information and recognizes the board IP. 백플레인에 연결된 하드웨어 특정 레지스터리 정보를 읽어서 다른 보드의 실장 상태를 파악하는 단계와,Reading hardware-specific registry information attached to the backplane to determine the mounting status of other boards; 상기 다른 보드의 실장 상태에 따라 실장된 보드로 헬로우 패킷을 전송하는 단계와,Transmitting a hello packet to a board mounted according to a mounting state of the other board; 헬로우 패킷을 수신한 해당 보드와 커널층에서 IPC 채널을 설정하는 단계를 수행하는 임베디드 시스템의 IPC 채널 관리 방법.An IPC channel management method of an embedded system that performs the steps of configuring an IPC channel at a corresponding board and kernel layer receiving a hello packet. 제 1항에 있어서, 상기 어플리케이션 데몬간 IPC 통신을 수행하는 단계는,The method of claim 1, wherein performing the IPC communication between the application daemons comprises: 각 보드별로 상기 IPC 관리자가 상위 어플리케이션 데몬의 메시지 송신을 위한 API를 제공하는 단계와,Providing, by each board, an API for transmitting a message from a higher application daemon by the IPC manager; 상위 어플리케이션 데몬이 상기 API를 이용하여 임의의 보드에 속한 어플리케이션 데몬에게 전송할 메시지를 상기 IPC 관리자에게 전송하는 단계와,A higher application daemon using the API to transmit a message to the IPC manager to be sent to an application daemon belonging to any board; 상기 IPC 관리자가 상기 API를 해석하여 해당 보드의 어플리케이션 데몬에게 전송하는 단계를 수행하는 임베디드 시스템의 IPC 채널 관리 방법.The IPC manager interprets the API and transmits the API to an application daemon of a corresponding board. 제 3항에 있어서, 상기 어플리케이션 데몬의 메시지 송신을 위한 API는,The method of claim 3, wherein the API for sending a message of the application daemon, 어플리케이션 데몬의 서비스 식별자, 어플리케이션 데몬이 구동되고 있는 보드, 메시지, 메시지 크기에 대한 정보를 포함하는 임베디드 시스템의 IPC 채널 관리 방법.A method of managing an IPC channel of an embedded system that includes information about a service identifier of an application daemon, a board on which the application daemon is running, a message, and a message size. 제 3항에 있어서, 상기 해당 보드의 어플리케이션 데몬에게 전송하는 단계는,The method of claim 3, wherein the transmitting to the application daemon of the corresponding board comprises: 상기 메시지를 전송할 상기 어플리케이션 데몬이 서로 다른 보드에 있으면, 상기 다른 보드와 TCP 또는 UDP 소켓을 이용하여 설정된 IPC 채널을 통해 해당 보드의 IPC 관리자로 상기 메시지를 전송하고, 상기 다른 보드의 IPC 관리자가 해당 어플리케이션 데몬으로 상기 메시지를 전송하도록 하는 임베디드 시스템의 IPC 채널 관리 방법.If the application daemon to transmit the message is on different boards, the message is transmitted to the IPC manager of the board through the IPC channel established using the other board and the TCP or UDP socket, and the IPC manager of the other board IPC channel management method of the embedded system to send the message to the application daemon. 제 3항에 있어서, 상기 해당 보드의 어플리케이션 데몬에게 전송하는 단계는,The method of claim 3, wherein the transmitting to the application daemon of the corresponding board comprises: 상기 메시지를 전송할 상기 어플리케이션 데몬이 동일한 보드에 위치하는 경우, 상기 메시지를 공유 메모리의 특정 영역에 저장하고, 상기 어플리케이션 데몬의 콜백 함수를 호출하여 해당 어플리케이션 데몬에게 해당 메시지를 전송하는 임베디드 시스템의 IPC 채널 관리 방법.If the application daemon to transmit the message is located on the same board, the IPC channel of the embedded system to store the message in a specific area of the shared memory, and to call the application daemon callback function to send the message to the application daemon How to manage. 스위칭 제어보드와 다수개의 가입자 보드를 포함하는 임베디드 시스템에 있어서,In an embedded system including a switching control board and a plurality of subscriber boards, 상기 스위칭 제어보드는 보드의 부팅시 IPC 채널 설정을 위한 IPC 관리자를 구동하여 커널층에서 TCP 또는 UDP 소켓을 이용하여 상기 각 가입자 보드의 커널층에서 IPC 채널을 설정하고, 임의의 가입자 보드로부터 메시지 전송 요청이 있으면, 상기 메지시를 상대방 가입자 보드로 릴레이하고, The switching control board drives an IPC manager for IPC channel configuration at boot time of the board to set an IPC channel at the kernel layer of each subscriber board using TCP or UDP sockets at the kernel layer, and transmits a message from an arbitrary subscriber board. Upon request, relay the message to the other subscriber's board, 상기 각 가입자 보드는, 보드의 부팅시 보드별로 IPC 채널 설정을 위한 IPC 관리자를 구동하여 커널층에서 상기 스위칭 제어 보드와 IPC 채널을 설정하고, 메시지를 커널층에서 설정된 IPC 채널을 통해 상기 스위칭 제어 보드로 전송하여, 상기 스위칭 제어 보드의 릴레이에 기능에 의해 상대방 가입자 보드와 IPC 통신을 수행하는 IPC 채널 관리 시스템.Each of the subscriber boards drives an IPC manager for setting an IPC channel for each board upon booting of the board, sets up the switching control board and the IPC channel at the kernel layer, and sends a message to the switching control board through the IPC channel set at the kernel layer. IPC channel management system for transmitting to the IPC communication with the other subscriber board by the function of the relay of the switching control board. 스위칭 제어보드와 다수개의 가입자 보드를 포함하는 다수개의 셀프로 이루어는 임베디드 시스템에 있어서,In a self-contained embedded system comprising a switching control board and a plurality of subscriber boards, 상기 스위칭 제어보드는, 보드의 부팅시 IPC 관리자를 구동하여 커널층에서 TCP 또는 UDP 소켓을 이용하여, 상대방 셀프의 스위칭 제어 보드와 IPC 채널을 설정하고, 임의의 가입자 보드로부터 상대방 셀프의 보드로의 메시지 전송 요청이 있으면, 상기 커널층으로 상기 메시지를 상기 상대방 셀프의 스위칭 제어보드로 릴레이하고, The switching control board, when booting the board, drives the IPC manager to establish the IPC channel and the switching control board of the counterpart self using TCP or UDP sockets at the kernel layer, and from any subscriber board to the board of the counterpart self. When a message transmission request is made, relaying the message to the kernel layer to the switching control board of the counterpart self, 상기 각 가입자 보드는, 보드의 부팅시 보드별로 IPC 관리자를 구동하여 커널층에서 TCP 또는 UDP 소켓을 이용하여 상기 스위칭 제어 보드와 IPC 채널을 설정하고, 상대방 셀프의의 가입자 보드에게 전송하고자 하는 메시지가 있으면, 동일 셀프내의 스위칭 제어 보드사이에 설정된 상기 IPC 채널을 통하여 상기 상기 메시지를 전송하여 동일 셀프내 스위칭 제어보드와 상대방 스위칭 제어보드사이의 릴레이에 기능에 의해 상대방 가입자 보드와 IPC 통신을 수행하는 IPC 채널 관리 시스템.Each of the subscriber boards drives an IPC manager for each board when the board is booted, establishes an IPC channel with the switching control board using TCP or UDP sockets at the kernel layer, and sends a message to the subscriber board of the other party. If present, the IPC transmits the message through the IPC channel set between switching control boards in the same shelf and performs IPC communication with the counterpart subscriber board by a function of a relay between the switching switchboard and the counterpart switching control board in the same shelf. Channel management system. 삭제delete
KR1020040001710A 2004-01-09 2004-01-09 method and system for managing Inter Processor Communication channel in Embedded system KR100624679B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040001710A KR100624679B1 (en) 2004-01-09 2004-01-09 method and system for managing Inter Processor Communication channel in Embedded system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040001710A KR100624679B1 (en) 2004-01-09 2004-01-09 method and system for managing Inter Processor Communication channel in Embedded system

Publications (2)

Publication Number Publication Date
KR20050073344A KR20050073344A (en) 2005-07-13
KR100624679B1 true KR100624679B1 (en) 2006-09-18

Family

ID=37262465

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040001710A KR100624679B1 (en) 2004-01-09 2004-01-09 method and system for managing Inter Processor Communication channel in Embedded system

Country Status (1)

Country Link
KR (1) KR100624679B1 (en)

Also Published As

Publication number Publication date
KR20050073344A (en) 2005-07-13

Similar Documents

Publication Publication Date Title
JP5792894B2 (en) Port expansion topology information acquisition method, system, control bridge, and uplink port processing method and system
WO2020024413A1 (en) Method for controlling deployment of cloud computing platform, server, and storage medium
JP5366177B2 (en) Slot interface access device, method and program thereof, and redundant configuration and alternative method of main device
JPH07107114A (en) Remote office network system and its communication method
US10462048B2 (en) Virtual cluster establishment method and network device
US8244949B2 (en) Slot interface access unit, method thereof, and program thereof, as well as redundancy configuration of main unit, and replacing method of the same
CN109194589B (en) MDC (media data center) implementation method and device
CN113824723A (en) End-to-end system solution applied to audio and video data transmission
WO2003017101A2 (en) System and method for distributed device control
CN105827496A (en) Method and apparatus for managing PE device
KR20060098780A (en) A system to support the heterogeneity in ubiquitous computing environment
CN113519149B (en) Voice communication system and redundancy method for call control server
CN112667293B (en) Method, device and storage medium for deploying operating system
US7602794B2 (en) Implementation of control plane protocols and networking stacks in a distributed network device
KR100624679B1 (en) method and system for managing Inter Processor Communication channel in Embedded system
CN104423944A (en) Software application system
CN114189485A (en) Network port management method and system of switch and computer readable storage medium
CN1332539C (en) Method for implementing automatic establishment of VPN address pool
JP4303791B2 (en) Telecommunications switching system with easily configurable supervisory control
US7167473B1 (en) Method for device addressing using SNMP community string-based routing
WO2012071860A1 (en) Synchronization communication method between single-boards of a multiple dwelling unit and multiple dwelling unit thereof
CA2630125C (en) Slot interface access device and slot interface access method
KR100715144B1 (en) Method comprising a mobile network system consisted of only pda
KR100442688B1 (en) Interprocess communication method and apparatus
CN112671552A (en) Automatic discovery method, system and equipment for intelligent network card of virtualization platform

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee