← Documents Documentation/networking/device_drivers/ethernet/freescale/dpaa2/ethernet-driver.rst GitHub 원문 ↗

Linux 6.18.37 · Networking

DPAA2 Ethernet driver

DPAA2 Ethernet이 DPNI·DPBP·DPIO·DPCON 객체를 조합해 net device, 큐·채널 기반 데이터 경로, 버퍼 풀과 CPU별 트래픽 분산을 구성하는 방식을 설명합니다.

Source pathDocumentation/networking/device_drivers/ethernet/freescale/dpaa2/ethernet-driver.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

ethernet-driver.rst:1-186

DPAA2 Ethernet은 하나의 NIC 블록이 아니라 여러 MC 객체와 내부 큐를 조합하는 구조입니다. DPNI가 논리 네트워크 인터페이스를, DPBP가 버퍼 풀을, DPIO가 I/O portal을, DPCON이 CPU별 channel을 담당합니다. MC가 구성 제어를 맡고 실제 패킷은 DPIO와 frame queue를 통해 이동합니다.

네트워킹 구성 자원
자원역할
DPNI논리 네트워크 인터페이스
queue·channel프레임 저장·scheduling·CPU 분산
DPBPingress 데이터용 버퍼 풀
DPIOenqueue·dequeue와 portal 통신
MAC·PHY외부 물리 링크

DPAA2 Ethernet 기능에 참여하는 독립 하드웨어 자원입니다.

MC 제어 평면
DPAA2 Ethernet DriverDPNI·DPBP·DPCON APIMC hardware portalsDPAA2 objects

MC portal이 객체 API와 실제 하드웨어 자원을 연결합니다.

구성 인터페이스
Ethernet DriverDPBP APIMC portalDPBP
Ethernet DriverDPNI APIMC portalDPNI
Ethernet DriverDPCON APIMC portalDPCON

원문의 첫 번째 ASCII 도식을 객체별 API 경로로 다시 구성했습니다.

핵심 객체 역할
객체핵심 책임
DPNInet device의 논리 인터페이스
DPBP전용 하드웨어 버퍼 풀
DPIOI/O hardware portal 접근
DPCON큐 channel과 CPU별 traffic 분산
DPMACDPNI와 PHY 연결

각 Linux net device가 조합하는 DPAA2 객체입니다.

송수신 데이터 경로
Ethernet DriverTx enqueueDPIOegress queueTx confirmationCPU
ingress queuechannel notificationCPUdequeue requestDPIOEthernet Driver

원문의 두 번째 ASCII 도식에서 주요 프레임 흐름을 분리했습니다.

채널 알림 수명
한 channel의 여러 ingress queue알림 1회CPU dequeuechannel 처리명시적 rearm

알림은 큐가 아니라 channel 단위이며 처리 뒤 명시적으로 rearm합니다.

CPU별 큐 배치
구성규칙
Rx·Tx·confirmation queue각 CPU에 affinity 설정 가능
DPCON channel큐를 하나 이상 처리하는 CPU마다 하나
DPIO portalcore에 affinity를 두어 ingress 분산

DPCON과 CPU-affine DPIO가 ingress 트래픽을 분산합니다.

버퍼 풀 소유권
kernel buffer allocationEthernet Driver전용 DPBP seedingress frame data

각 인터페이스가 자신의 ingress 버퍼 풀을 독점합니다.

DPNI 링크 선택
Linux net deviceDPNIDPMACPHY
Linux net deviceDPNIinternal link다른 DPNI

원문의 세 번째 ASCII 도식을 외부 PHY와 내부 link 두 경우로 나눴습니다.

객체 생성 방법
시점방법
부팅MC가 Datapath Layout Binary(DPL)를 parsing
실행 중DPAA2 object API로 동적 생성

MC bus container에 필요한 객체를 추가하는 두 방법입니다.

기능과 제어 범위
기능지원제어
TCP·UDP checksum, IPv4/6RX·TXethtool로 독립 설정
unicast·multicast MAC filteringingress항상 활성
scatter-gatherRX·TXTX 설정 가능, RX 항상 활성
jumbo frame최대 10K bytes하드웨어 처리
5-tuple flow hashing고정 방식사용자 설정 없음
하드웨어·드라이버 통계`ethtool -S`조회

