李銘謙

Ming-Chien Li

碩士論文(1999)

Linux作業系統上有線網路頭端之驅動程式研究與設計

Design of a Linux-based CMTS Driver

關鍵字 Keywords

有線網路頭端系統

CMTS

摘要

台灣,在都市人口密集度中居世界排名前列,而電視也是一般家庭必須品,所以有線電視的接線密集度高得令人咋舌,許多第四台業者自從法令開放後也如雨後春筍般冒出。

近年來,資訊產業抬頭,網路門戶大開,許多廠商也為此商機而蠢蠢欲動,像中華電信即推出ISDN、ADSL等方案,而有線電視業者則有所謂的GiGiGaGa.com寬頻上網方案,在分食著台灣網路這塊大餅。其中又以有線電視網路備受矚目,因為台灣的有線電視用戶非常之多。

Cable data system 分別由許多不同的技術和標準所組成,因此在北美 cable television operators組成一個團隊組織,叫做Multimedia Cable Network System ( MCNS ),且發展制定出 DOCSIS 規格,在 MCNS 規格發表Cable Modem標準後,成為CATV operator、系統供應商和晶片供應商所矚目。也因此許多系統廠商再幾番評估後(如Cisco , 3Com , Toshiba, Motorola等等)為此生產MCNS cable modem謀取商機。

在現行 CATV 網路架構中,我們可以清楚知道,CMTS ( Cable Modem Termination System ) 雖然只是系統頭端的一部分,不過它卻扮演著主要的角色,因為所有的資料流全賴 CMTS 一手包辦,不管是用戶端傳到頭端的上行資料或頭端廣播到用戶端的下行資料,甚至是用戶端之間互動的資料,全都必須交由 CMTS 管理。在 CMTS 架構裡包含許多重要原件 – 晶片BCM3210, BCM3137 , BCM3033 等等,它們分別負責管理上行與下行管道的運作,另外資料的加解密與訊息的傳遞等等,將在論文中予以介紹。

在這篇論文中,重點放在如何將QNX作業系統的 CMTS 驅動程式移植到LINUX平台。QNX是一套即時、可延伸、通過POSIX認證的作業系統,許多工業級電腦以QNX做為其作業系統,穩定但是不便宜;相對的,LINUX是一套免費的作業系統,而且包含核心原始碼,我們可以藉此得知核心與周邊裝置的對應關係,依樣修改CMTS驅動程式使得頭端裝置可以在 LINUX 環境下作用。

論文裡面提出三個實作方法:1. 由 PCI Bus 著手,使得作業系統得以偵測出裝置; 2. 針對下行管道縮小驅動程式範圍; 3.將 Makefile 裡面含有的 .o目的檔案對照 .cpp 原始檔案依序編譯並除錯。另外,在這過程中遇到許多問題,例如:不明的巨集、或結構以及未定義的函式等等,論文裡亦提供了數種方案來解決問題。

Abstract

The density of population in Taiwan is at the head of the world, and almost every family has more than one television in the house. Hence the cable TV subscribers are not a small amount of quantity in Taiwan. Recently, there are also many choices to enjoy the internet services like ISDN, ADSL or Cable network and so forth. This paper will discuss something about CMTS (Cable Modem Termination System) architecture, how a HeadEnd machine provides its capability and related functions. Some points about porting QNX device driver to Linux in addition.

A cable data system is comprised of many different techniques and standards. To develop a mass market for cable modems, products from different vendors must be interoperable. To accomplish the task of interoperable systems, the North American cable television operators formed a limited partnership, Multimedia Cable Network System (MCNS), and developed an initial set of cable modem requirements (DOCSIS). MCNS was initially formed by Comcast, Cox, TCI, Time Warner, Continental (now MediaOne), Rogers Cable, and CableLabs. The DOCSIS requirements are now managed by CableLabs. Vendor equipment compliance to the DOCSIS requirements and interoperability tests are administered by a CableLabs certification program. Some companies like Cisco, 3Com, Toshiba, Motorola and so forth, produce some related products to gain profit.

In the paper, the subject is mainly aimed at – design a Linux-based CMTS driver. First, there is a guide to device driver implementation. Then there are several ways mentioned to solve the problem like PCI Bus, downstream channel and so forth to illustrate the process of porting QNX device driver to Linux machine.

In the process of designing a Linux-based CMTS driver, many troubles were happened like unknown variables. Some ways will be mentioned to solve these kinds of problems in this paper and still some debug tools will be introduced later.

In a word, CMTS is a very important component in Cable Network, hence a manager should care about its operating efficiency, like the CPU load of the machine or other vicious attack to the server. Finally, there is something about data flow management of the machine in the paper.