struktur NET_PACKET (packet.h)
Mewakili satu paket jaringan.
Sintaks
typedef struct _NET_PACKET {
UINT32 FragmentIndex;
UINT16 FragmentCount;
NET_PACKET_LAYOUT Layout;
UINT8 Ignore : 1;
UINT8 Scratch : 1;
UINT8 Reserved1 : 6;
} NET_PACKET;
Anggota
FragmentIndex
Indeks dalam cincin fragmen struktur NET_FRAGMENT pertama dalam payload paket ini.
FragmentCount
Jumlah struktur NET_FRAGMENT yang termasuk dalam paket ini.
Layout
Struktur NET_PACKET_LAYOUT .
Untuk mengirimkan antrean, jika tumpukan host telah mengaktifkan offload tugas yang menggunakan header protokol, menentukan offset baca-saja ke setiap bidang protokol. Misalnya, jika offload checksum TCP diaktifkan, anggota ini menentukan offset ke header TCP. Jika tidak, anggota ini kosong.
Untuk menerima antrean, jika tumpukan host telah mengaktifkan offload tugas yang menggunakan header protokol, atur bendera Layer2Type, Layer3Type, dan Layer4Type . Ketika tidak ada tugas offloads anggota ini kosong.
Ignore
Untuk menerima antrean, klien mengatur bidang ini untuk mencegah paket ditunjukkan ke host. Misalnya, jika perangkat keras mengalami kesalahan DMA saat menulis byte ke dalam ini buffer data untuk fragmen paket ini, klien dapat mengatur bidang ini untuk menghilangkan paket parsial.
Untuk mengirimkan antrean, bidang ini bersifat baca-saja. Jika diatur, itu menunjukkan bahwa klien tidak boleh mengirimkan paket.
Scratch
Nilai bidang bit yang dapat digunakan klien untuk tujuan apa pun. Saat NET_PACKET digunakan kembali, nilai ini diatur ulang ke nol.
Reserved1
Dicadangkan. Driver klien tidak boleh membaca atau menulis nilai ini.
Keterangan
Setiap struktur NET_PACKET mewakili satu bingkai jaringan dan berisi metadata dasar yang berlaku untuk semua paket, seperti tata letak pembingkaian. NET_PACKET berisi setidaknya satu NET_FRAGMENT yang menjelaskan lokasi dalam memori sistem tempat data paket berada.
Struktur NET_PACKET dapat menjadi elemen dalam struktur NET_RING .
Persyaratan
Persyaratan | Nilai |
---|---|
Versi KMDF minimum | 1.29 |
Versi UMDF minimum | 2.33 |
Header | packet.h |