MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ionic_lif_start

Function ionic_lif_start

dpdk/drivers/net/ionic/ionic_lif.c:1921–1973  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1919}
1920
1921int
1922ionic_lif_start(struct ionic_lif *lif)
1923{
1924 uint32_t rx_mode;
1925 uint32_t i;
1926 int err;
1927
1928 err = ionic_lif_rss_setup(lif);
1929 if (err)
1930 return err;
1931
1932 if (!lif->rx_mode) {
1933 IONIC_PRINT(DEBUG, "Setting RX mode on %s",
1934 lif->name);
1935
1936 rx_mode = IONIC_RX_MODE_F_UNICAST;
1937 rx_mode |= IONIC_RX_MODE_F_MULTICAST;
1938 rx_mode |= IONIC_RX_MODE_F_BROADCAST;
1939
1940 ionic_set_rx_mode(lif, rx_mode);
1941 }
1942
1943 IONIC_PRINT(DEBUG, "Starting %u RX queues and %u TX queues "
1944 "on port %u",
1945 lif->nrxqcqs, lif->ntxqcqs, lif->port_id);
1946
1947 for (i = 0; i < lif->nrxqcqs; i++) {
1948 struct ionic_rx_qcq *rxq = lif->rxqcqs[i];
1949 if (!(rxq->flags & IONIC_QCQ_F_DEFERRED)) {
1950 err = ionic_dev_rx_queue_start(lif->eth_dev, i);
1951
1952 if (err)
1953 return err;
1954 }
1955 }
1956
1957 for (i = 0; i < lif->ntxqcqs; i++) {
1958 struct ionic_tx_qcq *txq = lif->txqcqs[i];
1959 if (!(txq->flags & IONIC_QCQ_F_DEFERRED)) {
1960 err = ionic_dev_tx_queue_start(lif->eth_dev, i);
1961
1962 if (err)
1963 return err;
1964 }
1965 }
1966
1967 /* Carrier ON here */
1968 lif->state |= IONIC_LIF_F_UP;
1969
1970 ionic_link_status_check(lif);
1971
1972 return 0;
1973}
1974
1975int
1976ionic_lif_identify(struct ionic_adapter *adapter)

Callers 2

ionic_dev_set_link_upFunction · 0.85
ionic_dev_startFunction · 0.85

Calls 5

ionic_lif_rss_setupFunction · 0.85
ionic_set_rx_modeFunction · 0.85
ionic_dev_rx_queue_startFunction · 0.85
ionic_dev_tx_queue_startFunction · 0.85
ionic_link_status_checkFunction · 0.85

Tested by

no test coverage detected