Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  fbnic_netdev.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) Meta Platforms, Inc. and affiliates. */

#ifndef _FBNIC_NETDEV_H_
#define _FBNIC_NETDEV_H_

#include <linux/phylink.h>
#include <linux/types.h>

#include "fbnic_csr.h"
#include "fbnic_rpc.h"
#include "fbnic_txrx.h"

#define FBNIC_MAX_NAPI_VECTORS  128u
#define FBNIC_MIN_RXD_PER_FRAME  2

/* Natively supported tunnel GSO features (not thru GSO_PARTIAL) */
#define FBNIC_TUN_GSO_FEATURES  NETIF_F_GSO_IPXIP6

struct fbnic_net {
 struct fbnic_ring *tx[FBNIC_MAX_TXQS];
 struct fbnic_ring *rx[FBNIC_MAX_RXQS];

 struct fbnic_napi_vector *napi[FBNIC_MAX_NAPI_VECTORS];

 struct net_device *netdev;
 struct fbnic_dev *fbd;

 u32 txq_size;
 u32 hpq_size;
 u32 ppq_size;
 u32 rcq_size;

 u16 rx_usecs;
 u16 tx_usecs;

 u32 rx_max_frames;

 u16 num_napi;

 struct phylink *phylink;
 struct phylink_config phylink_config;
 struct phylink_pcs phylink_pcs;

 u8 aui;
 u8 fec;

 /* Cached top bits of the HW time counter for 40b -> 64b conversion */
 u32 time_high;
 /* Protect readers of @time_offset, writers take @time_lock. */
 struct u64_stats_sync time_seq;
 /* Offset in ns between free running NIC PHC and time set via PTP
 * clock callbacks
 */

 s64 time_offset;

 u16 num_tx_queues;
 u16 num_rx_queues;

 u8 indir_tbl[FBNIC_RPC_RSS_TBL_COUNT][FBNIC_RPC_RSS_TBL_SIZE];
 u32 rss_key[FBNIC_RPC_RSS_KEY_DWORD_LEN];
 u32 rss_flow_hash[FBNIC_NUM_HASH_OPT];

 /* Storage for stats after ring destruction */
 struct fbnic_queue_stats tx_stats;
 struct fbnic_queue_stats rx_stats;
 u64 link_down_events;

 /* Time stamping filter config */
 struct kernel_hwtstamp_config hwtstamp_config;
};

int __fbnic_open(struct fbnic_net *fbn);
void fbnic_up(struct fbnic_net *fbn);
void fbnic_down(struct fbnic_net *fbn);
void fbnic_down_noidle(struct fbnic_net *fbn);

struct net_device *fbnic_netdev_alloc(struct fbnic_dev *fbd);
void fbnic_netdev_free(struct fbnic_dev *fbd);
int fbnic_netdev_register(struct net_device *netdev);
void fbnic_netdev_unregister(struct net_device *netdev);
void fbnic_reset_queues(struct fbnic_net *fbn,
   unsigned int tx, unsigned int rx);

void fbnic_set_ethtool_ops(struct net_device *dev);

int fbnic_ptp_setup(struct fbnic_dev *fbd);
void fbnic_ptp_destroy(struct fbnic_dev *fbd);
void fbnic_time_init(struct fbnic_net *fbn);
int fbnic_time_start(struct fbnic_net *fbn);
void fbnic_time_stop(struct fbnic_net *fbn);

void __fbnic_set_rx_mode(struct net_device *netdev);
void fbnic_clear_rx_mode(struct net_device *netdev);

void fbnic_phylink_get_pauseparam(struct net_device *netdev,
      struct ethtool_pauseparam *pause);
int fbnic_phylink_set_pauseparam(struct net_device *netdev,
     struct ethtool_pauseparam *pause);
int fbnic_phylink_ethtool_ksettings_get(struct net_device *netdev,
     struct ethtool_link_ksettings *cmd);
int fbnic_phylink_get_fecparam(struct net_device *netdev,
          struct ethtool_fecparam *fecparam);
int fbnic_phylink_init(struct net_device *netdev);
#endif /* _FBNIC_NETDEV_H_ */

Messung V0.5
C=92 H=100 G=95

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge