KR0146025B1 - Board driving apparatus of fiber distributed data interface using stream mechanism on the unix system - Google Patents

Board driving apparatus of fiber distributed data interface using stream mechanism on the unix system

Info

Publication number
KR0146025B1
KR0146025B1 KR1019940033885A KR19940033885A KR0146025B1 KR 0146025 B1 KR0146025 B1 KR 0146025B1 KR 1019940033885 A KR1019940033885 A KR 1019940033885A KR 19940033885 A KR19940033885 A KR 19940033885A KR 0146025 B1 KR0146025 B1 KR 0146025B1
Authority
KR
South Korea
Prior art keywords
fddi
board
data
driver
stream
Prior art date
Application number
KR1019940033885A
Other languages
Korean (ko)
Other versions
KR960025000A (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 KR1019940033885A priority Critical patent/KR0146025B1/en
Publication of KR960025000A publication Critical patent/KR960025000A/en
Application granted granted Critical
Publication of KR0146025B1 publication Critical patent/KR0146025B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4213Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with asynchronous protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/4616LAN interconnection over a LAN backbone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0044Versatile modular eurobus [VME]

Abstract

본 발명은 섬유분포 데이터 인터페이스(Fiber Distributed Data interface:이하는 FDDI라 칭함)보드 구동장치에 관한 것으로서, 특히, 시스템간 데이터 전송을 용이하게 하기 위해 표준 스트림 매커니즘을 이용한 유닉스(UNIX) 시스템 커널에서의 스트림 방식을 이용한 FDDI 보드 구동장치에 관한 것으로서, 본 발명의 FDDI보드 구동장치는 유닉스 시스템 커널(SVR4.0)에 구현되어, 시스템 내의 응용 프로그램과 FDDI 보드 사이에서 캐릭터 단위로 데이터를 전송하는 램 디바이스 드라이버와, 유닉스 커널내의 TCP/IP 모듈과 스트림 메시지 데이터 형태로 상호 작용을 하면서 시스템간의 데이터 송수신 기능을 수행하는 네트워크 인터페이스 드라이버로 구성된다.BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a fiber distributed data interface (hereinafter referred to as FDDI) board drive, and more particularly, to a UNIX system kernel using a standard stream mechanism to facilitate data transfer between systems. The FDDI board driving apparatus using the stream method, the FDDI board driving apparatus of the present invention is implemented in the Unix system kernel (SVR4.0), a RAM device for transmitting data in character units between the application program and the FDDI board in the system It consists of a driver and a network interface driver that performs data transmission and reception between systems while interacting with TCP / IP modules in the Unix kernel in the form of stream message data.

Description

유닉스(UNIX) 시스템 커널에서 스트림 방식을 이용한 섬유 분포 데이터 인터페이스(FDDI) 보드 구동장치Fiber Distribution Data Interface (FDDI) Board Driver Using Stream Method in UNIX System Kernel

제1도는 본 발명에 의한 FDDI 보드 구동기와 인접 모듈들간의 관계를 보인 구성도.1 is a block diagram showing the relationship between the FDDI board driver and the adjacent modules according to the present invention.

제2도는 본 발명에 의한 램 드라이버 모듈을 구성하는 함수들을 나타낸 구성도.2 is a block diagram showing functions constituting a RAM driver module according to the present invention.

제3도는 본 발명에 의한 FDDI 보드 구동기의 초기화 과정을 보인 동작 순서도.3 is a flowchart illustrating an initialization process of the FDDI board driver according to the present invention.

제4도는 본 발명에 의한 램 드라이버 모듈을 이용하여 다운로딩을 수행하는 과정을 보인 동작 순서도.4 is a flowchart illustrating a process of performing downloading using a RAM driver module according to the present invention.

제5도는 본 발명의 일 실시예에 따른 네트워크 인터페이스 드라이버에 대한 내부 블록도.5 is an internal block diagram of a network interface driver according to an embodiment of the present invention.

제6도는 본 발명에 의한 쓰기 풋 프로시져의 동작 순서도.6 is an operational flowchart of a write foot procedure according to the present invention.

제7도는 미국 표준기구(ANSI)의 X3T 9.5 표준에 따라 구현한 FDDI 프레임 포맷 구성도.7 is an FDDI frame format diagram implemented according to the American National Standards Institute (ANSI) X3T 9.5 standard.

제8도는 링 구동 순서를 나타낸 설명도.8 is an explanatory diagram showing a ring driving sequence;

제9도는 본 발명에 의한 네트워크 인터페이스 드라이버의 가상 주소와 FDDI 보드의 주소간의 주소 매핑을 기술한 블록도.9 is a block diagram illustrating address mapping between a virtual address of a network interface driver and an address of an FDDI board according to the present invention.

제10도는 본 발명에 의한 FDDI보드 구동기가 통신망에서 수신된 데이터를 호스트의 드라이버에 전달하는 과정을 보인 동작 순서도.FIG. 10 is a flowchart illustrating a process in which the FDDI board driver according to the present invention transfers data received from a communication network to a driver of a host.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

10:램 디바이스 드라이버 11:호스트 SMT 드라이버10: RAM device driver 11: Host SMT driver

20:네트워크 인터페이스 드라이버20: network interface driver

30:스트림 디바이스 드라이버(TCP/IP 프로토콜)30: Stream device driver (TCP / IP protocol)

40:FDDI보드 50:다운로딩 프로그램40: FDDI board 50: Downloading program

60:SMT 제어 프로그램60: SMT control program

본 발명은 섬유분포 데이터 인터페이스(Fiber Distributed Data Interface:이하는 FDDI라 칭함)보드 구동장치에 관한 것으로서, 특히, 시스템간 데이터 전송을 용이하게 하기 위해 표준 스트림매커니즘을 이용한 유닉스(UNIX) 시스템 커널에서의 스트림 방식을 이용한 FDDI보드 구동장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a fiber distributed data interface (hereinafter referred to as FDDI) board drive, and more particularly, to a UNIX system kernel using a standard stream mechanism to facilitate data transfer between systems. The present invention relates to an FDDI board driving apparatus using a stream method.

일반적으로 FDDI 구동장치는 FDDI 통신망을 이용하는 통신 프로토콜과 FDDI 보드 사이에 위치하면서 FDDI 보드의 구동을 제어하며 또한, 호스트로 부터의 데이터를 FDDI 보드로 전송하거나 FDDI 보드로부터의 수신 데이터를 호스트내의 통신 프로토콜에 전달하는 기능을 담당하는 것으로서, FDDI 보드의 원활한 데이터 송수신 및 제어기능을 제공하기 위해 사용되는 것이다.In general, the FDDI driver is located between the FDDI board and the communication protocol using the FDDI communication network to control the operation of the FDDI board, and also transmits data from the host to the FDDI board or receives data from the FDDI board in the host communication protocol. It is responsible for the function of transmitting to the data, and is used to provide smooth data transmission and control of the FDDI board.

특히, 미국 표준기구 즉, ANSI(American National Standard Institute)의ASC X3T9.5 권고에 따르는 FDDI보드의 표준은 광섬유를 통신 매체로 사용하여 고속으로 데이터를 전송하는 통신망 프로토콜로서, 최대 100MBit/sec의 전송 속도를 가지며, 노드간의 최대 통신 거리가 2Km가 되고, FDDI 통신망에 물리적으로 접속이 최대 100Km인 특징을 갖는 프로토콜이다.In particular, the standard of the FDDI board according to the American National Standards Institute (ASC X3T9.5) recommendation of ANSI (American National Standard Institute) is a communication network protocol that transmits data at high speed using optical fiber as a communication medium, and transmits up to 100MBit / sec. It is a protocol that has a speed, the maximum communication distance between nodes is 2Km, and the physical connection to the FDDI communication network is 100Km at maximum.

이러한 기존의 FDDI용 디바이스 드라이버들은 BSD 버전 또는 SunOS 버전등에서 구동되도록 캐릭터(Character) 디바이스 드라이버 유형으로 구현되었다.These existing device drivers for FDDI have been implemented as character device driver types to run on BSD versions or SunOS versions.

반면, 유닉스 시스템의 새로운 버전인 V 버전(SVR4.0)은 네트워크 프로토콜과 디바이스 드라이버들의 구현 방식이 상기 종래의 BSD 버전 또는 SunOS 버전과는 다른 스트림 메카니즘을 제공하며, 해당 시스템의 네트워크 프로토콜들을 스트림 모듈로 구현하였다.On the other hand, V version (SVR4.0), a new version of Unix system, provides a stream mechanism in which network protocols and device drivers are implemented differently from the conventional BSD version or SunOS version. Implemented as

따라서, 상기 유닉스 시스템의 시스템 V 버전(SVR4.0)에서는 시스템간 정보 전송시 기존의 FDDI용 디바이스 드라이버를 사용할수 없으므로, 상기 유닉스 시스템의 시스템 V 버전의 스트림 매커니즘을 이용하여 구현된 통신 프로토콜(TCP/IP)간의 연동을 위해 스트림 매커니즘을 적용한 디바이스 드라이버가 필요하다.Therefore, in the system V version (SVR4.0) of the Unix system, since the existing FDDI device driver cannot be used to transmit information between systems, a communication protocol implemented using the stream mechanism of the system V version of the Unix system (TCP). For the interworking between / IP), a device driver with a stream mechanism is required.

본 발명에서는 이러한 필요성에 의해, 유닉스 커널에서 제공되는 스트림 기법을 이용하여 상위 프로토콜인 TCP/IP와 상호 접속될 수 있도록한 유닉스(UNIX) 시스템 커널에서의 스트림 방식을 이용한 FDDI보드 구동장치를 제공하고자 한다.The present invention is to provide an FDDI board driving apparatus using the stream method in the Unix (UNIX) system kernel that can be interconnected with the upper protocol TCP / IP using the stream scheme provided by the Unix kernel by this necessity do.

상기와 같은 목적을 달성하기 위한 본 발명의 FDDI 보드 구동 장치는 유닉스 시스템 커널(SVR 4.0) 에 구현되어, 시스템 내의 응용프로그램과 FDDI 보드 사이에서 캐릭터 단위로 데이터를 전송하는 램 디바이스 드라이버와, 유닉스 커널내에의 TCP/IP 모듈과 스트림 메시지 데이터 형태로 상호 작용을 하면서 시스템간의 데이터 송수신 기능을 수행하는 네트워크 인터페이스 드라이버로 구성된다.The FDDI board driving apparatus of the present invention for achieving the above object is implemented in the Unix system kernel (SVR 4.0), a RAM device driver for transmitting data in character units between the application program and the FDDI board in the system, the Unix kernel It consists of a network interface driver that performs data transmission and reception between systems while interacting with TCP / IP modules in the form of stream message data.

이하, 본 발명에 의한 유닉스(UNIX) 시스템 커널에서의 스트림 방식을 이용한 섬유분포 데이터 인터페이스(FDDI) 보드 구동장치의 바람직한 하나의 실시예에 대하여 첨부 도면들을 첨부도면을 참고하여 상세히 설명한다.Hereinafter, a preferred embodiment of a fiber distribution data interface (FDDI) board driving apparatus using a stream method in a UNIX system kernel according to the present invention will be described in detail with reference to the accompanying drawings.

제1도는 본 발명에 의한 FDDI보드 구동장치와 인접 모듈들간의 관계를 보인 구성도로서 도면에 도시된 바와 같이 커널 영역에 존재하는 FDDI보드 구동장치와 사용자 영역에 존재하는 그와 연관된 프로토콜이나 응용 프로그램간의 관계를 기술한 참고도면이다.1 is a block diagram showing the relationship between the FDDI board drive device and the adjacent modules according to the present invention, as shown in the figure, the FDDI board drive device existing in the kernel area and the protocol or application program associated therewith in the user area. A reference drawing describing the relationship between them.

제1도를 참조하면, 커널 영역에 존재하는 본 발명의 FDDI 보드 구동장치, 즉 디바이스 드라이버는 램 디바이스 드라이버(즉,캐릭터 디바이스 드라이버)(10)와, 네트워크 인터페이스 드라이버(즉, 스트림 디바이스 드라이버)(20)가 있다.Referring to FIG. 1, the FDDI board driver, that is, a device driver, of the present invention in the kernel region includes a RAM device driver (i.e., a character device driver) 10 and a network interface driver (i.e., a stream device driver) ( 20)

이 때, 상기 램 디바이스 드라이버(10)는 사용자 영역의 응용 프로그램(다운 로딩 프로그램(50)이나 상태 정보 접근(이하는 SMT라함) 제어 프로그램(60)등)이 직접 디바이스의 이름을 불러서 FDDI보드(40)에 데이터를 다운로딩하거나 상기 FDDI보드(40)의 정보를 읽을 수 있도록 하고, FDDI보드(40)의 SMT 프로토콜을 제어하거나 SMT 관련 정보를 보드로부터 읽을 수 있도록 하는 장치로서, 상기 사용자 영역의 임의의 응용 프로그램(다운 로딩 프로그램(50)이나 SMT 제어 프로그램(60))이 보내거나 받고자 하는 데이터의 목적지가 상태 시스템이 아니고 다만 커널 영역의 FDDI보드의 메모리인 경우 사용되는데, 이러한 경우, 디바이스 드라이버가 커널의 통산 프로토콜을 이용할 필요가 없으며 단지 데이터를 FDDI보드의 지정된 영역에 전달하는 기능만을 수행하면 되기 때문이다.At this time, the RAM device driver 10 is an application program (such as a download program 50 or a state information access (hereinafter referred to as SMT) control program 60, etc.) of the user area directly call the name of the device FDDI board ( 40) to download data or to read the information of the FDDI board 40, to control the SMT protocol of the FDDI board 40 or to read the SMT-related information from the board, the device of the It is used when the destination of data that any application program (downloading program 50 or SMT control program 60) wants to send or receive is not the state machine but the memory of FDDI board of kernel area. In this case, device driver Does not need to use the kernel's communication protocol, only the function of passing data to the designated area of the FDDI board. to be.

한편, 상기 네트워크 인터페이스 드라이버(20)는 유닉스 커널내의 상위 모듈인 TCP/IP 프로토콜 모듈(30)과 상호 연동할수 있도록 하기 위해, 네트워크 인터페이스 드라이버(20)에서 다루는 데이터들을 유닉스 시스템의 커널(SVR4.0)에서 제공하는 스트림 메카니즘에 의해 스트림 메시지로 구성하며, TCP/IP 스트림 모듈(30)을 수행한 TCP/IP 통신 프로토콜의 다수의 응용 프로그램(FTP, TELNET, SMTP, SNMP, NFS) 데이터 들을 네트워크 인터페이스 드라이버(20)의 쓰기 큐에 대기 상태로 할당한다.Meanwhile, the network interface driver 20 stores data handled by the network interface driver 20 in order to interoperate with the TCP / IP protocol module 30 which is a higher module in the Unix kernel. It is composed of stream messages by the stream mechanism provided by the network), and the data of a plurality of application (FTP, TELNET, SMTP, SNMP, NFS) data of the TCP / IP communication protocol that performs the TCP / IP stream module 30 It allocates to the write queue of the driver 20 in a waiting state.

제2도는 본 발명에 의한 램 디바이스 드라이버의 관련 함수들을 나타낸 참고도로서, 제2도를 참조하면, 상기 램 디바이스 드라이버의 관련 함수들은 초기화 함수(CLEAR), 개방함수(OPEN), 패쇄함수(CLOSE), 판독함수(READ), 기록함수(WRITE), 입/출력 제어함수(IOCTL) 및 인터럽트 처리 함수(ITRT)등으로 구성되며, 이는 일반 캐릭터 디바이스 드라이버와 유사하다.FIG. 2 is a reference diagram showing related functions of a RAM device driver according to the present invention. Referring to FIG. 2, related functions of the RAM device driver may include an initialization function (CLEAR), an open function (OPEN), and a closure function (CLOSE). ), Read function (READ), write function (WRITE), input / output control function (IOCTL), and interrupt processing function (ITRT). It is similar to general character device driver.

상기 램 디바이스 드라이버(10)의 판독함수( READ)와, 기록함수(WRITE)는 사용자(user)와 커널간의 데이터 전달시 사용하기 위해 유닉스 시스템의 커널 영역에서 제공하는 uio자료 구조체와 uiomove 함수를 이용하여 사용자 영역과 커널 영역간의 데이터를 전달하며, 상기 입/출력 제어함수(IOCTL)는 FDDI보드를 이용하는 사용자나 응용 프로그램이 보드의 상태 정보를 요청하거나 임의의 변수값을 지정하기 위해 사용되는데, 여기서 상기 입/출력제어 함수가 제공하는 기능은 보드를 동작시키는데 관련된 부분과 FDDI보드의 호스트 SMT 드라이버(11)애 변수값을 지정하거나 검색하는 기능으로 분리할수 있다.The read function READ and write function WRITE of the RAM device driver 10 use a uio data structure and a uiomove function provided by a kernel region of a Unix system for use in data transfer between a user and a kernel. The I / O control function (IOCTL) is used for requesting status information of a board or specifying an arbitrary variable value by a user or an application program using an FDDI board. The function provided by the input / output control function may be divided into a function of specifying or retrieving a part related to operating the board and a value of the host SMT driver 11 of the FDDI board.

제3도는 본 발명에 의한 FDDI보드 구동장치에 대해 유닉스 시스템에서 수행하는 초기화 과정을 보인 동작 순서도로서, 제3도를 참조하면, FDDI 보드 구동장치를 초기화하는 초기화 함수의 동작은, 먼저 시스템이 이미 초기화되었는가를 체크(S31)하여 초기화 되지 않았으면(S31의 아니오분기), 시스템에 부착한 FDDI보드의 개수를 확인(S32)한 후, 상기 확인된 개수 만큼의 제어 구조체를 할당(S33)하여 보드당 각각의 VME영역을 할당(S34)한다. 그리고, 상기 할당된 VME 영역이 가용한가를 체크(S35)하여, 가용한 경우(S35 의 예분기)에는 보드당 해당 VME 영역의 초기 번지를 해당 제어 구조체에 지정(S37)하고, 각각의 제어 구조체에 인터럽트 벡터, 보드 순번, 디버그 플래그, 각 보드의 상태 정보, 보드의 유형, 각 보드의 인터럽트 및 리셋 윈도우 크기, 데이터 전송 버퍼, 데이터 수신 버퍼, 데이터 프레임 크기, 프레임 헤더 크기 및 DMA 상태 정보 등의 제어 정보를 지정(S38) 한다.FIG. 3 is a flowchart illustrating an initialization process performed by a Unix system with respect to the FDDI board driver according to the present invention. Referring to FIG. 3, the operation of the initialization function for initializing the FDDI board driver is first performed by the system. If it is not initialized by checking whether it is initialized (S31), the number of FDDI boards attached to the system is checked (S32), and then the control structures are allocated as many as the checked number (S33). Each VME area is allocated (S34). Then, it is checked whether the allocated VME area is available (S35), and if it is available (preliminary branch of S35), the initial address of the corresponding VME area per board is assigned to the corresponding control structure (S37), and each control structure is assigned. Control of interrupt vector, board sequence number, debug flag, status information of each board, board type, interrupt and reset window size of each board, data transfer buffer, data receive buffer, data frame size, frame header size and DMA status information The information is specified (S38).

제4도는 본 발명에 의한 램 드라이버 모듈을 이용하여 사용자 영역의 데이터를 FDDI보드의 메모리에 다운로딩하는 과정을 보인 동작 순서도로서, 제4도를 참조하면, 다운로딩하는 과정은, 먼저, 램 디바이스 드라이버를 오픈(S41)하고 FDDI보드를 리셋(S42) 한다. 그리고, 송수신시에 관련된 플래그를 세팅(S43)하여 다운 로딩될 파일을 오픈(S44)한 후, 다운로딩 파일의 하나의 레코드를 버퍼에 저장하고 레코드의 데이터 오류를 검색하며, 레코드의 구문상 오류를 검색(S45)하여 VME영역을 통해서 FDDI보드에 다운로딩을 수행(S46) 한 후 종료(S47)한다.FIG. 4 is a flowchart illustrating a process of downloading data of a user area to a memory of an FDDI board by using a RAM driver module according to the present invention. Referring to FIG. 4, the downloading process is first performed by using a RAM device. Open the driver (S41) and reset the FDDI board (S42). After setting the relevant flag at the time of transmission and reception (S43) and opening the file to be downloaded (S44), one record of the downloading file is stored in a buffer and a data error of the record is retrieved, and a syntax error of the record is obtained. Search (S45) to download to the FDDI board through the VME area (S46) and then finish (S47).

상기와 같은 램 디바이스 드라이버(10)를 이용하는 전형적인 응용 프로그램으로는 사용자 영역의 데이터를 FDDI보드의 메모리에 다운 로딩하는 다운로딩 프로그램(50)과 FDDI보드에 대한 상태를 검색하거나 지정하는 상태 정보 접근(SMT) 프로그램(60)이 있다.Typical application programs using the RAM device driver 10 as described above include a downloading program 50 for downloading data of a user area into a memory of an FDDI board and accessing status information for searching or specifying a state of the FDDI board. SMT) program 60.

제5도는 본 발명의 일 실시예에 따른 네트워크 인터페이스 드라이버에 대한 내부 블록도로서, 제5도를 참조하면, 본 발명에서 제공하는 네트워크 인터페이스 드라이버는 상위 모듈인 TCP/IP 모듈로부터 메시지를 수신하여 그 메시지의 종류를 판별하는 쓰기 풋프로시져(51)와, 상기 쓰기 풋 프로시져(51)에서 메시지를 수신한 경우 그 메시지를 수신한 경우 그 메시지에 따른 드라이버를 설정하여 상기 쓰기 풋 프로시져(51)로 전송하는 드라이버 설정 관리자(52)와, FDDI 프레임 헤더를 추가하여 수신된 메시지를 프레임으로 구성한 후, 상기 쓰기 풋 프로시져(51)로 전송하는 프레임 구성자(53)와, 상기 쓰기 풋 프로시져(51)로부터 수신된 메시지가 FDDI 보드에 씌여지도록 제어하는 쓰기 서비스 프로시져(54)와, 상기 쓰기 서비스 프로시져(54)의 제어에 의해 FDDI 보드에 메시지를 작성하는 쓰기 링 관리자(55)와, 네트워크 인터페이스 드라이버를 통해 읽거나, 쓰여질 스트림 형태의 메시지를 임시 보관하는 스트림 스케쥴러(56)와, FDDI 보드로부터 메시지를 읽어들이는 읽기 링 관리자(58)와, 상기 읽기 링 관리자(58)로부터 메시지가 전달된 사실을 인터럽트를 통해 인식하는 인터럽트 처리기(57)와, FDDI보드로부터 읽혀진 메시지를 상위 모듈인 TCP/IP 모듈로 전송하도록 제어하는 읽기 서비스 프로시져(59)로 구성된다.FIG. 5 is an internal block diagram of a network interface driver according to an embodiment of the present invention. Referring to FIG. 5, the network interface driver provided by the present invention receives a message from a TCP / IP module, which is an upper module. A write foot procedure 51 for determining the type of a message, and when a message is received by the write foot procedure 51, sets a driver corresponding to the message and transmits the message to the write foot procedure 51. The driver setting manager 52 and the FDDI frame header are added to configure the received message as a frame, and then received from the frame constructor 53 for transmitting to the write foot procedure 51 and the write foot procedure 51. A write service procedure 54 for controlling a written message to be written to an FDDI board, and under the control of the write service procedure 54, an FDDI is controlled. A write ring manager 55 for writing messages to the network, a stream scheduler 56 for temporarily storing messages in the form of streams to be read or written through the network interface driver, and a read ring manager for reading messages from the FDDI board. 58), an interrupt handler 57 for recognizing the fact that a message is transmitted from the read ring manager 58 through an interrupt, and a read service for controlling a message read from the FDDI board to be transmitted to the upper module TCP / IP module. It consists of a procedure 59.

제6도는 FDDI통신망에 데이터를 전송하는 본 발명에 의한 쓰기 풋 프로시져의 동작 순서도로서, 제6도를 참조하면, 상기 쓰기 풋 프로시져는 먼저, 스트림 메시지의 데이터 유형을 판단(S51)하여 데이터의 유형(M_PROTO, M_PCPROTO, M_IOCTL, M_FLUSH)에 따라 각각 독립적으로 수행되며, 처리 결과에 대한 복귀값을 갖지 않는다.FIG. 6 is a flowchart illustrating an operation of a write foot procedure according to an embodiment of the present invention for transmitting data to an FDDI communication network. Referring to FIG. 6, the write foot procedure first determines a data type of a stream message (S51) and types of data. It is executed independently according to (M_PROTO, M_PCPROTO, M_IOCTL, M_FLUSH) and does not have a return value for the processing result.

이와 같이, 데이터 유형의 판단에 의해 쓰기 풋 프로시져에서 처리하는 데이터 유형으로는 M_PROTO, M_PCPROTO, M_IOCTL 및 판독/기록 큐를 플러쉬하는 M_FLUSH등이 있으며, 만일, 네트워크 인터페이스 드라이버(20)의 쓰기 큐에 들어있는 메시지의 데이터 유형이 M_IOCTL인 경우(S51 M_IOCTL분기)에, 스트림 메시지의 내용이 입/출력구조체(ioblk)의 자료구조인가를 체크(S52)한후 입/출력자료구조체(ioblk)인 경우에 상기 입/출력 자료 구조체(ioblk)의 ioc-uid와 ioc-count 필드를 검색(s53)하고, 명령어값(ioc_cmd)을 분석(s54)하여, 그 값이 GETADDR이면, 입 출력 제어구조체의 데이터 영역에 보드의 물리 주소를 기록한 후 상위 스트림 모듈의 판독큐에 올려 보내는데(S55), 이러한 물리 주소에 관한 정보는 라우팅 표에 관리되며 ARP/RARP(Address Resolution Protocol/Reverse Address Resolution Protocol) 모듈에 의해서 이용된다.As such, the data types processed by the write foot procedure based on the determination of the data type include M_PROTO, M_PCPROTO, M_IOCTL, and M_FLUSH for flushing the read / write queue, and, if so, enter the write queue of the network interface driver 20. If the data type of the message is M_IOCTL (S51 M_IOCTL branch), if it is an input / output data structure (ioblk) after checking whether the contents of the stream message are an input / output structure (ioblk) data structure (S52). Search the ioc-uid and ioc-count fields of the input / output data structure (ioblk) (s53), analyze the command value (ioc_cmd) (s54), and if the value is GETADDR, enter the data area of the input / output control structure. The physical address of the board is recorded and sent to the read queue of the upper stream module (S55). Information about these physical addresses is managed in a routing table, and the ARP / RARP (Address Resolution Protocol / Reverse Address Resolution Protocol) module By is used.

또한, 명령어(ioc-cmd) 값이 네트워크 인터페이스 드라이버의 작동을 종료시키도록 지정되어 있을 때 네트워크 인터페이스 드라이버와 FDDI보드의 작동상태에 관련된 정보들을 종료하도록 변경시키며, SMT의 연결 설정 및 해제를 요구하는 경우에 해당 동작을 수행한 후에 그 결과에 대한 정보를 갖는 메시지를 구성하여 상위 모듈의 판독큐에 전달(S61)한다.In addition, when the command (ioc-cmd) value is specified to terminate the operation of the network interface driver, it changes to terminate the information related to the operation status of the network interface driver and the FDDI board. In this case, after performing the corresponding operation, a message having information on the result is constructed and transmitted to the read queue of the upper module (S61).

쓰기 풋 프로시져에 전달된 메시지의 데이터 유형이 M_PROTO 또는 M_PCPROTO인 경우 (S51의 M_PROTO M_PCPROTO분기)에 스트림 메시지는 DL_원시 구조체로 이루어지며(S62), 구조체의 원시 필드(DL_BIND_REQ, DL_UNBIND_REQ, DL_INFO_REQ DL_UNITDATA_REQ)에 따라 DL_BIND_REQ 원시 구조체, DL_UNBIND_REQ 원시 구조체, DL_INFO_REQ 원시 구조체, DL_UNITDATA_REQ 원시 구조체로 구성된다.If the data type of the message passed to the write put procedure is M_PROTO or M_PCPROTO (M_PROTO M_PCPROTO branch in S51), the stream message consists of a DL_raw structure (S62), and the raw fields of the structure (DL_BIND_REQ, DL_UNBIND_REQ, DL_INFO_REQ DL_UNITDATA_REQ). It consists of a DL_BIND_REQ primitive structure, a DL_UNBIND_REQ primitive structure, a DL_INFO_REQ primitive structure, and a DL_UNITDATA_REQ primitive structure.

DL_BIND_REQ 원시 구조체의 경우 상위 모듈에서 전달된 실제 데이터를 FDDI보드로 전달하기 전에 네트워크 인터페이스 드라이버를 스트림 링크에 연결하므로서(s63) 상위 스트림 모듈의 판독/기록큐와 네트워크 인터페이스 드라이버의 판독/기록큐를 각각 상호 연결하도록 요청하는 원시 구조체로 시스템의 부팅시에 스트림의 구성 파일에 등록된 모든 모듈을 스트림 링크에 연결하고자 할 때 커널에 의해서 불리며, 드라이버는 FDDI의 물리주소 크기, 셉(sap)번호 등을 포함한 DL_BIND_ACK를 스트림 메시지로 구성(S63~S64) 하여 상위 모듈의 판독큐에 전달( S69)한다.In case of DL_BIND_REQ primitive structure, the network interface driver is connected to the stream link before the actual data transferred from the upper module to the FDDI board (s63), so that the read / write queue of the upper stream module and the read / write queue of the network interface driver are respectively. It is a primitive structure that requests to be interconnected. It is called by the kernel when all the modules registered in the stream's configuration file are connected to the stream link at system boot time. The driver uses the FDDI's physical address size, The included DL_BIND_ACK is configured as a stream message (S63 to S64) and delivered to the read queue of the upper module (S69).

DL_UNBIND_REQ 원시 구조체의 경우 스트림 링크에 네트워크 인터페이스 드라이버를 제거하도록 요청할 때 이용되며, DL_OK_ACK 원시 구조체를 구성하여 스트림 메시지로 변경(S65~S66) 한 후 상위 모듈의 판독큐에 전달(S69)한다.The DL_UNBIND_REQ primitive structure is used when a stream link is requested to remove a network interface driver. The DL_UNBIND_REQ primitive structure is composed of a DL_OK_ACK primitive structure, changed to a stream message (S65 to S66), and transferred to a read queue of a higher module (S69).

DL_INFO_REQ 원시 구조체의 경우 네트워크 인터페이스 드라이버와 상위 모듈간의 데이터를 전달하기 전에 상위 모듈이 드라이버에 관한 정보를 얻고자 할 때 이용되는 원시구조체를 정보 제공자 역할을 하는 드라이버는 프레임에 관한 정보, 드라이버 상태에 관한 정보 및 qos에 관련된 정보 등을 DL_INFO_ACK 원시 구조체에 기록하여 스트림 메시지를 구성(S67~S68)한후 상위 모듈의 판독큐에 전달(S69)한다.In case of DL_INFO_REQ primitive structure, the primitive structure used when the upper module wants to obtain information about the driver before passing data between the network interface driver and the upper module. The driver serving as an information provider has information about the frame and driver status. Information and information related to qos are recorded in the DL_INFO_ACK primitive structure to construct a stream message (S67 to S68), and then transferred to the read queue of the upper module (S69).