하드웨어 오프로딩 중 일부만 사용자 설정을 제공합니다.

고정 5-tuple 키
순서필드
1source IP
2destination IP
3IP protocol
4L4 source port
5L4 destination port

flow hashing이 사용하는 다섯 필드입니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2 .. include:: <isonum.txt>
3
4 ===============================
5 DPAA2 Ethernet driver
6 ===============================
7
8 :Copyright: |copy| 2017-2018 NXP
9
10 This file provides documentation for the Freescale DPAA2 Ethernet driver.
11
12 Supported Platforms
13 ===================
14 This driver provides networking support for Freescale DPAA2 SoCs, e.g.
15 LS2080A, LS2088A, LS1088A.
16
17
18 Architecture Overview
19 =====================
20 Unlike regular NICs, in the DPAA2 architecture there is no single hardware block
21 representing network interfaces; instead, several separate hardware resources
22 concur to provide the networking functionality:
23
24 - network interfaces
25 - queues, channels
26 - buffer pools
27 - MAC/PHY
28
29 All hardware resources are allocated and configured through the Management
30 Complex (MC) portals. MC abstracts most of these resources as DPAA2 objects
31 and exposes ABIs through which they can be configured and controlled. A few
32 hardware resources, like queues, do not have a corresponding MC object and
33 are treated as internal resources of other objects.
34
35 For a more detailed description of the DPAA2 architecture and its object
36 abstractions see
37 *Documentation/networking/device_drivers/ethernet/freescale/dpaa2/overview.rst*.
38
39 Each Linux net device is built on top of a Datapath Network Interface (DPNI)
40 object and uses Buffer Pools (DPBPs), I/O Portals (DPIOs) and Concentrators
41 (DPCONs).
42
43 Configuration interface::
44
45 -----------------------
46 | DPAA2 Ethernet Driver |
47 -----------------------
48 . . .
49 . . .
50 . . . . . . . . . . . .
51 . . .
52 . . .
53 ---------- ---------- -----------
54 | DPBP API | | DPNI API | | DPCON API |
55 ---------- ---------- -----------
56 . . . software
57 ======= . ========== . ============ . ===================
58 . . . hardware
59 ------------------------------------------
60 | MC hardware portals |
61 ------------------------------------------
62 . . .
63 . . .
64 ------ ------ -------
65 | DPBP | | DPNI | | DPCON |
66 ------ ------ -------
67
68 The DPNIs are network interfaces without a direct one-on-one mapping to PHYs.
69 DPBPs represent hardware buffer pools. Packet I/O is performed in the context
70 of DPCON objects, using DPIO portals for managing and communicating with the
71 hardware resources.
72
73 Datapath (I/O) interface::
74
75 -----------------------------------------------
76 | DPAA2 Ethernet Driver |
77 -----------------------------------------------
78 | ^ ^ | |
79 | | | | |
80 enqueue| dequeue| data | dequeue| seed |
81 (Tx) | (Rx, TxC)| avail.| request| buffers|
82 | | notify| | |
83 | | | | |
84 V | | V V
85 -----------------------------------------------
86 | DPIO Driver |
87 -----------------------------------------------
88 | | | | | software
89 | | | | | ================
90 | | | | | hardware
91 -----------------------------------------------
92 | I/O hardware portals |
93 -----------------------------------------------
94 | ^ ^ | |
95 | | | | |
96 | | | V |
97 V | ================ V
98 ---------------------- | -------------
99 queues ---------------------- | | Buffer pool |
100 ---------------------- | -------------
101 =======================
102 Channel
103
104 Datapath I/O (DPIO) portals provide enqueue and dequeue services, data
105 availability notifications and buffer pool management. DPIOs are shared between
106 all DPAA2 objects (and implicitly all DPAA2 kernel drivers) that work with data
107 frames, but must be affine to the CPUs for the purpose of traffic distribution.
108
109 Frames are transmitted and received through hardware frame queues, which can be
110 grouped in channels for the purpose of hardware scheduling. The Ethernet driver
111 enqueues TX frames on egress queues and after transmission is complete a TX
112 confirmation frame is sent back to the CPU.
113
114 When frames are available on ingress queues, a data availability notification
115 is sent to the CPU; notifications are raised per channel, so even if multiple
116 queues in the same channel have available frames, only one notification is sent.
117 After a channel fires a notification, is must be explicitly rearmed.
118
119 Each network interface can have multiple Rx, Tx and confirmation queues affined
120 to CPUs, and one channel (DPCON) for each CPU that services at least one queue.
121 DPCONs are used to distribute ingress traffic to different CPUs via the cores'
122 affine DPIOs.
123
124 The role of hardware buffer pools is storage of ingress frame data. Each network
125 interface has a privately owned buffer pool which it seeds with kernel allocated
126 buffers.
127
128
129 DPNIs are decoupled from PHYs; a DPNI can be connected to a PHY through a DPMAC
130 object or to another DPNI through an internal link, but the connection is
131 managed by MC and completely transparent to the Ethernet driver.
132
133 ::
134
135 --------- --------- ---------
136 | eth if1 | | eth if2 | | eth ifn |
137 --------- --------- ---------
138 . . .
139 . . .
140 . . .
141 ---------------------------
142 | DPAA2 Ethernet Driver |
143 ---------------------------
144 . . .
145 . . .
146 . . .
147 ------ ------ ------ -------
148 | DPNI | | DPNI | | DPNI | | DPMAC |----+
149 ------ ------ ------ ------- |
150 | | | | |
151 | | | | -----
152 =========== ================== | PHY |
153 -----
154
155 Creating a Network Interface
156 ============================
157 A net device is created for each DPNI object probed on the MC bus. Each DPNI has
158 a number of properties which determine the network interface configuration
159 options and associated hardware resources.
160
161 DPNI objects (and the other DPAA2 objects needed for a network interface) can be
162 added to a container on the MC bus in one of two ways: statically, through a
163 Datapath Layout Binary file (DPL) that is parsed by MC at boot time; or created
164 dynamically at runtime, via the DPAA2 objects APIs.
165
166
167 Features & Offloads
168 ===================
169 Hardware checksum offloading is supported for TCP and UDP over IPv4/6 frames.
170 The checksum offloads can be independently configured on RX and TX through
171 ethtool.
172
173 Hardware offload of unicast and multicast MAC filtering is supported on the
174 ingress path and permanently enabled.
175
176 Scatter-gather frames are supported on both RX and TX paths. On TX, SG support
177 is configurable via ethtool; on RX it is always enabled.
178
179 The DPAA2 hardware can process jumbo Ethernet frames of up to 10K bytes.
180
181 The Ethernet driver defines a static flow hashing scheme that distributes
182 traffic based on a 5-tuple key: src IP, dst IP, IP proto, L4 src port,
183 L4 dst port. No user configuration is supported for now.
184
185 Hardware specific statistics for the network interface as well as some
186 non-standard driver stats can be consulted through ethtool -S option.
187

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

지원 플랫폼과 DPAA2 네트워크 아키텍처

1-37

이 문서는 `GPL-2.0` 라이선스를 따르며 `isonum.txt`를 포함해 저작권 기호를 사용합니다. 저작권은 © 2017-2018 NXP에 있습니다.

DPAA2 Ethernet 드라이버

이 파일은 Freescale DPAA2 Ethernet 드라이버를 설명합니다.

지원 플랫폼

이 드라이버는 `LS2080A`, `LS2088A`, `LS1088A` 같은 Freescale DPAA2 SoC에 네트워킹 기능을 제공합니다.

아키텍처 개요

일반 NIC와 달리 DPAA2 아키텍처에는 네트워크 인터페이스 전체를 나타내는 단일 하드웨어 블록이 없습니다. 서로 분리된 여러 하드웨어 자원이 함께 네트워킹 기능을 구성합니다.

  • 네트워크 인터페이스
  • 큐와 채널
  • 버퍼 풀
  • MAC/PHY

모든 하드웨어 자원은 Management Complex(`MC`) portal을 통해 할당하고 구성합니다. MC는 대부분의 자원을 DPAA2 객체로 추상화하고, 이 객체를 구성하고 제어할 ABI를 노출합니다.

큐 같은 일부 하드웨어 자원에는 대응하는 MC 객체가 없습니다. 이런 자원은 다른 객체의 내부 자원으로 취급합니다.

