mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1 iQEcBAABAgAGBQJkCvgFAAoJEO8Ells5jWIRHiUH/jhydpJHIqnAPxHQAwGtmyhb 9Z52UOzW5V6KxfZJ+bQ4RPFkS2UwcxmeadPHY4zvvJTVBLAgG3QVgP4igj8CXKCI xRnwMgTNeu655kZQ5P/elTwdBTCJFODk7Egg/bH3H1ZiUhXBhVRhK7q/wMgtlZkZ Kexo6txCK4d941RNzEh45ZaGhdELE+B+D7cRuQgBs/DXZtJpsyEzBbP8KYSMHuER AXfWo0YIBYj7X3ek9D6j0pbOkB61vqtYd7W6xV4iDrJCcFBIOspJbbBb1tGCHola AXo5/OhRmiQnp/c/HTbJIDbrj0sq/r7LxYK4zY1x7UPbewHS9R+wz+FfqSmoBF0= =056y -----END PGP SIGNATURE----- Merge tag 'net-pull-request' of https://github.com/jasowang/qemu into staging # -----BEGIN PGP SIGNATURE----- # Version: GnuPG v1 # # iQEcBAABAgAGBQJkCvgFAAoJEO8Ells5jWIRHiUH/jhydpJHIqnAPxHQAwGtmyhb # 9Z52UOzW5V6KxfZJ+bQ4RPFkS2UwcxmeadPHY4zvvJTVBLAgG3QVgP4igj8CXKCI # xRnwMgTNeu655kZQ5P/elTwdBTCJFODk7Egg/bH3H1ZiUhXBhVRhK7q/wMgtlZkZ # Kexo6txCK4d941RNzEh45ZaGhdELE+B+D7cRuQgBs/DXZtJpsyEzBbP8KYSMHuER # AXfWo0YIBYj7X3ek9D6j0pbOkB61vqtYd7W6xV4iDrJCcFBIOspJbbBb1tGCHola # AXo5/OhRmiQnp/c/HTbJIDbrj0sq/r7LxYK4zY1x7UPbewHS9R+wz+FfqSmoBF0= # =056y # -----END PGP SIGNATURE----- # gpg: Signature made Fri 10 Mar 2023 09:27:33 GMT # gpg: using RSA key EF04965B398D6211 # gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211 * tag 'net-pull-request' of https://github.com/jasowang/qemu: (44 commits) ebpf: fix compatibility with libbpf 1.0+ docs/system/devices/igb: Add igb documentation tests/avocado: Add igb test igb: Introduce qtest for igb device tests/qtest/libqos/e1000e: Export macreg functions tests/qtest/e1000e-test: Fabricate ethernet header Intrdocue igb device emulation e1000: Split header files pcie: Introduce pcie_sriov_num_vfs net/eth: Introduce EthL4HdrProto e1000e: Implement system clock net/eth: Report if headers are actually present e1000e: Count CRC in Tx statistics e1000: Count CRC in Tx statistics e1000e: Combine rx traces MAINTAINERS: Add e1000e test files MAINTAINERS: Add Akihiko Odaki as a e1000e reviewer e1000e: Do not assert when MSI-X is disabled later hw/net/net_tx_pkt: Check the payload length hw/net/net_tx_pkt: Implement TCP segmentation ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
7284d53f6f
53 changed files with 9775 additions and 2307 deletions
|
@ -55,6 +55,7 @@
|
|||
#define MII_BMCR_CTST (1 << 7) /* Collision test */
|
||||
#define MII_BMCR_SPEED1000 (1 << 6) /* MSB of Speed (1000) */
|
||||
|
||||
#define MII_BMSR_100T4 (1 << 15) /* Can do 100mbps T4 */
|
||||
#define MII_BMSR_100TX_FD (1 << 14) /* Can do 100mbps, full-duplex */
|
||||
#define MII_BMSR_100TX_HD (1 << 13) /* Can do 100mbps, half-duplex */
|
||||
#define MII_BMSR_10T_FD (1 << 12) /* Can do 10mbps, full-duplex */
|
||||
|
@ -81,20 +82,31 @@
|
|||
#define MII_ANLPAR_ACK (1 << 14)
|
||||
#define MII_ANLPAR_PAUSEASY (1 << 11) /* can pause asymmetrically */
|
||||
#define MII_ANLPAR_PAUSE (1 << 10) /* can pause */
|
||||
#define MII_ANLPAR_T4 (1 << 9)
|
||||
#define MII_ANLPAR_TXFD (1 << 8)
|
||||
#define MII_ANLPAR_TX (1 << 7)
|
||||
#define MII_ANLPAR_10FD (1 << 6)
|
||||
#define MII_ANLPAR_10 (1 << 5)
|
||||
#define MII_ANLPAR_CSMACD (1 << 0)
|
||||
|
||||
#define MII_ANER_NWAY (1 << 0) /* Can do N-way auto-nego */
|
||||
#define MII_ANER_NP (1 << 2) /* Next Page Able */
|
||||
#define MII_ANER_NWAY (1 << 0) /* Can do N-way auto-nego */
|
||||
|
||||
#define MII_ANNP_MP (1 << 13) /* Message Page */
|
||||
|
||||
#define MII_CTRL1000_MASTER (1 << 11) /* MASTER-SLAVE Manual Configuration Value */
|
||||
#define MII_CTRL1000_PORT (1 << 10) /* T2_Repeater/DTE bit */
|
||||
#define MII_CTRL1000_FULL (1 << 9) /* 1000BASE-T full duplex */
|
||||
#define MII_CTRL1000_HALF (1 << 8) /* 1000BASE-T half duplex */
|
||||
|
||||
#define MII_STAT1000_LOK (1 << 13) /* Local Receiver Status */
|
||||
#define MII_STAT1000_ROK (1 << 12) /* Remote Receiver Status */
|
||||
#define MII_STAT1000_FULL (1 << 11) /* 1000BASE-T full duplex */
|
||||
#define MII_STAT1000_HALF (1 << 10) /* 1000BASE-T half duplex */
|
||||
|
||||
#define MII_EXTSTAT_1000T_FD (1 << 13) /* 1000BASE-T Full Duplex */
|
||||
#define MII_EXTSTAT_1000T_HD (1 << 12) /* 1000BASE-T Half Duplex */
|
||||
|
||||
/* List of vendor identifiers */
|
||||
/* RealTek 8201 */
|
||||
#define RTL8201CP_PHYID1 0x0000
|
||||
|
|
|
@ -76,4 +76,7 @@ PCIDevice *pcie_sriov_get_pf(PCIDevice *dev);
|
|||
*/
|
||||
PCIDevice *pcie_sriov_get_vf_at_index(PCIDevice *dev, int n);
|
||||
|
||||
/* Returns the current number of virtual functions. */
|
||||
uint16_t pcie_sriov_num_vfs(PCIDevice *dev);
|
||||
|
||||
#endif /* QEMU_PCIE_SRIOV_H */
|
||||
|
|
|
@ -381,18 +381,24 @@ typedef struct eth_ip4_hdr_info_st {
|
|||
bool fragment;
|
||||
} eth_ip4_hdr_info;
|
||||
|
||||
typedef enum EthL4HdrProto {
|
||||
ETH_L4_HDR_PROTO_INVALID,
|
||||
ETH_L4_HDR_PROTO_TCP,
|
||||
ETH_L4_HDR_PROTO_UDP
|
||||
} EthL4HdrProto;
|
||||
|
||||
typedef struct eth_l4_hdr_info_st {
|
||||
union {
|
||||
struct tcp_header tcp;
|
||||
struct udp_header udp;
|
||||
} hdr;
|
||||
|
||||
EthL4HdrProto proto;
|
||||
bool has_tcp_data;
|
||||
} eth_l4_hdr_info;
|
||||
|
||||
void eth_get_protocols(const struct iovec *iov, int iovcnt,
|
||||
bool *isip4, bool *isip6,
|
||||
bool *isudp, bool *istcp,
|
||||
bool *hasip4, bool *hasip6,
|
||||
size_t *l3hdr_off,
|
||||
size_t *l4hdr_off,
|
||||
size_t *l5hdr_off,
|
||||
|
@ -400,11 +406,6 @@ void eth_get_protocols(const struct iovec *iov, int iovcnt,
|
|||
eth_ip4_hdr_info *ip4hdr_info,
|
||||
eth_l4_hdr_info *l4hdr_info);
|
||||
|
||||
void eth_setup_ip4_fragmentation(const void *l2hdr, size_t l2hdr_len,
|
||||
void *l3hdr, size_t l3hdr_len,
|
||||
size_t l3payload_len,
|
||||
size_t frag_offset, bool more_frags);
|
||||
|
||||
void
|
||||
eth_fix_ip4_checksum(void *l3hdr, size_t l3hdr_len);
|
||||
|
||||
|
|
|
@ -56,8 +56,10 @@ typedef RxFilterInfo *(QueryRxFilter)(NetClientState *);
|
|||
typedef bool (HasUfo)(NetClientState *);
|
||||
typedef bool (HasVnetHdr)(NetClientState *);
|
||||
typedef bool (HasVnetHdrLen)(NetClientState *, int);
|
||||
typedef bool (GetUsingVnetHdr)(NetClientState *);
|
||||
typedef void (UsingVnetHdr)(NetClientState *, bool);
|
||||
typedef void (SetOffload)(NetClientState *, int, int, int, int, int);
|
||||
typedef int (GetVnetHdrLen)(NetClientState *);
|
||||
typedef void (SetVnetHdrLen)(NetClientState *, int);
|
||||
typedef int (SetVnetLE)(NetClientState *, bool);
|
||||
typedef int (SetVnetBE)(NetClientState *, bool);
|
||||
|
@ -84,8 +86,10 @@ typedef struct NetClientInfo {
|
|||
HasUfo *has_ufo;
|
||||
HasVnetHdr *has_vnet_hdr;
|
||||
HasVnetHdrLen *has_vnet_hdr_len;
|
||||
GetUsingVnetHdr *get_using_vnet_hdr;
|
||||
UsingVnetHdr *using_vnet_hdr;
|
||||
SetOffload *set_offload;
|
||||
GetVnetHdrLen *get_vnet_hdr_len;
|
||||
SetVnetHdrLen *set_vnet_hdr_len;
|
||||
SetVnetLE *set_vnet_le;
|
||||
SetVnetBE *set_vnet_be;
|
||||
|
@ -185,9 +189,11 @@ void qemu_format_nic_info_str(NetClientState *nc, uint8_t macaddr[6]);
|
|||
bool qemu_has_ufo(NetClientState *nc);
|
||||
bool qemu_has_vnet_hdr(NetClientState *nc);
|
||||
bool qemu_has_vnet_hdr_len(NetClientState *nc, int len);
|
||||
bool qemu_get_using_vnet_hdr(NetClientState *nc);
|
||||
void qemu_using_vnet_hdr(NetClientState *nc, bool enable);
|
||||
void qemu_set_offload(NetClientState *nc, int csum, int tso4, int tso6,
|
||||
int ecn, int ufo);
|
||||
int qemu_get_vnet_hdr_len(NetClientState *nc);
|
||||
void qemu_set_vnet_hdr_len(NetClientState *nc, int len);
|
||||
int qemu_set_vnet_le(NetClientState *nc, bool is_le);
|
||||
int qemu_set_vnet_be(NetClientState *nc, bool is_be);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue