LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Kernel
User Name
Password
Linux - Kernel This forum is for all discussion relating to the Linux kernel.

Notices


Reply
  Search this Thread
Old 10-16-2014, 08:25 AM   #1
bdubey
LQ Newbie
 
Registered: Oct 2014
Posts: 1

Rep: Reputation: Disabled
Fundamental difference between a Ethernet (networking) driver and a pcie driver


May be its a dumb question but can somebody explain the fundamental difference when you say a pcie or a Ethernet drivers. As such there are many networking cards with pcie interface.
LDD3 has two seperate chapters for pcie and networking driver. A networking hardware can have a pcie interface.
onsider below two hardwarwe example and please help me understand how a driver developer has to differ in his approach in both cases for writing corresponding driver.
  1. A typical pcie Lan card which helps the host to connect to the network
  2. Some pcie card which has complete TCP/UDP stack on the device itself and need to pump only payload from the incoming packets.


Please ask questions if not clear. Thanks in advance

Last edited by bdubey; 10-16-2014 at 08:42 AM.
 
Old 10-16-2014, 09:32 AM   #2
markhahn
LQ Newbie
 
Registered: Jan 2011
Posts: 16

Rep: Reputation: 4
PCI is just an interface to connect IO devices: how the host can enumerate them, some standard registers, standard mechanisms for access to memory, etc. Any particular IO device will implement a set of standard PCI registers, along with some to do its actual purpose. A network interface may have a set of registers for writing to a transmit ring, for instance, which contains descriptors for packets to be transmitted. (And presumably a similar ring for received packets.) Disk interfaces are often fairly similar in structure.

TOE cards that you mention will contain a complete embedded system (CPU, small OS, etc). They still probably interface to the host using a mechanism like tx/rx rings - the main difference is that the TOE card may have offloaded checksumming, reassembly, etc. (Maybe even protocol stuff like acks.) These cards never made that much sense, since embedded processors are quite power-limited and usually slow, and embedded memory is limited, and it's a disadvantage to have this foreign *system* pretending to just do networking. How quickly does its firmware get updated? (It's not as if a TOE card actually handles all the networking - the host still needs to understand its IP, neighbors, etc.)

A better approach is for the card to simply provide some simple hardware assists to reduce effort on the part of the host. For instance, checksumming - most non-entry-level NICs do this today, and it works great (fast, efficient, well-supported). (I wouldn't be surprised, though, if simply rethinking the packet interface (rings, etc) wouldn't also make a big difference. Consider that NVME is mostly just a totally hot-rodded version of AHCI (with special attention paid to the register overheads of each operation, as well as queue sizes.) Adapting the NVME-style interface for a high-performance/low-overhead NIC seems obvious...)
 
1 members found this post helpful.
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
PCIe re-enumation in linux driver question (pcie hotplug doesn't work) blavo Programming 5 08-02-2012 02:12 PM
Linux PCIE and PCI device driver difference? ningzhanghnu Linux - General 2 03-04-2012 10:30 AM
Erratic throughput on NetLink BCM5784M Gigabit Ethernet PCIe with tg3 driver brendan_p Linux - Networking 4 12-07-2009 07:59 AM
What is the Linux difference between PCIE and PCI device driver? jbreaka4lyfe Linux - General 0 06-04-2008 02:54 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Kernel

All times are GMT -5. The time now is 08:55 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration