1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng Adhoc

65 696 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 1,03 MB

Nội dung

Phát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng AdhocPhát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng AdhocPhát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng AdhocPhát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng AdhocPhát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng AdhocPhát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng AdhocPhát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng AdhocPhát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng AdhocPhát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng AdhocPhát triển bộ tiện ích APE Testbed hỗ trợ kiểm thử mạng di dộng Adhoc

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Trang 2

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

LUẬN VĂN TH C SĨ Ỹ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC : TS LÊ TRUNG QUÂN

TP HỒ CHÍ MINH – Năm 2016

Trang 3

i

LỜI CA OAN

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi

Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc ai công bố trong bất kỳ công trình nào khác

Tp HCM, ngày 01 tháng 09 năm 2016 Học viên thực hiện luận văn

Trần Danh Hưng

Trang 4

ii

LỜI CẢ ƠN

Tôi xin trân trọng cảm ơn thầy Lê Trung Quân, giáo viên hướng dẫn của tôi, người đã chỉ bảo, hướng dẫn, và động viên tôi trong suốt quá trình thực hiện luận văn này Nhờ sự hướng dẫn tận tình của thầy mà tôi mới có thể vượt qua những khó khăn về chuyên môn trong quá trình thực hiện luận văn

Tôi cũng xin gửi lời cảm ơn đến quý thầy cô trường Học viện Công nghệ Bưu chính Viễn thông đã tạo điều kiện học tập và truyền đạt nhiều kiến thức quý báu trong quá trình học cao học

Xin cảm ơn các bạn trong lớp Cao học Hệ thống thông tin M14CQIS01-N, đặc biệt là ban cán sự lớp, đã đồng hành và hỗ trợ tôi trong suốt quá trình học

Cuối cùng tôi cũng xin cảm ơn gia đình và đồng nghiệp tôi đã giúp đỡ tôi trong quá trình thực hiện luận văn này

Tp HCM, ngày 01 tháng 09 năm 2016 Học viên thực hiện luận văn

Trần Danh Hưng

Trang 5

iii

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT v

DANH MỤC CÁC BẢNG vi

DANH MỤC CÁC HÌNH vii

CHƯƠNG 1 - TỔNG QUAN T NH H NH NGHI N C U APE TESTBED V MỤC TI U LUẬN VĂN 1

1.1 Tổng quan 1

1.1.1 Mạng di động Adhoc (MANET) 1

1.1.2 APE testbed 3

1.1.3 So sánh APE testbed và các công cụ hỗ trợ kiểm thử mạng MANET khác 4 1.1.4 Tình hình nghiên cứu/phát triển của APE testbed 6

1.2 Mục tiêu của luận văn 7

1.3 Tóm tắt phương pháp luận, các kết quả đạt được 7

1.4 Phạm vi, giới hạn của đề tài 7

1.5 Cấu trúc của Luận văn 8

CHƯƠNG 2 - Thực hiện cập nhật bộ công cụ APE testbed 9

2.1 Phân tích APE testbed 9

2.1.1 Cấu trúc của APE testbed 9

2.1.2 Các thành phần cần được cập nhật 11

2.1.3 Phân tích Kernel patches 13

2.1.3.1 MacKill 15

2.1.3.2 Wireless driver hook 16

2.1.4 Các giao thức định tuyến 18

Trang 6

iv

2.2 Tiến hành cập nhật APE testbed 19

2.2.1 Cập nhật MacKill 19

2.2.2 Cập nhật Wireless driver hook 22

2.2.2.1 Nguyên tắc chung 22

2.2.2.2 ath9k 22

2.2.2.3 rt2800usb 29

2.2.2.4 Phương pháp mới không cần driver hook 30

2.2.3 Cập nhật các giao thức định tuyến 33

CHƯƠNG 3 - Đánh giá kết quả 34

3.1 Cập nhật ath9k 34

3.1.1 Cập nhật mã nguồn 34

3.1.2 Đánh giá 35

3.2 Cập nhật các giao thức định tuyến 37

3.2.1 Cập nhật mã nguồn 37

3.2.2 Đánh giá 39

3.2.3 Đánh giá tổng quan 40

CHƯƠNG 4 - Kết luận 41

DANH MỤC T I LIỆU THAM KHẢO 42

PHỤ LỤC 43

Trang 7

v

DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT

MANET Mobile ad-hoc network Mạng di động Ad-hoc

AODV Ad hoc On-Demand Distance Vector

Routing

Định tuyến Adhoc dựa trên vector khoảng cách khi cần

DSR Dynamic Source Routing Định tuyến nguồn động

OLSR Optimized Link State Routing

SNR Signal-to-noise ratio Tỉ số tín hiệu trên nhiễu

MAC address Media access control address Địa chỉ điều khiển truy cập thiết bị

Trang 8

vi

DANH MỤC CÁC BẢNG

Bảng 2.1: So sánh các bộ công cụ kiểm thử mạng di động adhoc 5Bảng 3.1: So sánh thông tin từ tài liệu APE testbed và thực tế 18Bảng 4.1: Danh sách các API cần thay thế 37

Trang 9

vii

DANH MỤC CÁC HÌNH

Hình 1.1: Sơ đồ mạng di động adhoc 1

Hình 1.2: Sơ đồ hoạt động của bộ công cụ APE testbed 3

Hình 3.1: Danh sách file trong thư mục dist 9

Hình 3.2: Danh sách file dưới thư mục kernel 10

Hình 3.3: Danh sách file dưới thư mục src 11

Hình 3.4: Các patch cho kernel 14

Hình 3.5: Cấu trúc của MacKill 15

Hình 3.6: Cấu trúc của driver hook 16

Hình 3.7: Cấu trúc của MacKill và cách MacKill xử lý 19

Hình 3.8: So sánh sk_buff giữa 2 kernel version 20

Hình 3.9: Minh họa cấu trúc của driver ath9k 23

Hình 3.10: Danh sách file trong ath9k 24

Hình 3.11: Danh sách các kernel module và quan hệ trong ath9k 24

Hình 4.1: Kết quả build sau khi cập nhật ath9k 35

Hình 4.2: Kết quả cập nhật cho ath9k 36

Trang 10

1

CHƯƠNG 1 - T NG QUAN T NH H NH NGHI N C U

APE TESTBED V ỤC TI U LUẬN VĂN

bị trong mạng có thể di chuyển được Khác với mạng không dây thường gặp với các thiết bị đều kết nối trực tiếp với một Wifi router ở trung tâm, trong mạng di động ad-hoc các thiết bị không có trung tâm mà thay vào đó chúng kết nối lẫn nhau với vai trò bình đẳng Khi một thiết bị di chuyển, nó sẽ thường xuyên thay đổi dường kết nối (đến các thiết bị gần hơn trong lúc nó di chuyển)

H nh 1.1: S ng i ng a h

Mạng di động Adhoc có thể được sử dụng trong những trường hợp sau 4]:

Trang 11

2

- Vùng bị thiên tai, hạ tầng mạng đã bị phá hủy

- Tại khu vực công trường đang xây dựng

- Trong gia đình/công sở (dùng như mạng WLAN)

- Mạng cảm biến (Sensor networks) nối các loại cảm biến trên cơ thể người hoặc trong hệ thống nhà thông minh

Ngoài ra, mạng di động Ad-hoc còn có một biến thể khác gọi là VANET (Vehicular ad hoc network) Ban đầu VANET là mạng MANET cho các phương tiện giao thông Nhưng ngày nay VANET đã phát triển thành một lĩnh vực độc lập

và ngày càng được quan tâm 5]

Tuy có nhiều ưu điểm, nhưng mạng MANET vẫn còn vấp phải nhiều thách thức Một nghiên cứu 10] cho rằng mạng MANET cần giải quyết các thách thức về:

Trang 13

1.1.3 So sánh APE testbed và các công cụ hỗ trợ kiểm thử mạng MANET khác

Hiện nay các công cụ cho kiểm thử và đánh giá mạng MANET đã và đang được triển khai trên thế giới gồm có:

 APE testbed (Adhoc Protocol Evaluation testbed)

 Emulab (vừa là tên hệ thống testbed thực tế vửa là tên phần mềm)

 ManetLab

 mLab

Dưới đây là bảng so sánh giữa các bộ công cụ này

(Chú ý: Server và Client nhắc tới trong bảng là các thành phần của mỗi bộ công cụ, chứ bản thân mạng di động Adhoc không có quan hệ Server-Client)

Trang 14

x86 Chỉ hỗ trợ

card mạng OriNOCO và WaveLAN

2005 (version 0.5)

AODV-UU Mad-hoc AODV OLSR

DSR LUNAR TORA

Emulab [7] Server: FreeBSD

Client: FreeBSD

Linux WindowsXP

liên tục cho tới nay (trên git server)

không có thông tin

ManetLab

[8]

OS X 10.7 hoặc mới hơn

Máy tính Apple (Mac)

Card mạng trên các máy Mac

2013 không có thông

tin

mLab [9] Server: Debian

Client: any Linux

x86 ARM (chỉ hỗ trợ 3 loại thiết bị là CerfCube, iPAQ và Zaurus)

- 2006

(version 1.0)

không có thông tin

Hầu hết các công cụ trên đều không còn được tiếp tục phát triển nữa (có thể

là do thiếu nguồn tài trợ như APE testbed), ngoại trừ Emulad Nhưng Emulab chỉ được sử dụng cho bản thân hệ thống Emulab, người dùng khó có thể sử dụng nó để xây dựng hệ thống kiểm thử khác

Trang 15

 Người dùng có thể lựa chọn những protocol cần sử dụng khi build

 Cho ph p kiểm thử một mạng di động ad-hoc một cách tự động với các kịch bản (script) chọn trước Người sử dụng có thể dùng các kịch bản có s n hoặc

tự xây dựng kịch bản theo ý mình

 Có k m theo công cụ để tổng hợp các thông số kết quả của ph p kiểm thử và phân tích dựa trên những tiêu chí:

o Sự thay đổi đường truyền

o Số lượng nút trung gian (khi ping giữa các nút)

o Tính tối ưu của đường đi

o Tỉ lệ thành công của các lệnh Ping giữa các nút

1.1.4 Tình hình nghiên cứu/phát triển của APE testbed

APE testbed được phát triển trong dự án APE project của Khoa Hệ thống Máy tính (Department of Computer Systems) thuộc đại học Uppsala, Thụy Điển với tài trợ từ Erricson [5]

APE testbed được chính thức phát hành 5 phiên bản từ 0.1 đến 0.5 trong giai đoạn từ 2001 – 2005

Năm 2002 các tác giả đã thử nghiệm thành công sử dụng APE testbed cho một hệ thống thực gồm 37 nút, và báo cáo điều này trong hội nghị WCNC 2002 [11]

Năm 2005, APE được sử dụng và đánh giá trong một luận văn của đại học Uppsala nghiên cứu các phương pháp đánh giá mạng Adhoc 12] Trong nghiên cứu

Trang 16

- Các driver Wifi mới

Cụ thể là driver ath9k của hãng Atheros và rt2800usb của Realtek

1.3 T tắt hư ng h u n ết u t ư

Tóm tắt phương pháp thực hiện luận văn:

- Nghiên cứu cấu trúc của APE Testbed

o Cấu trúc

o Cách hoạt động

o Các thành phần nào cần được port lên môi trường mới

- Tìm hiểu những phần nào của APE Testbed cần được cập nhật để hỗ trợ Linux kernel mới, và những phần nào không cần

- Nghiên cứu cấu trúc của Linux kernel mới và các driver Wireless ath9k

và rt2800usb

- Tiến hành port các phần đó

o Chứng minh bằng thực nghiệm

1.4 Ph vi gi i h n a t i

- Hệ điều hành: Linux (do hiện tại APE testbed chỉ hỗ trợ Linux)

- Cập nhật các driver: mục tiêu chính là ath9k và rt2800usb (các driver cũ trong APE testbed sẽ bị bỏ qua)

Trang 17

Chương 3: Đánh giá kết quả

Chương 4: Kết luận

Trang 18

9

CHƯƠNG 2 - THỰC HIỆN CẬP NHẬT

BỘ CÔNG CỤ APE TESTBED

2.1 Phân tích APE testbed

2.1.1 Cấu trúc của APE testbed

Gói APE testbed gồm 2 phần chính: APE binary distribution và APE source

code

 APE binary distribution: là gói APE đã được build và có thể sử dụng ngay

 APE source code: gói source code của APE, bao gồm

o /dist: chứa source code để build một Linux distribution hoàn chỉnh

(bằng buildroot, là một công cụ hỗ trợ build Linux)

H nh 2.1: Danh s h fi tr ng thư ist

o /doc: chứa tài liệu hướng dẫn chính thức của APE testbed dưới định

dạng TeX (có Makefile để chuyển thành dạng pdf và một số định dạng khác)

o /kernel: chứa mã nguồn các thành phần liên quan đến kernel, cụ thể

là:

 ape-config: config file chứa các config cần cho APE testbed

(có nhiều version cho Linux 2.4 – 2.6)

Trang 19

10

 orinoco-0.15rc2-kismet: driver cho các card Wifi ORiNOCO

 wlags49_cs-7.18-linux-2.6: driver cho các card Wifi

ORiNOCO dùng cổng PCI, cung cấp bởi nhà sản xuất

 patches: các patches cho kernel và các driver wifi để có thể sử

dụng APE testbed Trong đó chứa các thay đổi cần để APE testbed móc nối tới WiFi driver và lấy dữ liệu cần thiết (tạm gọi là các Driver hook)

H nh 2.2: Danh s h fi ư i thư rn

o /src: chứa mã nguồn của các thành phần còn lại của APE testbed

(không liên quan đến kernel)

 analysis: chứa các Analysis Tools, thực tế là các perl script có

tác dụng phân tích log xuất ra từ APE testbed

 apeview: một công cụ để xem kết quả phân tích log (từ Analysis Tools) dưới dạng đồ họa

 aodv-uu-0.9.1: một mã nguồn cho giao thức định tuyến AODV (Ad hoc On-Demand Distance Vector) trong MANET

 dsr-uu-0.1: một mã nguồn cho giao thức định tuyến DSR (Dynamic Source Routing) trong MANET

 mackill: một công cụ để chặn kết nối dựa vào địa chỉ MAC (cần patch tương ứng trong kernel để có thể sử dụng)

Trang 20

11

 runtime: Các công cụ hỗ trợ cho quá trình hoạt động của APE testbed, ví dụ nhƣ start_test thực hiện chạy APE scenario, spyd thực hiện việc thu thập dữ liệu …

 scenarios: các kịch bản cho APE testbed

 tools: các công cụ khác (thực ra hiện tại chỉ có một)

H nh 2.3: Danh s h fi ư i thư sr

2.1.2 Các thành phần cần được cập nhật

Dựa vào những thông tin trên, có thể đi đến kết luận những phần sau cần đƣợc cập nhật mới:

/dist: cập nhật buildroot mới và kernel Linux mới

/doc: chỉ cần cập nhật thông tin

/kernel: đây là phần quan trọng nhất cần đƣợc cập nhật, vì nó gắn liền

với Linux kernel cũ (2.4 và 2.6) nên không sử dụng đƣợc nữa

/src: các công cụ trong phần này phần lớn là cho user space, nên lẽ ra

không cần cập nhật gì Nhƣng trong đó có các mã nguồn giao thức định tuyến (aodv-uu, dsr-uu, madhoc) cần đƣợc cập nhật vì chúng là kernel module, cũng gắn với kernel

Trang 21

12

Ngoài ra, APE testbed còn hỗ trợ một số giao thức định tuyến khác là OLSR, LUNAR, TORA Các giao thức định tuyến này không được để k m với bộ mã nguồn APE, mà để sử dụng người dùng phải download từ nơi khác và thêm vào APE Các giao thức định tuyến ngoài này cũng cần được cập nhật

Trang 22

13

2.1.3 Phân tích Kernel patches

Nhƣ đã giới thiệu ở mục 3.1.1, mã nguồn APE về kernel có 4 phần:

o ape-config

o orinoco-0.15rc2-kismet

o wlags49_cs-7.18-linux-2.6

o patches

Trong đó 2 driver orinoco-0.15rc2-kismet và wlags49_cs-7.18-linux-2.6 chỉ

là reference driver, nên ta có thể loại bỏ

Thƣ mục patches là quan trọng nhất, chứa các patch files cho Linux kernel

để hỗ trợ APE Testbed

Trang 23

14

H nh 2.4: Các patch cho kernel

Trang 24

15

2.1.3.1 MacKill Công cụ này gồm 2 phần:

- /src/mackill/mackill.c: một kernel module, là phần chính của công cụ MacKill, nhận các MAC address từ người dùng thông qua một procfs

/proc/net/mackill

- /kernel/patches/mackill*.patch: p Linux kernel loại bỏ các gói có MAC address trùng với danh sách trong mackill kernel module

+ /* APE MAC-filter BEGIN */

+ if (mac_kill && (*mac_kill)(skb)) { + kfree_skb(skb);

/proc/net/mackill Nhận gói

Linux kernel + APE/kernel/patches/mackill*.patch

APE./src/mackill/mackill.c

H nh 2.5: C u tr a a i

Trang 25

16

+ /* Do superspy collection of statistics */

+#if (LINUX_VERSION_CODE >= VERSION(1,3,0))

+ char *srcaddr = skb->mac.raw + MAC_ADDR_SIZE;

2.1.3.2 Wireless driver hook

Phần này nghiên cứu về các thay đổi trong Wifi driver mà APE đã thực hiện

để lấy được thông tin cần thiết (tạm gọi là driver hook) Mục đích là để hiểu những

gì cần làm cho một Wifi driver mới

Do APE hỗ trợ một vài Wifi driver nên ta chỉ tìm hiểu một driver tiêu biểu

là wavelan2 (Ghi chú: WaveLAN là tên sản phẩm Wifi trước khi đổi tên thành ORiNOCO)

H nh 2.6: C u tr a riv r h

Trang 26

17

Trong mã nguồn trên, APE cần lấy ra 3 thông tin:

- MAC address: lấy từ skb buffer (tuy nhiên cấu trúc skb buffer nay đã thay đổi nên không còn chứa MAC address nữa)

+#if (LINUX_VERSION_CODE >= VERSION(1,3,0)) + char *srcaddr = skb->mac.raw + MAC_ADDR_SIZE;

+#else + char *srcaddr = skb->data + MAX_ADDR_SIZE;

+#endif

- stats[1] và stats[0], lấy từ hàm hcf_get_data(), tương ứng với mức nhiễu

và mức tín hiệu sóng Wifi

status = hcf_get_data(lp->hcfCtx, HFS_Q_INFO, stats, 2);

Đây là một hàm trong hcf library của Lucent, và không có mã nguồn Tuy nhiên theo một ghi chú trong header của driver thì hàm này sẽ trả về mức tín hiệu sóng và mức nhiễu (signal and noise level) với input lả HFS_Q_INFO

Trang 27

B ng 2.1: S s nh thông tin từ t i iệu APE t st v thự tế

Thông tin từ tài liệu Thực tế Các giao thức có s n

(trong bộ mã nguồn)

AODV-UU LUNAR

AODV-UU DSR-UU Madhoc AODV Các giao thức ngoài Madhoc AODV

Kernel AODV IMEP/TORA OLSR DSR

Trang 28

Để lấy MAC address của máy gửi, MacKill đọc skb, là một sk_buff struct

(http://www.linuxfoundation.org/collaborate/workgroups/networking/sk_buff, 2012) , sk_buff đây là một cấu trúc dữ liệu lớn chứa thông tin điều khiển cần thiết

để cho các gói

+ /* APE MAC-filter BEGIN */

+ if (mac_kill && (*mac_kill)(skb)) { + kfree_skb(skb);

/proc/net/mackill Nhận gói

Linux kernel + APE/kernel/patches/mackill*.patch

APE./src/mackill/mackill.c

H nh 2.7: C u tr a a i v h a i x ý

Trang 29

20

“All network-related queues and buffers in the kernel use a common data structure, struct sk_buff This is a large struct containing all the control information required for the packet (datagram, cell, whatever).”

Tuy nhiên, cấu trúc này đã bị thay đổi qua các lần cập nhật của Linux kernel

struct sk_buff { /* These two members must be first */ struct sk_buff *next;

struct sk_buff *prev;

sk_buff_data_t mac_header;

… atomic_t users;

unsigned int truesize;

};

struct sk_buff {

/* These two members must be first */

struct sk_buff * next; /* Next buffer */

struct sk_buff * prev; /* Previous */

struct sk_buff_head * list; /* List */

struct sock *sk; /* Socket */

struct timeval stamp; /* Time */

struct net_device *dev; /* Device */

/* Link layer header */

union

{

struct ethhdr *ethernet;

unsigned char *raw;

Trang 30

Ngoài ra, còn có một cách khác là thay thế hoàn toàn MacKill bằng một công

cụ khác có chức năng filter MAC address tương đương:

- iptables

- ipfirewall

Cuối cùng thì giải pháp dùng iptables được chọn, vì:

- Hỗ trợ rộng rãi trên mọi Linux kernel và distribution

- Không cần bận tâm về sự thay đổi trong Linux kernel, nên không cần cập nhật như MacKill

Ghi chú: Do iptables chỉ hỗ trợ IPv4, nên với IPv6 cần phải dùng ip6tables

Trang 31

22

2.2.2 Cập nhật Wireless driver hook

Mục tiêu của luận văn là hỗ trợ 2 driver Wireless lớn là ath9k và rt2800usb 2.2.2.1 Nguyên tắc chung

Nhƣ đã phân tích ở mục 3.1.3.2, APE testbed cần các thông tin sau từ driver (cho mỗi gói nhận đƣợc) qua /proc/net/superspy:

- MAC address của máy gửi

- Mức nhiễu (noise level)

- Mức tín hiệu (signal level)

- Ngoài ra thì còn có thông tin khác là số hiệu gói, và thời điểm gói tới, nhƣng các thông tin này có thể dễ dàng tính toán bằng phần mềm

Mục đích là để cho quá trình hoạt động, APE testbed sẽ lọc các thông tin này (dựa trên MAC address), để biết đƣợc khả năng truyền/nhận tín hiệu đến từng máy trong mạng, từ đó dự đoán khoảng cách đến các máy khác

2.2.2.2 ath9k

Đây là một driver cho các card WiFi hỗ trợ chuẩn 802.11b, 802.11g, và 802.11n sử dụng chipset Atheros, đƣợc phát triển bởi cộng động Linux

Tuy nhiên, ath9k phụ thuộc vào một số module khác:

Trong danh sách trên, ath9k gồm 3 module nhỏ:

Trang 32

H nh 2.9: Minh họa u tr a riv r ath9

(Nguồn: VipinM và Srikanth S, 2010)

“cfg80211 [12], mac80211 and ath9k are in kernel space and the applications for control and management are in the user space The user space application makes use of the nl80211 [13] calls to interact with cfg80211 which in turn communicates with mac80211 The controls are initiated from a user space application and are in turn transferred through system calls.”

Cấu trúc thƣ mục:

Driver ath9k nằm trong Linux kernel, ở vị trí drivers/net/wireless/ath/ath9k/

Ngày đăng: 17/12/2016, 23:49

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w