앞서 언급한 DL_BIND_REQ와 DL_INFO_REQ 원시 구조체는 실제 응용 서비스의 데이터를 담은 스트림 데이터를 보드로 전달하기 전에 원활한 데이터의 송수신을 위해서 이루어지는 선행처리 절차이다.The above-mentioned DL_BIND_REQ and DL_INFO_REQ primitive structures are preprocessing procedures that are performed to smoothly send and receive data before transmitting stream data containing data of an actual application service to a board.

본 발명에서는 데이터를 보드로 보내기 위해서 M_DATA 메시지 유형을 이용하지 않고 DL_UNITDATA 원시 구조체를 이용하여 TCP/IP 모듈로부터 전달된 데이터를 FDDI보드로 전송한다.In the present invention, the data transmitted from the TCP / IP module is transmitted to the FDDI board by using the DL_UNITDATA raw structure without using the M_DATA message type to send the data to the board.

데이터 전송 절차를 살펴보면, 우선 해당 스트림 메시지의 목적지가 루프백인 경우 DL_UNIDATA_IND 원시 구조체를 재구성하여 스트림 메시지로 변형한 수 상위 모듈의 판독큐에 전달한다.Looking at the data transmission procedure, first, if the destination of the stream message is a loopback, the DL_UNIDATA_IND primitive structure is reconstructed and transferred to the read queue of the higher order module.

만일 메시지의 목적지가 broadcast 인 경우 로컬을 위해서 하나의 메시지를 루프백과 같은 절차로 상위 모듈에 전달하고, 목적지 주소를 broadcast주소(0xffffffff)로 지정한다.If the destination of the message is broadcast, one message is delivered to the upper module in the same procedure as loopback for local, and the destination address is designated as the broadcast address (0xffffffff).

여기서 이루어지는 가장 중요한 기능은 FDDI헤더를 구성하고 그뒤에 실제 데이터를 연결하여 하나의 프레임을 구성하는 것이다.The most important function here is to construct an FDDI header, followed by the actual data to form a frame.

제7도는 미국 표준기구(ANSI)의 X3T9.5 표준에 따라 구현한 FDDI프레임 포맷 구성도로서 도면에 도시된 바와 같이 프리엠블(PREAMBLE)비트와 시작 지정 한정자(SD)와 프레임 제어필드(FC)와 도착지 주소(DA)와 발신지 주소(SA)와 데이터 필트(INFO)와 프레임 체크순서(FCS)와 끝 지정 한정자(ED)와 프레임 상태 표시비트(FS)로 구성되어 광 매체에 전송되는 FDDI프레임의 구성 요소들을 기술한 것이며 프레임의 데이터 필드(INFO)에서 앞부분은 FDDI의 표준에 따라 3바이트의 LLC 헤더(DSAP, SSAP, CONTROL)와 5바이트의 SNAP헤더(프로토콜 ID 혹은 org 코드와 패킷 형태)가 할당되며, 뒤이어 데이터가 채워진다.FIG. 7 is a schematic diagram of an FDDI frame format implemented according to the American National Standards Institute (ANSI) X3T9.5 standard. As shown in the drawing, a preamble bit, a start designation modifier (SD), and a frame control field (FC) FDDI frame, which is composed of destination address (DA), source address (SA), data field (INFO), frame check order (FCS), end designation qualifier (ED), and frame status indication bit (FS). The first part of the data field (INFO) of the frame is a 3 byte LLC header (DSAP, SSAP, CONTROL) and a 5 byte SNAP header (protocol ID or org code and packet type) according to the FDDI standard. Is assigned, followed by the data.

따라서, 쓰기 풋 프로시져에서 다루는 헤더 부분은 미 국방성에서 제시한 RFC1390 권고안에 따라 LLC 헤더의 DSAP 및 SSAP필드와 SNAP 헤더의 org code 및 sap 번호 등이 지정되는데, sap 값은 IP 모듈의 sap을 나타내는 0x0800과 ARP 모듈을 나타내는 0x0806으로 구분으로 구분되며 뿐만 아니라 목적지의 물리 주소인 도착지 주소(DA) 필드와 앞서 M_IOCTL 메시지에 의해서 보드로부터 전달된 FDDI의 물리 주소를 송신측 보드의 물리주소 부분인 SA에 기록한다.Therefore, the header part of the write foot procedure is assigned the DSAP and SSAP fields of the LLC header and the org code and the sap number of the SNAP header according to the RFC1390 recommendation proposed by the US Department of Defense. The sap value is 0x0800 indicating the sap of the IP module. And 0x0806 indicating the ARP module. In addition, the destination address (DA) field, which is the physical address of the destination, and the physical address of the FDDI transmitted from the board by the M_IOCTL message, are written to the SA, which is the physical address of the sending board. do.

이렇게 쓰기 풋 프로시져에 의해서 하나의 프레임으로 구성된 스트림 메시지는 네트워크 인터페이스 드라이버(20)의 기록큐에 할당되어 쓰기 서비스 프로시져에 의해서 처리되기를 기다린다.The stream message composed of one frame by the write put procedure is allocated to the write queue of the network interface driver 20 and waits for processing by the write service procedure.

스트림 스케쥴러에 의해서 네트워크 인터페이스 드라이버(20)의 쓰기 서비스 프로시져에게 제어권이 넘어가면, 이미 쓰기 서비스 프로시져에 의해서 구성되어져 기록큐에 대기중인 스트림 메시지를 하나씩 FDDI보드에 전달하는데, 이 때 매번 기록큐의 첫 메시지를 취하여 VMEbus를 통하여 FDDI의 버퍼 메모리에 전달되는데, 네트워크 인터페이스 드라이버(20)의 상태와 FDDI보드의 상태가 비정상적인 경우나 보드의 버퍼 메모리가 순간적으로 가득차 있을 때 서비스 프로시져는 해당 메시지를 기록큐의 처음 부분에 재할당하므로서 데이터의 손실을 방지하고 데이터의 전송 순서의 바뀜을 방지한다.When control is passed to the write service procedure of the network interface driver 20 by the stream scheduler, the stream messages, which are already configured by the write service procedure and are waiting in the write queue, are delivered to the FDDI board one by one. The message is taken and delivered to the buffer memory of the FDDI through the VMEbus. When the status of the network interface driver 20 and the status of the FDDI board are abnormal or the buffer memory of the board is momentarily full, the service procedure writes the corresponding message to the record queue. Reassignment at the beginning prevents data loss and prevents reordering of the data.

하나의 스트림 메시지가 쓰기 서비스 프로시져에 의해서 FDDI보드로 전달되는 과정을 보면 우선 SMT 연결 설정이 이루어졌는가를 확인 해야 하는데, 보드 상태의 점검은 보드의 상태 정보를 갖는 레지스터를 읽음으로써 가능하며, 네트워크 인터페이스 드라이버(20)와 SMT 연결 상태는 드라이버의 제어구조체를 엑세스하므로서 가능하다.When one stream message is delivered to FDDI board by write service procedure, it is necessary to check whether SMT connection is established. Board status can be checked by reading registers with board status information. The driver 20 and the SMT connection state are possible by accessing the control structure of the driver.

호스트와 보드사이에 전달되는 데이터는 스트림 메시지 형태로 전달할 수 없으므로 네트워크 인터페이스 드라이버(20)에서 정의하는 버퍼 제어블록(BCB)이라는 자료구조체를 이용하여 전달한다.Since the data transmitted between the host and the board cannot be transmitted in the form of a stream message, the data is transmitted using a data structure called a buffer control block (BCB) defined by the network interface driver 20.

따라서, 하나의 전송 프레임은 하나의 BCB구조체에 담아서 해당 VMEbus를 통해서 FDDI보드의 버퍼 메모리에 전달하고, 데이터가 전달된 사실을 보드에게 알리기 위해서 인터럽트를 FDDI보드로 보내므로서 전송을 완료하여 이와같은 전송 절차는 기록큐에 대기중인 모든 스트림 메시지에 대해서 반복적으로 수행된다.Therefore, one transmission frame is contained in one BCB structure and transferred to the buffer memory of the FDDI board through the corresponding VMEbus, and the transmission is completed by sending an interrupt to the FDDI board to inform the board that the data has been transferred. The transmission procedure is repeatedly performed for all stream messages waiting in the recording queue.

네트워크 인터페이스 드라이버와 FDDI 보드간의 데이터 전송시에 항상 주고받는 측에서 받는 즉시 처리할 수 있는 것은 아니며, 데이터 송수신을 위한 VME 영역이 서로 구분되어야 하므로 임의의 데이터 흐름 제어 기능을 제공해야 한다.When data is transmitted between the network interface driver and the FDDI board, it cannot always be processed immediately by the sender and receiver. VME areas for data transmission and reception must be separated from each other, and thus, arbitrary data flow control functions must be provided.

따라서, 램 디바이스 드라이버(10)와 네트워크 인터페이스 드라이버(20)에서 VMEbus를 통해서 데이터를 전송하기 위해서 링(ring)이라는 FIFO 방식의 순환 리스트를 이용하여 정보 손실 없는 원할한 데이터 전달이 이루어지도록 구현하였다.Accordingly, the RAM device driver 10 and the network interface driver 20 implement a smooth data transfer without loss of information by using a FIFO type circular list called a ring in order to transmit data through the VMEbus.

제8도는 링이 호스트 드라이버와 보드사이에서 데이터를 전달하는 수행 순서에 관하여 기술한 것으로 링의 구조는 같은 수의 엔트리를 갖는 두 개의 링이 쌍을 이루도록 구현되었으며 크게 2종류의 링으로 구분할 수 있는데, 데이터 전송을 위한 링은 호스트에서 보드로 데이터를 전송하는 한쌍의 링과 non_DMA 수신을 위한 링 그리고 DMA 수신을 위한 링등 TCP/IP 모듈과 관련된 데이터를 전달하기 위해서 각각 256 엔트리로 구성된 세 쌍의 데이터 처리 링으로 구성되고, SMT 에 관련된 정보를 송수신하기 위해서 데이터 전송링과는 별도로 네트워크 인터페이스 드라이버와 보드의 SMT 드라이버간의 SMT 데이터를 전달하기 위해서 16엔트리를 갖는 SMT 인터페이스 링을 구현한다.Figure 8 describes the order in which the ring transfers data between the host driver and the board. The structure of the ring is implemented so that two rings with the same number of entries are paired and can be divided into two types of rings. For data transmission, the ring for data transmission is composed of 256 pairs of data, each consisting of 256 entries to transmit data related to the TCP / IP module, such as a pair for transmitting data from the host to the board, a ring for non_DMA reception, and a ring for DMA reception. It is composed of a processing ring and implements an SMT interface ring having 16 entries to transfer SMT data between a network interface driver and an SMT driver on a board separately from the data transmission ring to transmit and receive information related to SMT.

제9도는 본 발명에 의한 네트워크 인터페이스 드라이버의 가상 주소와 FDDI보드의 주소간의 주소 매핑을 기술한 블록도로서 도면에서 기술한 바와 같이 링 엔트리는 호스트에서 접근 가능한 커널의 가상 주소로 나타난 BCB 구조체의 주소로 표현되며, 보드에서는 이들 포인터를 내부 주소로 변환하기 위해서 호스트에서 제공하는 시작 주소를 이용한다.9 is a block diagram illustrating the address mapping between the virtual address of the network interface driver and the address of the FDDI board according to the present invention. As shown in the drawing, the ring entry is an address of a BCB structure represented as a virtual address of a kernel accessible from the host. The board uses the start address provided by the host to translate these pointers into internal addresses.

FDDI보드가 통신망으로부터 하나의 데이터 프레임을 수신한 후 보드에서 FDDI프로토콜 기능을 수행하고, 해당 데이터를 호스트로 전달하기 위하여 커널에 구현된 FDDI인터럽트 처리 루틴을 수행시키는 FDDI 용 인터럽트를 발생시킨다.After the FDDI board receives one data frame from the network, it performs the FDDI protocol function on the board and generates an FDDI interrupt that executes the FDDI interrupt processing routine implemented in the kernel to deliver the data to the host.

따라서, 시스템 부팅시에 FDDI 보드마다 각각 고유의 인터럽트 번호를 지정하므로 네트워크 인터페이스 드라이버는 어느 보드로부터 인터럽트가 요청되는 가를 알 수 있다.Therefore, since each FDDI board assigns a unique interrupt number at system boot, the network interface driver can know from which board the interrupt is requested.

제10도는 본 발명에 의한 FDDI보드 구종 장치가 통신망에서 수신된 데이터를 호스트의 드라이버에 전달하는 과정을 보인 동작 순서도로서 FDDI 보드가 통신망으로부터 받은 프레임을 네트워크 인터페이스 드라이버(20)의 인터럽트 루틴을 통해서 TCP/IP 모듈에 전달하는 처리 순서를 기술한 것이다.FIG. 10 is a flowchart illustrating a process of delivering a data received from a communication network to a driver of a host by an FDDI board older device according to the present invention. The frame received by the FDDI board from the communication network through the interrupt routine of the network interface driver 20 is TCP. Describes the processing sequence to pass to the / IP module.

이 인터럽트 루틴 처리의 결과는 수신 데이터를 스트림 메시지로 구성하여 드라이버의 판독큐에 할당하고, 스트림 스케쥴러에 의해서 제어권을 넘겨 받은 읽기 서비스 프로시져에 의해서 상위 모듈에 전달된다.The result of this interrupt routine processing consists of the received data in a stream message, which is allocated to the driver's read queue and transferred to the upper level module by the read service procedure, which is given control by the stream scheduler.

수신 데이터의 처리 방법은 데이터의 성격에 따라 다음 3가지 처리 순서를 수행한다.The received data processing method performs the following three processing procedures according to the nature of the data.

첫째, 호스트에서 보드로 전달된 하나의 프레임에 해당하는 데이터가 보드에서 정상적으로 받아진 후, FDDI보드는 호스트의 네트워크 인터페이스 드라이버로 전송 완료를 통지하는 인터럽트를 발생시킨다.First, after the data corresponding to one frame transferred from the host to the board is normally received from the board, the FDDI board generates an interrupt notifying the completion of transmission to the host of the network interface.

두 번째 경우는 보드가 호스트로 SMT 관련 정보를 전달하기 위해서 수행되는 것으로 SMT 이벤트들을 호스트에 통보한다.In the second case, the board is executed to deliver SMT-related information to the host and notifies the host of SMT events.

시스템이 부팅되고 네트워크 인터페이스 드라이버를 통해서 SMT 연결 설정을FDDI보드에 요청할 때, 보드는 SMT 연결 설정 수행 결과를 인터럽트를 통해서 호스트에 통보하는데 정상적으로 연결이 이루어진 경우에 SMT 상태 정보와 FDDI통신망의 이중 링 중에서 제1링으로 데이터가 전송됨을 나타내는 이벤트를 호스트에 전달한다.When the system boots and requests the SMT connection to the FDDI board through the network interface driver, the board notifies the host through the interrupt of the result of performing the SMT connection. The SMT status information and the double ring of the FDDI network are established when the connection is established normally. Sends an event to the host indicating that data is to be sent to the first ring.

셋째로 FDDI보드는 통신망을 통해서 도착한 데이터를 호스트로 전달하기 위해서 모든 데이터 프레임을 BCB 구조체로 변경하여 순환 리스트 구조를 갖는 데이터 수신 링에 엔트리로 구성하여 할당한후, 호스트로 인터럽트를 발생시켜 네트워크 인터럽트 루틴을 수행시킨다.Third, the FDDI board converts all data frames into BCB structures to transfer data arriving through the network to the host, configures and allocates entries to a data receiving ring with a circular list structure, and generates an interrupt to the host to generate network interrupts. Run the routine.

드라이버의 인터럽트 루틴은 데이터 수신 링의 첫 번째 엔트리를 취하여 오류 여부에 대한 점검을 하고, BCB의 데이터 필드를 스트림 메시지로 변형하며, 이를 다시 상위 모듈인 TCP/IP 모듈에서 인식할수 있도록 DL_UNITDATA_IND 프로미티브로 재구성하는데, 이 때 FDDI프레임의 물리주소인 SA필드와 DA필드를 제외한 데이터 필드만을 스트림 메시지로 구성하여 판독큐에 할당한다. 이와같은 방법으로 데이터 수신 링의 모든 엔트리가 스트림 메시지로 변형되어 네트워크 인터페이스 드라이버의 판독큐에 놓이며, 스트림 스케쥴러에 의해서 읽기 서비스 프로스져가 수행된다.The driver's interrupt routine takes the first entry in the data reception ring, checks for errors, transforms the BCB's data fields into stream messages, and re-reads the DL_UNITDATA_IND primitive to make it visible to the parent module TCP / IP module. In this case, only data fields except the SA field and the DA field, which are physical addresses of the FDDI frame, are configured as stream messages and allocated to the read queue. In this way, all entries in the data receiving ring are transformed into stream messages and placed in the read queue of the network interface driver, and a read service procedure is performed by the stream scheduler.

읽기 서비스 프로시져의 역할은 단지 판독큐에 대기중인 스트림 메시지를 상위 모듈의 판독큐에 전달하는 기능을 수행한다.The role of the read service procedure only serves to deliver stream messages queued to the read queue to the read queue of the upper module.

이와 같은 본발명의 FDDI 구동장치는 스트림 메카니즘에 의해 유닉스 커널내에서 또는 커널과 다른 부분간의 표준 인터페이스를 가지므로 시스템간의 이동성을 높이며, 유닉스 시스템의 시스템 V 버전(SVR4.0)에서 정보 전송이 용이하다는 장점이 있다.The FDDI drive device of the present invention has a standard interface in the Unix kernel or between the kernel and other parts by a stream mechanism, thereby increasing mobility between systems and easily transmitting information in the system V version (SVR4.0) of the Unix system. Has the advantage.

Claims (9)

유닉스 시스템 커널(SVR 4.0)에 구현되어, 시스템 내의 응용 프로그램과 FDDI 보드 사이에서 캐릭터 단위로 데이터를 전송하는 램 디바이스 드라이버와, 유닉스 커널내의 TCP/IP 모듈과 스트림 메시지 데이터 형태로 상호 작용을 하면서 시스템간의 데이터 송수신 기능을 수행하는 네트워크 인터페이스 드라이버로 구성함을 특징으로 하는 유닉스(UNIX) 시스템 커널에서의 스트림 방식을 이용한 섬유분포 데이터 인터페이스 (FDDI)보드 구동장치.Implemented in the Unix system kernel (SVR 4.0), the RAM device driver transfers data character-by-character between applications and FDDI boards in the system, and interacts in the form of stream message data with TCP / IP modules in the Unix kernel. Fiber distribution data interface (FDDI) board driving apparatus using the stream method in the UNIX system kernel, characterized by consisting of a network interface driver that performs data transmission and reception between. 제1항에 있어서, 상기 램 디바이스 드라이버는 FDDI보드에 펌 웨어를 다운 로딩하거나 보드의 상태를 검색하거나 지정하는 상태 정보 접근 프로그램으로 이루어지는 것을 특징으로 하는 유닉스(UNIX)시스템 커널에서의 스트림 방식을 이용한 섬유분포 데이터 인터페이스(FDDI)보드 구동장치.The RAM device driver of claim 1, wherein the RAM device driver comprises a state information access program that downloads firmware onto an FDDI board, retrieves or specifies a state of the board, and uses a stream method in a UNIX system kernel. Fiber Distribution Data Interface (FDDI) Board Driver. 제1항에 있어서, 상기 램 디바이스 드라이버는 데이터를 보드로 다운 로딩하기 위해서 함수를 이용하여 사용자 영역의 데이터를 커널의 가상 주소 영역으로 복제하여 VMEbus를 통해서 FDDI보드의 버퍼 메모리에 전달하는 것을 특징으로 하는 유닉스(UNIX) 시스템 커널에서의 스트림 방식을 이용한 섬유분포 데이터 인터페이스 (FDDI) 보드 구동장치.The RAM device driver of claim 1, wherein the RAM device driver copies a user area data to a virtual address area of the kernel by using a function to download the data to a board, and transfers the data of the user area to the buffer memory of the FDDI board through the VMEbus. Fiber Distribution Data Interface (FDDI) board driver using stream method in UNIX system kernel. 제1항에 있어서, 상기 램 디바이스 드라이버는 FDDI보드의 수행을 시작하거나 종료시키기 위해서 보드의 레지스터값을 지정하는 부분과 FDDI보드에 소프트웨어로 작동하는 SMT 드라이버에 변수값을 지정하거나 검색하는 입/출력 제어함수를 갖는 것을 특징으로 하는 유닉스(UNIX) 시스템 커널에서의 스트림 방식을 이용한 섬유분포 데이터 인터페이스(FDDI)보드 구동장치.The I / O device of claim 1, wherein the RAM device driver assigns or retrieves a variable value to a portion specifying a register value of the board to start or stop the FDDI board and an SMT driver operating in software on the FDDI board. Fiber distribution data interface (FDDI) board driving apparatus using a stream method in the UNIX system kernel, characterized in that it has a control function. 제1항 있어서, 상기 네트워크 인터페이스 드라이버는 상위 모듈인 TCP/IP 모듈로부터 메시지를 수신하여 그 메시지의 종류를 판별하는 쓰기 풋프로시져(51)와, 상기 쓰기 풋 프로시져(51)에서 메시지를 수신한 경우 그 메시지에 따른 드라이버를 설정하여 상기 쓰기 풋 프로시져(51)로 전송하는 드라이버 설정 관리자(52)와, FDDI 프레임 헤더를 추가하여 수신된 메시지를 프레임으로 구성한 후, 상기 쓰기 풋 프로시져(51)로 전송하는 프레임 구성자(51)와, 상기 쓰기 풋 프로시져(51)로부터 수신된 메시지가 FDDI 보드에 씌여지도록 제어하는 쓰기 서비스 프로시져(54)와, 상기 쓰기 서비스 프로시져(54)의 제어에 의해 FDDI 보드에 메시지를 작성하는 쓰기 링 관리자(55)와, 네트워크 인터페이스 드라이버를 통해 읽거나, 쓰여질 스트림 형태의 메시지를 임시 보관하는 스트림 스케쥴러(56)와, FDDI 보드로부터 메시지를 읽어들이는 읽기 링 관리자(58)와, 상기 읽기 링 관리자(58)로부터 메시지가 전달된 사실을 인터럽트를 통해 인식하는 인터럽트 처리기(57)와, FDDI 보드로부터 읽혀진 메시지를 상위 모듈인 TCP/IP 모듈로 전송하도록 제어하는 읽기 서비스 프로시져(59)로 구성된 것을 특징으로 하는 유닉스(UNIX) 시스템 커널에서의 스트림 방식을 이용한 섬유분포 데이터 인터페이스(FDDI)보드 구동장치.The write foot procedure 51 according to claim 1, wherein the network interface driver receives a message from a TCP / IP module, which is an upper module, and determines a type of the message, and when the message is received by the write foot procedure 51. After setting the driver according to the message and transmitting the driver setting manager 52 to the write foot procedure 51 and the FDDI frame header, the received message is configured as a frame and transmitted to the write foot procedure 51. The frame constructor 51, a write service procedure 54 for controlling a message received from the write foot procedure 51 to be written on the FDDI board, and a message to the FDDI board under the control of the write service procedure 54. A write ring manager 55 for creating a message, and a temporary form for storing a message in a stream form to be read or written through a network interface driver. A stream scheduler 56, a read ring manager 58 for reading messages from the FDDI board, an interrupt handler 57 for recognizing the fact that a message has been delivered from the read ring manager 58, and an FDDI; Drives the Fiber Distribution Data Interface (FDDI) board using the stream method in the UNIX system kernel, characterized by a read service procedure 59 that controls to send messages read from the board to the upper module TCP / IP module. Device. 제1항에 있어서, 상기 네트워크 인터페이스 드라이버는 VMEbus를 통해서 FDDI 보드로 데이터를 전송할 때 버퍼제어 블록 구조체를 통해서 데이터를 전송하는 것을 특징으로 하는 유닉스(UNIX)시스템 커널에서의 스트림 방식을 이용한 섬유분포 데이터 인터페이스 (FDDI)보드 구동장치.The fiber distribution data of claim 1, wherein the network interface driver transmits data through a buffer control block structure when transmitting data to an FDDI board through a VMEbus. Interface (FDDI) board drive. 제1항에 있어서, 상기 네트워크 인터페이스 드라이버는 M_IOCTL 데이터 유형은 스트림 인터페이스 유형을 위한 제어정보에 관한 엑세스 기능을 수행하고 M_PROTO 데이터 유형의 메시지는 인터페이스를 위한 원시 구조체를 포함하며 이들 원시 구조체에 따라 각각 독립적으로 수행되어 스트림 링크를 제어하거나 스트림 데이터를 전송하는 기능을 수행하는 쓰기 풋 프로시져의 동작에 의해 하나의 FDDI프레임으로 구성된 스트림 메시지를 갖는 것을 특징으로 하는 유닉스(UNIX) 시스템 커널에서의 스트림 방식을 이용한 섬유분포 데이터 인터페이스(FDDI)보드 구동장치.The network interface driver of claim 1, wherein the M_IOCTL data type performs an access function for control information for the stream interface type, and the message of the M_PROTO data type includes a primitive structure for the interface, each independently according to these primitive structures. By using the stream method in the UNIX system kernel, the stream message is composed of one FDDI frame by an operation of a write foot procedure that performs a function of controlling a stream link or transmitting stream data. Fiber Distribution Data Interface (FDDI) Board Driver. 제1항에 있어서, 상기 네트워크 인터페이스 드라이버는 FDDI보드가 망에서 데이터를 수신하면 해당 FDDI프로토콜에 따라 프레임을 처리하고 호스트에 인터럽터를 발생시키며, 인터럽트를 받은 커널은 어느 장치의 것인가를 체크하여 FDDI드라이버의 인터럽트 루틴을 수행하는 쓰기 서비스 프로시져를 갖고 상기 인터럽트에 받아진 버퍼제어블록 구조체의 데이터를 스트림 메카니즘에 맞도록 구성함을 특징으로 하는 유닉스(UNIX)시스템 커널에서의 스트림 방식을 이용한 섬유분포데이터 인터페이스(FDDI)보드 구동장치.The FDDI driver according to claim 1, wherein when the FDDI board receives data from the network, the network interface driver processes a frame and generates an interrupt to the host according to the corresponding FDDI protocol. The interrupted kernel checks which device is the FDDI driver. A fiber distribution data interface using a stream method in a UNIX system kernel, having a write service procedure for performing an interrupt routine of the controller and configuring the data of the buffer control block structure received by the interrupt according to the stream mechanism. (FDDI) Board drive. 제8항에 있어서, 상기 네트워크 인터페이스 드라이버는 상기 인터럽트루틴은 FDDI보드로 보낸 데이터에 관련된 결과를 FDDI보드로부터 통보받기 위한 인터럽트와, FDDI통신망에 관련된 상태 정보를 호스트에 전달하기 위한 SMT 상태정보에 인터럽트와 , 통신망의 다른 노드로부터 도착한 데이터를 호스트에 전달하기 위한 인터럽트로 구성함을 특징으로 하는 유닉스(UNIX)시스템 커널에서의 스트림 방식을 이용한 섬유분포 데이터 인터페이스(FDDI) 보드 구동장치.The network interface driver of claim 8, wherein the interrupt routine interrupts an interrupt for receiving notification from the FDDI board of a result related to data sent to the FDDI board, and an SMT status information for transmitting status information related to the FDDI communication network to the host. And a stream distribution data interface (FDDI) board driving apparatus using a stream method in a UNIX system kernel, comprising an interrupt for transmitting data arriving from another node of a communication network to a host.
KR1019940033885A 1994-12-13 1994-12-13 Board driving apparatus of fiber distributed data interface using stream mechanism on the unix system KR0146025B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940033885A KR0146025B1 (en) 1994-12-13 1994-12-13 Board driving apparatus of fiber distributed data interface using stream mechanism on the unix system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940033885A KR0146025B1 (en) 1994-12-13 1994-12-13 Board driving apparatus of fiber distributed data interface using stream mechanism on the unix system

Publications (2)

Publication Number Publication Date
KR960025000A KR960025000A (en) 1996-07-20
KR0146025B1 true KR0146025B1 (en) 1998-09-15

Family

ID=19401165

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940033885A KR0146025B1 (en) 1994-12-13 1994-12-13 Board driving apparatus of fiber distributed data interface using stream mechanism on the unix system

Country Status (1)

Country Link
KR (1) KR0146025B1 (en)

Also Published As

Publication number Publication date
KR960025000A (en) 1996-07-20

Similar Documents

Publication Publication Date Title
US5548731A (en) System for forwarding data packets with different formats to different software entitles respectively based upon match between portion of data packet and filter
US6678734B1 (en) Method for intercepting network packets in a computing device
US8856379B2 (en) Intelligent network interface system and method for protocol processing
US7584260B2 (en) Method to synchronize and upload an offloaded network stack connection with a network stack
US5721876A (en) Sockets application program mechanism for proprietary based application programs running in an emulation environment
US6522654B1 (en) Method for hosting the internet protocol suite on the IEEE-1394 high speed serial bus
US6549946B1 (en) Apparatus and method for telecommunication routing and parameter negotiation
US6654812B2 (en) Communication between multiple partitions employing host-network interface
US5630059A (en) Expedited message transfer in a multi-nodal data processing system
US6636521B1 (en) Flexible runtime configurable application program interface (API) that is command independent and reusable
US6185607B1 (en) Method for managing network data transfers with minimal host processor involvement
US20030005039A1 (en) End node partitioning using local identifiers
US5519833A (en) Distributed data processing system providing a distributed stream software environment to enable application on a first system to use driver on a second system
JPH09231157A (en) Method for controlling input/output (i/o) device connected to computer
JP2001517895A (en) Full duplex communication processor used for fiber channel frame
US5812767A (en) System for user registering an address resolution routine to provide address resolution procedure which is used by data link provider interface for resolving address conflicts
US6304910B1 (en) Communication processor having buffer list modifier control bits
US5802307A (en) Network communications subsystem and method for digital computer system employing protocol stack having diverse lower-level network driver components optimized for each of base and enhance operating systems
US5983272A (en) Option request protocol
US5915124A (en) Method and apparatus for a first device accessing computer memory and a second device detecting the access and responding by performing sequence of actions
US6578096B1 (en) Method and system for efficient I/O operation completion in a fibre channel node
KR0146025B1 (en) Board driving apparatus of fiber distributed data interface using stream mechanism on the unix system
EP0690599A2 (en) Application programming interface for distributed processing in networks
US6311226B1 (en) Method and apparatus for dynamic link name negotiation
US20020129099A1 (en) Method and apparatus for virtualizing a serial port in a data processing system

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
FPAY Annual fee payment

Payment date: 20080428

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee