Hi, Xiaolong

> -----Original Message-----
[snip]
> >+static void ixgbe_dev_macsec_init(struct rte_eth_dev *dev);
> >+
> > /*
> >  * Define VF Stats MACRO for Non "cleared on read" register
> >  */
> >@@ -1095,6 +1097,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev,
> >void *init_params __rte_unused)
> >
> >     PMD_INIT_FUNC_TRACE();
> >
> >+    ixgbe_dev_macsec_init(eth_dev);
> 
> This is not needed as dev_private is allocated by rte_zmalloc_socket.
> 
OK, I will remove it.

> >+
> >     eth_dev->dev_ops = &ixgbe_eth_dev_ops;
> >     eth_dev->rx_pkt_burst = &ixgbe_recv_pkts;
> >     eth_dev->tx_pkt_burst = &ixgbe_xmit_pkts; @@ -2545,7 +2549,7 @@
> >ixgbe_dev_start(struct rte_eth_dev *dev)
> >     uint32_t *link_speeds;
> >     struct ixgbe_tm_conf *tm_conf =
> >             IXGBE_DEV_PRIVATE_TO_TM_CONF(dev->data->dev_private);
> >-    struct ixgbe_macsec_setting *macsec_ctrl =
> >+    struct ixgbe_macsec_setting *macsec_setting =
> >             IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data-
> >dev_private);
> >
> >     PMD_INIT_FUNC_TRACE();
> >@@ -2799,9 +2803,11 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> >      */
> >     ixgbe_dev_link_update(dev, 0);
> >
> >-    /* setup the macsec ctrl register */
> >-    ixgbe_dev_macsec_register_enable(dev, macsec_ctrl);
> >-
> >+    /* setup the macsec setting register */
> >+    if (macsec_setting->encrypt_en != 0 ||
> >+        macsec_setting->replayprotect_en != 0) {
> >+            ixgbe_dev_macsec_register_enable(dev, macsec_setting);
> >+    }
> 
> Can we safely assume that if encrypt_en and replayprotect_en equals zero,
> then we don't need to call ixgbe_dev_macsec_register_enable at all? Since this
> enable routine is more about just encrypt_en/replayprotect_en, is that any
> usercase when user set macsec offload with both encrypt_en and
> replayprotect_en are 0?
> 
As you said, this is a problem. I will fix it. Thanks a lot.

Thanks.
Shougang 

Reply via email to