DPAA2 아키텍처와 객체 추상화에 대한 자세한 설명은 `Documentation/networking/device_drivers/ethernet/freescale/dpaa2/overview.rst`를 참고하십시오.

.. SPDX-License-Identifier: GPL-2.0
.. include:: <isonum.txt>

===============================
DPAA2 Ethernet driver
===============================

:Copyright: |copy| 2017-2018 NXP

This file provides documentation for the Freescale DPAA2 Ethernet driver.

Supported Platforms
===================
This driver provides networking support for Freescale DPAA2 SoCs, e.g.
LS2080A, LS2088A, LS1088A.


Architecture Overview
=====================
Unlike regular NICs, in the DPAA2 architecture there is no single hardware block
representing network interfaces; instead, several separate hardware resources
concur to provide the networking functionality:

- network interfaces
- queues, channels
- buffer pools
- MAC/PHY

All hardware resources are allocated and configured through the Management
Complex (MC) portals. MC abstracts most of these resources as DPAA2 objects
and exposes ABIs through which they can be configured and controlled. A few
hardware resources, like queues, do not have a corresponding MC object and
are treated as internal resources of other objects.

For a more detailed description of the DPAA2 architecture and its object
abstractions see
*Documentation/networking/device_drivers/ethernet/freescale/dpaa2/overview.rst*.

net device 구성 인터페이스와 DPAA2 객체

38-72

각 Linux net device는 Datapath Network Interface(`DPNI`) 객체를 기반으로 구성되며 Buffer Pool(`DPBP`), I/O Portal(`DPIO`), Concentrator(`DPCON`) 객체를 사용합니다.

구성 인터페이스

MC 기반 구성 경로
DPAA2 Ethernet DriverDPBP APIMC hardware portalsDPBP
DPAA2 Ethernet DriverDPNI APIMC hardware portalsDPNI
DPAA2 Ethernet DriverDPCON APIMC hardware portalsDPCON

원문의 구성 인터페이스 ASCII 도식을 software API와 MC hardware portal의 경계로 다시 구성했습니다.

DPNI는 PHY와 직접 일대일로 대응하지 않는 네트워크 인터페이스입니다. DPBP는 하드웨어 버퍼 풀을 나타냅니다.

패킷 I/O는 DPCON 객체의 context에서 수행하며, 하드웨어 자원을 관리하고 통신할 때 DPIO portal을 사용합니다.


Each Linux net device is built on top of a Datapath Network Interface (DPNI)
object and uses Buffer Pools (DPBPs), I/O Portals (DPIOs) and Concentrators
(DPCONs).

Configuration interface::

                 -----------------------
                | DPAA2 Ethernet Driver |
                 -----------------------
                     .      .      .
                     .      .      .
             . . . . .      .      . . . . . .
             .              .                .
             .              .                .
         ----------     ----------      -----------
        | DPBP API |   | DPNI API |    | DPCON API |
         ----------     ----------      -----------
             .              .                .             software
    =======  .  ==========  .  ============  .  ===================
             .              .                .             hardware
         ------------------------------------------
        |            MC hardware portals           |
         ------------------------------------------
             .              .                .
             .              .                .
          ------         ------            -------
         | DPBP |       | DPNI |          | DPCON |
          ------         ------            -------

The DPNIs are network interfaces without a direct one-on-one mapping to PHYs.
DPBPs represent hardware buffer pools. Packet I/O is performed in the context
of DPCON objects, using DPIO portals for managing and communicating with the
hardware resources.

데이터 경로, 큐·채널 알림과 버퍼 풀

73-128

데이터 경로(I/O) 인터페이스

DPAA2 Ethernet 데이터 경로
DPAA2 Ethernet Driver`enqueue (Tx)`DPIO DriverI/O hardware portalsegress queue
ingress·Tx confirmation queuesI/O hardware portalsDPIO Driver`dequeue (Rx, TxC)`DPAA2 Ethernet Driver
queue channel`data available notification`DPIO DriverDPAA2 Ethernet Driver`dequeue request`
DPAA2 Ethernet Driver`seed buffers`DPIO DriverI/O hardware portalsBuffer pool

원문의 datapath ASCII 도식을 송신, 수신, 알림, 버퍼 보충 흐름으로 다시 구성했습니다.

Datapath I/O(`DPIO`) portal은 enqueue·dequeue 서비스, 데이터 가용성 알림, 버퍼 풀 관리를 제공합니다.

DPIO는 데이터 프레임을 다루는 모든 DPAA2 객체, 따라서 모든 DPAA2 커널 드라이버가 공유합니다. 다만 트래픽 분산을 위해 각 DPIO에는 CPU affinity를 설정해야 합니다.

프레임은 하드웨어 frame queue를 통해 송수신합니다. 하드웨어 scheduling을 위해 여러 큐를 channel로 묶을 수 있습니다.

Ethernet 드라이버는 송신 프레임을 egress queue에 enqueue합니다. 송신이 끝나면 Tx confirmation frame이 CPU로 돌아옵니다.

ingress queue에 프레임이 도착하면 CPU에 데이터 가용성 알림을 보냅니다. 알림은 channel 단위로 발생하므로 같은 channel의 여러 큐에 프레임이 있어도 알림은 하나만 전송됩니다.

channel이 알림을 한 번 발생시킨 뒤에는 반드시 명시적으로 rearm해야 합니다.

각 네트워크 인터페이스는 CPU에 affinity가 설정된 여러 Rx, Tx, confirmation queue를 가질 수 있습니다. 하나 이상의 큐를 처리하는 CPU마다 channel, 즉 DPCON 하나를 둡니다.

DPCON은 각 core에 affinity가 설정된 DPIO를 통해 ingress 트래픽을 여러 CPU로 분산합니다.

하드웨어 버퍼 풀은 ingress frame 데이터를 저장합니다. 각 네트워크 인터페이스는 자신이 단독 소유하는 버퍼 풀을 하나 가지며, 커널이 할당한 버퍼로 그 풀을 채웁니다.

Datapath (I/O) interface::

         -----------------------------------------------
        |           DPAA2 Ethernet Driver               |
         -----------------------------------------------
          |          ^        ^         |            |
          |          |        |         |            |
   enqueue|   dequeue|   data |  dequeue|       seed |
    (Tx)  | (Rx, TxC)|  avail.|  request|     buffers|
          |          |  notify|         |            |
          |          |        |         |            |
          V          |        |         V            V
         -----------------------------------------------
        |                 DPIO Driver                   |
         -----------------------------------------------
          |          |        |         |            |          software
          |          |        |         |            |  ================
          |          |        |         |            |          hardware
         -----------------------------------------------
        |               I/O hardware portals            |
         -----------------------------------------------
          |          ^        ^         |            |
          |          |        |         |            |
          |          |        |         V            |
          V          |    ================           V
        ----------------------           |      -------------
 queues  ----------------------          |     | Buffer pool |
          ----------------------         |      -------------
                   =======================
                                Channel

Datapath I/O (DPIO) portals provide enqueue and dequeue services, data
availability notifications and buffer pool management. DPIOs are shared between
all DPAA2 objects (and implicitly all DPAA2 kernel drivers) that work with data
frames, but must be affine to the CPUs for the purpose of traffic distribution.

Frames are transmitted and received through hardware frame queues, which can be
grouped in channels for the purpose of hardware scheduling. The Ethernet driver
enqueues TX frames on egress queues and after transmission is complete a TX
confirmation frame is sent back to the CPU.

When frames are available on ingress queues, a data availability notification
is sent to the CPU; notifications are raised per channel, so even if multiple
queues in the same channel have available frames, only one notification is sent.
After a channel fires a notification, is must be explicitly rearmed.

Each network interface can have multiple Rx, Tx and confirmation queues affined
to CPUs, and one channel (DPCON) for each CPU that services at least one queue.
DPCONs are used to distribute ingress traffic to different CPUs via the cores'
affine DPIOs.

The role of hardware buffer pools is storage of ingress frame data. Each network
interface has a privately owned buffer pool which it seeds with kernel allocated
buffers.

DPNI 연결 구조와 네트워크 인터페이스 생성

129-166

DPNI와 PHY는 분리되어 있습니다. DPNI는 DPMAC 객체를 통해 PHY에 연결할 수도 있고 내부 link를 통해 다른 DPNI에 연결할 수도 있습니다.

이 연결은 MC가 관리하며 Ethernet 드라이버에는 완전히 투명합니다.

DPNI 연결 토폴로지
`eth if1`DPAA2 Ethernet DriverDPNIinternal linkDPNIDPAA2 Ethernet Driver`eth if2`
`eth ifn`DPAA2 Ethernet DriverDPNIDPMACPHY

원문의 세 번째 ASCII 도식을 Linux 인터페이스와 DPNI·DPMAC·PHY 연결로 다시 구성했습니다.

네트워크 인터페이스 생성

MC bus에서 probe한 DPNI 객체마다 net device 하나를 생성합니다. 각 DPNI에는 네트워크 인터페이스의 구성 옵션과 연관 하드웨어 자원을 결정하는 여러 속성이 있습니다.

DPNI 객체와 네트워크 인터페이스에 필요한 다른 DPAA2 객체는 두 방법 중 하나로 MC bus의 container에 추가할 수 있습니다.

  • 정적 생성: 부팅할 때 MC가 parsing하는 Datapath Layout Binary(`DPL`) 파일 사용
  • 동적 생성: 실행 중 DPAA2 object API 사용
DPNIs are decoupled from PHYs; a DPNI can be connected to a PHY through a DPMAC
object or to another DPNI through an internal link, but the connection is
managed by MC and completely transparent to the Ethernet driver.

::

     ---------     ---------     ---------
    | eth if1 |   | eth if2 |   | eth ifn |
     ---------     ---------     ---------
          .           .          .
          .           .          .
          .           .          .
         ---------------------------
        |   DPAA2 Ethernet Driver   |
         ---------------------------
          .           .          .
          .           .          .
          .           .          .
       ------      ------      ------            -------
      | DPNI |    | DPNI |    | DPNI |          | DPMAC |----+
       ------      ------      ------            -------     |
         |           |           |                  |        |
         |           |           |                  |      -----
          ===========             ==================      | PHY |
                                                           -----

Creating a Network Interface
============================
A net device is created for each DPNI object probed on the MC bus. Each DPNI has
a number of properties which determine the network interface configuration
options and associated hardware resources.

DPNI objects (and the other DPAA2 objects needed for a network interface) can be
added to a container on the MC bus in one of two ways: statically, through a
Datapath Layout Binary file (DPL) that is parsed by MC at boot time; or created
dynamically at runtime, via the DPAA2 objects APIs.

기능, 오프로딩과 통계

167-186

기능과 오프로딩

IPv4/IPv6의 TCP와 UDP 프레임에 대해 하드웨어 checksum offloading을 지원합니다. RX와 TX의 checksum offload는 ethtool로 각각 독립적으로 구성할 수 있습니다.

ingress 경로에서 unicast와 multicast MAC filtering의 하드웨어 offload를 지원하며 이 기능은 항상 활성화됩니다.

RX와 TX 경로 모두 scatter-gather frame을 지원합니다. TX의 SG 지원은 ethtool로 구성할 수 있고 RX에서는 항상 활성화됩니다.

DPAA2 하드웨어는 최대 10K bytes의 jumbo Ethernet frame을 처리할 수 있습니다.

Ethernet 드라이버는 출발지 IP, 목적지 IP, IP protocol, L4 출발지 port, L4 목적지 port로 구성된 5-tuple key를 이용하는 고정 flow hashing 방식을 정의합니다. 현재 사용자 구성은 지원하지 않습니다.

네트워크 인터페이스의 하드웨어별 통계와 일부 비표준 드라이버 통계는 `ethtool -S` 옵션으로 확인할 수 있습니다.

Features & Offloads
===================
Hardware checksum offloading is supported for TCP and UDP over IPv4/6 frames.
The checksum offloads can be independently configured on RX and TX through
ethtool.

Hardware offload of unicast and multicast MAC filtering is supported on the
ingress path and permanently enabled.

Scatter-gather frames are supported on both RX and TX paths. On TX, SG support
is configurable via ethtool; on RX it is always enabled.

The DPAA2 hardware can process jumbo Ethernet frames of up to 10K bytes.

The Ethernet driver defines a static flow hashing scheme that distributes
traffic based on a 5-tuple key: src IP, dst IP, IP proto, L4 src port,
L4 dst port. No user configuration is supported for now.

Hardware specific statistics for the network interface as well as some
non-standard driver stats can be consulted through ethtool -S option.