Message ID | 1408604228-8167-1-git-send-email-santosh.shukla@linaro.org |
---|---|
State | New |
Headers | show |
On 08/21/2014 10:57 AM, Santosh Shukla wrote: > Noticed that enabling promiscous mode helps l2fwd application work with pktgen > or dpdk-pktgen Can you please describe problem more? Why interface has to be in promiscuous mode? Thanks, Maxim. > > Suggested-by: Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org> > Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> > --- > platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/platform/linux-dpdk/odp_packet_dpdk.c b/platform/linux-dpdk/odp_packet_dpdk.c > index d5c8e80..92edac5 100644 > --- a/platform/linux-dpdk/odp_packet_dpdk.c > +++ b/platform/linux-dpdk/odp_packet_dpdk.c > @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, const char *netdev, > ODP_DBG("dpdk tx queue setup done\n"); > } > > + /* Enable promiscous mode */ > + rte_eth_promiscuous_enable(portid); > + > /* Start device */ > ret = rte_eth_dev_start(portid); > if (ret < 0)
On 21 August 2014 13:44, Maxim Uvarov <maxim.uvarov@linaro.org> wrote: > On 08/21/2014 10:57 AM, Santosh Shukla wrote: > >> Noticed that enabling promiscous mode helps l2fwd application work with >> pktgen >> or dpdk-pktgen >> > > Can you please describe problem more? Why interface has to be in > promiscuous mode? > We will set the destmac(to the interface's mac) on all the packets that egress out of ixia ports(and that is why it was working there), but incase of pktgen-dpdk destmac was set to the counterpart's destmac(different one and not the receiving interface's mac). Due to this, interface was dropping all the packets. Tried to figure out a way to set the destmac in pktgen-dpdk, for some reason that was not working. > Thanks, > Maxim. > > > >> Suggested-by: Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org> >> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> >> --- >> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c >> b/platform/linux-dpdk/odp_packet_dpdk.c >> index d5c8e80..92edac5 100644 >> --- a/platform/linux-dpdk/odp_packet_dpdk.c >> +++ b/platform/linux-dpdk/odp_packet_dpdk.c >> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, const >> char *netdev, >> ODP_DBG("dpdk tx queue setup done\n"); >> } >> + /* Enable promiscous mode */ >> + rte_eth_promiscuous_enable(portid); >> + >> /* Start device */ >> ret = rte_eth_dev_start(portid); >> if (ret < 0) >> > > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/lng-odp >
On 08/21/2014 12:23 PM, Venkatesh Vivekanandan wrote: > > > > On 21 August 2014 13:44, Maxim Uvarov <maxim.uvarov@linaro.org > <mailto:maxim.uvarov@linaro.org>> wrote: > > On 08/21/2014 10:57 AM, Santosh Shukla wrote: > > Noticed that enabling promiscous mode helps l2fwd application > work with pktgen > or dpdk-pktgen > > > Can you please describe problem more? Why interface has to be in > promiscuous mode? > > We will set the destmac(to the interface's mac) on all the packets > that egress out of ixia ports(and that is why it was working there), > but incase of pktgen-dpdk destmac was set to the counterpart's > destmac(different one and not the receiving interface's mac). Due to > this, interface was dropping all the packets. Tried to figure out a > way to set the destmac in pktgen-dpdk, for some reason that was not > working. Ok, looks reasonable. Can you please refine patch description? > > > Thanks, > Maxim. > > > > Suggested-by: Venkatesh Vivekanandan > <venkatesh.vivekanandan@linaro.org > <mailto:venkatesh.vivekanandan@linaro.org>> > Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org > <mailto:santosh.shukla@linaro.org>> > --- > platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/platform/linux-dpdk/odp_packet_dpdk.c > b/platform/linux-dpdk/odp_packet_dpdk.c > index d5c8e80..92edac5 100644 > --- a/platform/linux-dpdk/odp_packet_dpdk.c > +++ b/platform/linux-dpdk/odp_packet_dpdk.c > @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const > pkt_dpdk, const char *netdev, > ODP_DBG("dpdk tx queue setup done\n"); > } > + /* Enable promiscous mode */ > + rte_eth_promiscuous_enable(portid); > + > /* Start device */ > ret = rte_eth_dev_start(portid); > if (ret < 0) > > > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org <mailto:lng-odp@lists.linaro.org> > http://lists.linaro.org/mailman/listinfo/lng-odp > >
You are not always setting promiscuous mode on network interfaces in ODP/linux-dpdk? Promiscuous mode should only be enabled when the application requires it. The l2fwd (is this the DPDK port? "passthrough" would be a better name) application could have a command line option which requests promiscuous mode on the used network interfaces. On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> wrote: > Noticed that enabling promiscous mode helps l2fwd application work with > pktgen > or dpdk-pktgen > > Suggested-by: Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org> > Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> > --- > platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/platform/linux-dpdk/odp_packet_dpdk.c > b/platform/linux-dpdk/odp_packet_dpdk.c > index d5c8e80..92edac5 100644 > --- a/platform/linux-dpdk/odp_packet_dpdk.c > +++ b/platform/linux-dpdk/odp_packet_dpdk.c > @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, const > char *netdev, > ODP_DBG("dpdk tx queue setup done\n"); > } > > + /* Enable promiscous mode */ > + rte_eth_promiscuous_enable(portid); > + > /* Start device */ > ret = rte_eth_dev_start(portid); > if (ret < 0) > -- > 1.7.9.5 > > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/lng-odp >
On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: > You are not always setting promiscuous mode on network interfaces in > ODP/linux-dpdk? Promiscuous mode should only be enabled when the application > requires it. The l2fwd (is this the DPDK port? "passthrough" would be a > better name) application could have a command line option which requests > promiscuous mode on the used network interfaces. > Even better. Make sense to me. I'll spin the patch and do the changes in l2fwd cli interface accordingly. > > On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> wrote: >> >> Noticed that enabling promiscous mode helps l2fwd application work with >> pktgen >> or dpdk-pktgen >> >> Suggested-by: Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org> >> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> >> --- >> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c >> b/platform/linux-dpdk/odp_packet_dpdk.c >> index d5c8e80..92edac5 100644 >> --- a/platform/linux-dpdk/odp_packet_dpdk.c >> +++ b/platform/linux-dpdk/odp_packet_dpdk.c >> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, const >> char *netdev, >> ODP_DBG("dpdk tx queue setup done\n"); >> } >> >> + /* Enable promiscous mode */ >> + rte_eth_promiscuous_enable(portid); >> + >> /* Start device */ >> ret = rte_eth_dev_start(portid); >> if (ret < 0) >> -- >> 1.7.9.5 >> >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> http://lists.linaro.org/mailman/listinfo/lng-odp > >
On 21 August 2014 14:27, Santosh Shukla <santosh.shukla@linaro.org> wrote: > On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: > > You are not always setting promiscuous mode on network interfaces in > > ODP/linux-dpdk? Promiscuous mode should only be enabled when the > application > > requires it. The l2fwd (is this the DPDK port? "passthrough" would be a > > better name) application could have a command line option which requests > > promiscuous mode on the used network interfaces. > > > > Even better. Make sense to me. I'll spin the patch and do the changes > in l2fwd cli interface accordingly. > > There is no way one can pass the command line parameters to the implementation currently, once that gets in then we can make it a user configurable parameter. For now, we don't have a choice other than keeping them enabled. > > > > On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> > wrote: > >> > >> Noticed that enabling promiscous mode helps l2fwd application work with > >> pktgen > >> or dpdk-pktgen > >> > >> Suggested-by: Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org > > > >> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> > >> --- > >> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ > >> 1 file changed, 3 insertions(+) > >> > >> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c > >> b/platform/linux-dpdk/odp_packet_dpdk.c > >> index d5c8e80..92edac5 100644 > >> --- a/platform/linux-dpdk/odp_packet_dpdk.c > >> +++ b/platform/linux-dpdk/odp_packet_dpdk.c > >> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, > const > >> char *netdev, > >> ODP_DBG("dpdk tx queue setup done\n"); > >> } > >> > >> + /* Enable promiscous mode */ > >> + rte_eth_promiscuous_enable(portid); > >> + > >> /* Start device */ > >> ret = rte_eth_dev_start(portid); > >> if (ret < 0) > >> -- > >> 1.7.9.5 > >> > >> > >> _______________________________________________ > >> lng-odp mailing list > >> lng-odp@lists.linaro.org > >> http://lists.linaro.org/mailman/listinfo/lng-odp > > > > > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/lng-odp >
On 21 August 2014 14:57, Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org> wrote: > > > > On 21 August 2014 14:27, Santosh Shukla <santosh.shukla@linaro.org> wrote: >> >> On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: >> > You are not always setting promiscuous mode on network interfaces in >> > ODP/linux-dpdk? Promiscuous mode should only be enabled when the >> > application >> > requires it. The l2fwd (is this the DPDK port? "passthrough" would be a >> > better name) application could have a command line option which requests >> > promiscuous mode on the used network interfaces. >> > >> >> Even better. Make sense to me. I'll spin the patch and do the changes >> in l2fwd cli interface accordingly. >> > There is no way one can pass the command line parameters to the > implementation currently, once that gets in then we can make it a user > configurable parameter. For now, we don't have a choice other than keeping > them enabled. > I said that so keeping Mike's patch of odp_init_global agrument passing from App till linux-generic.. apllicable to dpdk too. This patch ""[PATCH] Add-global_init-paramiters Any other reason in your mind? >> >> > >> > On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> >> > wrote: >> >> >> >> Noticed that enabling promiscous mode helps l2fwd application work with >> >> pktgen >> >> or dpdk-pktgen >> >> >> >> Suggested-by: Venkatesh Vivekanandan >> >> <venkatesh.vivekanandan@linaro.org> >> >> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> >> >> --- >> >> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ >> >> 1 file changed, 3 insertions(+) >> >> >> >> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c >> >> b/platform/linux-dpdk/odp_packet_dpdk.c >> >> index d5c8e80..92edac5 100644 >> >> --- a/platform/linux-dpdk/odp_packet_dpdk.c >> >> +++ b/platform/linux-dpdk/odp_packet_dpdk.c >> >> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, >> >> const >> >> char *netdev, >> >> ODP_DBG("dpdk tx queue setup done\n"); >> >> } >> >> >> >> + /* Enable promiscous mode */ >> >> + rte_eth_promiscuous_enable(portid); >> >> + >> >> /* Start device */ >> >> ret = rte_eth_dev_start(portid); >> >> if (ret < 0) >> >> -- >> >> 1.7.9.5 >> >> >> >> >> >> _______________________________________________ >> >> lng-odp mailing list >> >> lng-odp@lists.linaro.org >> >> http://lists.linaro.org/mailman/listinfo/lng-odp >> > >> > >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> http://lists.linaro.org/mailman/listinfo/lng-odp > >
This command line option would be interpreted by the application. But the application needs a function for setting an interface (pktio instance) in promiscuous mode. Yet another missing piece of API. On 21 August 2014 11:27, Venkatesh Vivekanandan < venkatesh.vivekanandan@linaro.org> wrote: > > > > On 21 August 2014 14:27, Santosh Shukla <santosh.shukla@linaro.org> wrote: > >> On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: >> > You are not always setting promiscuous mode on network interfaces in >> > ODP/linux-dpdk? Promiscuous mode should only be enabled when the >> application >> > requires it. The l2fwd (is this the DPDK port? "passthrough" would be a >> > better name) application could have a command line option which requests >> > promiscuous mode on the used network interfaces. >> > >> >> Even better. Make sense to me. I'll spin the patch and do the changes >> in l2fwd cli interface accordingly. >> >> There is no way one can pass the command line parameters to the > implementation currently, once that gets in then we can make it a user > configurable parameter. For now, we don't have a choice other than keeping > them enabled. > > >> > >> > On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> >> wrote: >> >> >> >> Noticed that enabling promiscous mode helps l2fwd application work with >> >> pktgen >> >> or dpdk-pktgen >> >> >> >> Suggested-by: Venkatesh Vivekanandan < >> venkatesh.vivekanandan@linaro.org> >> >> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> >> >> --- >> >> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ >> >> 1 file changed, 3 insertions(+) >> >> >> >> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c >> >> b/platform/linux-dpdk/odp_packet_dpdk.c >> >> index d5c8e80..92edac5 100644 >> >> --- a/platform/linux-dpdk/odp_packet_dpdk.c >> >> +++ b/platform/linux-dpdk/odp_packet_dpdk.c >> >> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, >> const >> >> char *netdev, >> >> ODP_DBG("dpdk tx queue setup done\n"); >> >> } >> >> >> >> + /* Enable promiscous mode */ >> >> + rte_eth_promiscuous_enable(portid); >> >> + >> >> /* Start device */ >> >> ret = rte_eth_dev_start(portid); >> >> if (ret < 0) >> >> -- >> >> 1.7.9.5 >> >> >> >> >> >> _______________________________________________ >> >> lng-odp mailing list >> >> lng-odp@lists.linaro.org >> >> http://lists.linaro.org/mailman/listinfo/lng-odp >> > >> > >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> http://lists.linaro.org/mailman/listinfo/lng-odp >> > >
On 21 August 2014 15:16, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: > This command line option would be interpreted by the application. But the > application needs a function for setting an interface (pktio instance) in > promiscuous mode. Yet another missing piece of API. > What else required for existing pktio instance to operate on promiscuous mode other than sending a hint to driver. For example, The way I look at it per existing code, all I need to pass one promiscuous mode hint in case of dpdk, dpdk implementation api (which is this - rte_eth_promiscuous_enable();) will do the rest for me. Like to know more.. Thanks. > > On 21 August 2014 11:27, Venkatesh Vivekanandan > <venkatesh.vivekanandan@linaro.org> wrote: >> >> >> >> >> On 21 August 2014 14:27, Santosh Shukla <santosh.shukla@linaro.org> wrote: >>> >>> On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: >>> > You are not always setting promiscuous mode on network interfaces in >>> > ODP/linux-dpdk? Promiscuous mode should only be enabled when the >>> > application >>> > requires it. The l2fwd (is this the DPDK port? "passthrough" would be a >>> > better name) application could have a command line option which >>> > requests >>> > promiscuous mode on the used network interfaces. >>> > >>> >>> Even better. Make sense to me. I'll spin the patch and do the changes >>> in l2fwd cli interface accordingly. >>> >> There is no way one can pass the command line parameters to the >> implementation currently, once that gets in then we can make it a user >> configurable parameter. For now, we don't have a choice other than keeping >> them enabled. >> >>> >>> > >>> > On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> >>> > wrote: >>> >> >>> >> Noticed that enabling promiscous mode helps l2fwd application work >>> >> with >>> >> pktgen >>> >> or dpdk-pktgen >>> >> >>> >> Suggested-by: Venkatesh Vivekanandan >>> >> <venkatesh.vivekanandan@linaro.org> >>> >> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> >>> >> --- >>> >> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ >>> >> 1 file changed, 3 insertions(+) >>> >> >>> >> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c >>> >> b/platform/linux-dpdk/odp_packet_dpdk.c >>> >> index d5c8e80..92edac5 100644 >>> >> --- a/platform/linux-dpdk/odp_packet_dpdk.c >>> >> +++ b/platform/linux-dpdk/odp_packet_dpdk.c >>> >> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, >>> >> const >>> >> char *netdev, >>> >> ODP_DBG("dpdk tx queue setup done\n"); >>> >> } >>> >> >>> >> + /* Enable promiscous mode */ >>> >> + rte_eth_promiscuous_enable(portid); >>> >> + >>> >> /* Start device */ >>> >> ret = rte_eth_dev_start(portid); >>> >> if (ret < 0) >>> >> -- >>> >> 1.7.9.5 >>> >> >>> >> >>> >> _______________________________________________ >>> >> lng-odp mailing list >>> >> lng-odp@lists.linaro.org >>> >> http://lists.linaro.org/mailman/listinfo/lng-odp >>> > >>> > >>> >>> _______________________________________________ >>> lng-odp mailing list >>> lng-odp@lists.linaro.org >>> http://lists.linaro.org/mailman/listinfo/lng-odp >> >> >
On 21 August 2014 15:16, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: > This command line option would be interpreted by the application. But the > application needs a function for setting an interface (pktio instance) in > promiscuous mode. Yet another missing piece of API. > > Yes, we don't have say odp_pktio_promisc_enable/disable(). This is what I was talking about in yesterday's call as, we miss a bunch of functions in supporting the network interface. I will send out a list of functions that we might need. > > On 21 August 2014 11:27, Venkatesh Vivekanandan < > venkatesh.vivekanandan@linaro.org> wrote: > >> >> >> >> On 21 August 2014 14:27, Santosh Shukla <santosh.shukla@linaro.org> >> wrote: >> >>> On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: >>> > You are not always setting promiscuous mode on network interfaces in >>> > ODP/linux-dpdk? Promiscuous mode should only be enabled when the >>> application >>> > requires it. The l2fwd (is this the DPDK port? "passthrough" would be a >>> > better name) application could have a command line option which >>> requests >>> > promiscuous mode on the used network interfaces. >>> > >>> >>> Even better. Make sense to me. I'll spin the patch and do the changes >>> in l2fwd cli interface accordingly. >>> >>> There is no way one can pass the command line parameters to the >> implementation currently, once that gets in then we can make it a user >> configurable parameter. For now, we don't have a choice other than keeping >> them enabled. >> >> >>> > >>> > On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> >>> wrote: >>> >> >>> >> Noticed that enabling promiscous mode helps l2fwd application work >>> with >>> >> pktgen >>> >> or dpdk-pktgen >>> >> >>> >> Suggested-by: Venkatesh Vivekanandan < >>> venkatesh.vivekanandan@linaro.org> >>> >> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> >>> >> --- >>> >> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ >>> >> 1 file changed, 3 insertions(+) >>> >> >>> >> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c >>> >> b/platform/linux-dpdk/odp_packet_dpdk.c >>> >> index d5c8e80..92edac5 100644 >>> >> --- a/platform/linux-dpdk/odp_packet_dpdk.c >>> >> +++ b/platform/linux-dpdk/odp_packet_dpdk.c >>> >> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, >>> const >>> >> char *netdev, >>> >> ODP_DBG("dpdk tx queue setup done\n"); >>> >> } >>> >> >>> >> + /* Enable promiscous mode */ >>> >> + rte_eth_promiscuous_enable(portid); >>> >> + >>> >> /* Start device */ >>> >> ret = rte_eth_dev_start(portid); >>> >> if (ret < 0) >>> >> -- >>> >> 1.7.9.5 >>> >> >>> >> >>> >> _______________________________________________ >>> >> lng-odp mailing list >>> >> lng-odp@lists.linaro.org >>> >> http://lists.linaro.org/mailman/listinfo/lng-odp >>> > >>> > >>> >>> _______________________________________________ >>> lng-odp mailing list >>> lng-odp@lists.linaro.org >>> http://lists.linaro.org/mailman/listinfo/lng-odp >>> >> >> >
On 21 August 2014 15:47, Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org> wrote: > > > > On 21 August 2014 15:16, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: >> >> This command line option would be interpreted by the application. But the >> application needs a function for setting an interface (pktio instance) in >> promiscuous mode. Yet another missing piece of API. >> > Yes, we don't have say odp_pktio_promisc_enable/disable(). This is what I > was talking about in yesterday's call as, we miss a bunch of functions in > supporting the network interface. I will send out a list of functions that > we might need. That list nothing device capability or ethtool Ops :) in general as discussed in chat with you. Ola, is this what your referring too? > >> >> >> On 21 August 2014 11:27, Venkatesh Vivekanandan >> <venkatesh.vivekanandan@linaro.org> wrote: >>> >>> >>> >>> >>> On 21 August 2014 14:27, Santosh Shukla <santosh.shukla@linaro.org> >>> wrote: >>>> >>>> On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: >>>> > You are not always setting promiscuous mode on network interfaces in >>>> > ODP/linux-dpdk? Promiscuous mode should only be enabled when the >>>> > application >>>> > requires it. The l2fwd (is this the DPDK port? "passthrough" would be >>>> > a >>>> > better name) application could have a command line option which >>>> > requests >>>> > promiscuous mode on the used network interfaces. >>>> > >>>> >>>> Even better. Make sense to me. I'll spin the patch and do the changes >>>> in l2fwd cli interface accordingly. >>>> >>> There is no way one can pass the command line parameters to the >>> implementation currently, once that gets in then we can make it a user >>> configurable parameter. For now, we don't have a choice other than keeping >>> them enabled. >>> >>>> >>>> > >>>> > On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> >>>> > wrote: >>>> >> >>>> >> Noticed that enabling promiscous mode helps l2fwd application work >>>> >> with >>>> >> pktgen >>>> >> or dpdk-pktgen >>>> >> >>>> >> Suggested-by: Venkatesh Vivekanandan >>>> >> <venkatesh.vivekanandan@linaro.org> >>>> >> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> >>>> >> --- >>>> >> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ >>>> >> 1 file changed, 3 insertions(+) >>>> >> >>>> >> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c >>>> >> b/platform/linux-dpdk/odp_packet_dpdk.c >>>> >> index d5c8e80..92edac5 100644 >>>> >> --- a/platform/linux-dpdk/odp_packet_dpdk.c >>>> >> +++ b/platform/linux-dpdk/odp_packet_dpdk.c >>>> >> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, >>>> >> const >>>> >> char *netdev, >>>> >> ODP_DBG("dpdk tx queue setup done\n"); >>>> >> } >>>> >> >>>> >> + /* Enable promiscous mode */ >>>> >> + rte_eth_promiscuous_enable(portid); >>>> >> + >>>> >> /* Start device */ >>>> >> ret = rte_eth_dev_start(portid); >>>> >> if (ret < 0) >>>> >> -- >>>> >> 1.7.9.5 >>>> >> >>>> >> >>>> >> _______________________________________________ >>>> >> lng-odp mailing list >>>> >> lng-odp@lists.linaro.org >>>> >> http://lists.linaro.org/mailman/listinfo/lng-odp >>>> > >>>> > >>>> >>>> _______________________________________________ >>>> lng-odp mailing list >>>> lng-odp@lists.linaro.org >>>> http://lists.linaro.org/mailman/listinfo/lng-odp >>> >>> >> >
An application should be able to interrogate network interface capabilities and current configurations (e.g. link speed, unicast MAC address(es)). It should also be possible to configure the interface (especially the MAC, possibly but unlikely the PHY), I was thinking of unicast and multicast addresses but some of this might be handled by the classification API. If an application uses the classification API (which configures the classifier function, however that is implemented) to select packets sent to a specific unicast or multicast MAC address, will the ODP implementation then also configure the MAC (which is likely separate from the classifier) to filter matching packets? Or is MAC-level configuration the responsibility of the application using a separate API? I think it is more flexible to program MAC address filtering (and promiscuous mode is a type of MAC address filtering) using the classification API and let the ODP implementation handle the details of which HW blocks need to be configured. On 21 August 2014 12:25, Santosh Shukla <santosh.shukla@linaro.org> wrote: > On 21 August 2014 15:47, Venkatesh Vivekanandan > <venkatesh.vivekanandan@linaro.org> wrote: > > > > > > > > On 21 August 2014 15:16, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: > >> > >> This command line option would be interpreted by the application. But > the > >> application needs a function for setting an interface (pktio instance) > in > >> promiscuous mode. Yet another missing piece of API. > >> > > Yes, we don't have say odp_pktio_promisc_enable/disable(). This is what I > > was talking about in yesterday's call as, we miss a bunch of functions in > > supporting the network interface. I will send out a list of functions > that > > we might need. > > That list nothing device capability or ethtool Ops :) in general as > discussed in chat with you. Ola, is this what your referring too? > > > > >> > >> > >> On 21 August 2014 11:27, Venkatesh Vivekanandan > >> <venkatesh.vivekanandan@linaro.org> wrote: > >>> > >>> > >>> > >>> > >>> On 21 August 2014 14:27, Santosh Shukla <santosh.shukla@linaro.org> > >>> wrote: > >>>> > >>>> On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> > wrote: > >>>> > You are not always setting promiscuous mode on network interfaces in > >>>> > ODP/linux-dpdk? Promiscuous mode should only be enabled when the > >>>> > application > >>>> > requires it. The l2fwd (is this the DPDK port? "passthrough" would > be > >>>> > a > >>>> > better name) application could have a command line option which > >>>> > requests > >>>> > promiscuous mode on the used network interfaces. > >>>> > > >>>> > >>>> Even better. Make sense to me. I'll spin the patch and do the changes > >>>> in l2fwd cli interface accordingly. > >>>> > >>> There is no way one can pass the command line parameters to the > >>> implementation currently, once that gets in then we can make it a user > >>> configurable parameter. For now, we don't have a choice other than > keeping > >>> them enabled. > >>> > >>>> > >>>> > > >>>> > On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> > >>>> > wrote: > >>>> >> > >>>> >> Noticed that enabling promiscous mode helps l2fwd application work > >>>> >> with > >>>> >> pktgen > >>>> >> or dpdk-pktgen > >>>> >> > >>>> >> Suggested-by: Venkatesh Vivekanandan > >>>> >> <venkatesh.vivekanandan@linaro.org> > >>>> >> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> > >>>> >> --- > >>>> >> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ > >>>> >> 1 file changed, 3 insertions(+) > >>>> >> > >>>> >> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c > >>>> >> b/platform/linux-dpdk/odp_packet_dpdk.c > >>>> >> index d5c8e80..92edac5 100644 > >>>> >> --- a/platform/linux-dpdk/odp_packet_dpdk.c > >>>> >> +++ b/platform/linux-dpdk/odp_packet_dpdk.c > >>>> >> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, > >>>> >> const > >>>> >> char *netdev, > >>>> >> ODP_DBG("dpdk tx queue setup done\n"); > >>>> >> } > >>>> >> > >>>> >> + /* Enable promiscous mode */ > >>>> >> + rte_eth_promiscuous_enable(portid); > >>>> >> + > >>>> >> /* Start device */ > >>>> >> ret = rte_eth_dev_start(portid); > >>>> >> if (ret < 0) > >>>> >> -- > >>>> >> 1.7.9.5 > >>>> >> > >>>> >> > >>>> >> _______________________________________________ > >>>> >> lng-odp mailing list > >>>> >> lng-odp@lists.linaro.org > >>>> >> http://lists.linaro.org/mailman/listinfo/lng-odp > >>>> > > >>>> > > >>>> > >>>> _______________________________________________ > >>>> lng-odp mailing list > >>>> lng-odp@lists.linaro.org > >>>> http://lists.linaro.org/mailman/listinfo/lng-odp > >>> > >>> > >> > > >
On 08/21/2014 01:33 PM, Santosh Shukla wrote: > On 21 August 2014 14:57, Venkatesh Vivekanandan > <venkatesh.vivekanandan@linaro.org> wrote: >> >> >> On 21 August 2014 14:27, Santosh Shukla <santosh.shukla@linaro.org> wrote: >>> On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: >>>> You are not always setting promiscuous mode on network interfaces in >>>> ODP/linux-dpdk? Promiscuous mode should only be enabled when the >>>> application >>>> requires it. The l2fwd (is this the DPDK port? "passthrough" would be a >>>> better name) application could have a command line option which requests >>>> promiscuous mode on the used network interfaces. >>>> >>> Even better. Make sense to me. I'll spin the patch and do the changes >>> in l2fwd cli interface accordingly. >>> >> There is no way one can pass the command line parameters to the >> implementation currently, once that gets in then we can make it a user >> configurable parameter. For now, we don't have a choice other than keeping >> them enabled. >> > I said that so keeping Mike's patch of odp_init_global agrument > passing from App till linux-generic.. apllicable to dpdk too. > > This patch ""[PATCH] Add-global_init-paramiters > > Any other reason in your mind? I think it should work well. For there is no need to have public API to set up promisc mode. Due to main goal is Soc hw abstraction. > > >>>> On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> >>>> wrote: >>>>> Noticed that enabling promiscous mode helps l2fwd application work with >>>>> pktgen >>>>> or dpdk-pktgen >>>>> >>>>> Suggested-by: Venkatesh Vivekanandan >>>>> <venkatesh.vivekanandan@linaro.org> >>>>> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> >>>>> --- >>>>> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ >>>>> 1 file changed, 3 insertions(+) >>>>> >>>>> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c >>>>> b/platform/linux-dpdk/odp_packet_dpdk.c >>>>> index d5c8e80..92edac5 100644 >>>>> --- a/platform/linux-dpdk/odp_packet_dpdk.c >>>>> +++ b/platform/linux-dpdk/odp_packet_dpdk.c >>>>> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, >>>>> const >>>>> char *netdev, >>>>> ODP_DBG("dpdk tx queue setup done\n"); >>>>> } >>>>> >>>>> + /* Enable promiscous mode */ >>>>> + rte_eth_promiscuous_enable(portid); >>>>> + >>>>> /* Start device */ >>>>> ret = rte_eth_dev_start(portid); >>>>> if (ret < 0) >>>>> -- >>>>> 1.7.9.5 >>>>> >>>>> >>>>> _______________________________________________ >>>>> lng-odp mailing list >>>>> lng-odp@lists.linaro.org >>>>> http://lists.linaro.org/mailman/listinfo/lng-odp >>>> >>> _______________________________________________ >>> lng-odp mailing list >>> lng-odp@lists.linaro.org >>> http://lists.linaro.org/mailman/listinfo/lng-odp >> > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/lng-odp
If one ODP implementation automatically enables promiscuous mode on network interfaces, I think we might get different semantics on those targets (can't rely on external switches to do all filtering for you). If this is a work-around because we cannot get pktgen to use the intended destination addresses in packets, we are fixing the problem in the wrong end. On 21 August 2014 13:08, Maxim Uvarov <maxim.uvarov@linaro.org> wrote: > On 08/21/2014 01:33 PM, Santosh Shukla wrote: > >> On 21 August 2014 14:57, Venkatesh Vivekanandan >> >> <venkatesh.vivekanandan@linaro.org> wrote: >> >>> >>> >>> On 21 August 2014 14:27, Santosh Shukla <santosh.shukla@linaro.org> >>> wrote: >>> >>>> On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> >>>> wrote: >>>> >>>>> You are not always setting promiscuous mode on network interfaces in >>>>> ODP/linux-dpdk? Promiscuous mode should only be enabled when the >>>>> application >>>>> requires it. The l2fwd (is this the DPDK port? "passthrough" would be a >>>>> better name) application could have a command line option which >>>>> requests >>>>> promiscuous mode on the used network interfaces. >>>>> >>>>> Even better. Make sense to me. I'll spin the patch and do the changes >>>> in l2fwd cli interface accordingly. >>>> >>>> There is no way one can pass the command line parameters to the >>> implementation currently, once that gets in then we can make it a user >>> configurable parameter. For now, we don't have a choice other than >>> keeping >>> them enabled. >>> >>> I said that so keeping Mike's patch of odp_init_global agrument >> passing from App till linux-generic.. apllicable to dpdk too. >> >> This patch ""[PATCH] Add-global_init-paramiters >> >> Any other reason in your mind? >> > > I think it should work well. For there is no need to have public API to > set up promisc mode. Due to main goal is Soc hw abstraction. > > > > >> >> On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> >>>>> wrote: >>>>> >>>>>> Noticed that enabling promiscous mode helps l2fwd application work >>>>>> with >>>>>> pktgen >>>>>> or dpdk-pktgen >>>>>> >>>>>> Suggested-by: Venkatesh Vivekanandan >>>>>> <venkatesh.vivekanandan@linaro.org> >>>>>> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> >>>>>> --- >>>>>> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ >>>>>> 1 file changed, 3 insertions(+) >>>>>> >>>>>> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c >>>>>> b/platform/linux-dpdk/odp_packet_dpdk.c >>>>>> index d5c8e80..92edac5 100644 >>>>>> --- a/platform/linux-dpdk/odp_packet_dpdk.c >>>>>> +++ b/platform/linux-dpdk/odp_packet_dpdk.c >>>>>> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, >>>>>> const >>>>>> char *netdev, >>>>>> ODP_DBG("dpdk tx queue setup done\n"); >>>>>> } >>>>>> >>>>>> + /* Enable promiscous mode */ >>>>>> + rte_eth_promiscuous_enable(portid); >>>>>> + >>>>>> /* Start device */ >>>>>> ret = rte_eth_dev_start(portid); >>>>>> if (ret < 0) >>>>>> -- >>>>>> 1.7.9.5 >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> lng-odp mailing list >>>>>> lng-odp@lists.linaro.org >>>>>> http://lists.linaro.org/mailman/listinfo/lng-odp >>>>>> >>>>> >>>>> _______________________________________________ >>>> lng-odp mailing list >>>> lng-odp@lists.linaro.org >>>> http://lists.linaro.org/mailman/listinfo/lng-odp >>>> >>> >>> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> http://lists.linaro.org/mailman/listinfo/lng-odp >> > > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/lng-odp >
On 21 August 2014 17:42, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: > If one ODP implementation automatically enables promiscuous mode on network > interfaces, I think we might get different semantics on those targets (can't > rely on external switches to do all filtering for you). If this is a > work-around because we cannot get pktgen to use the intended destination > addresses in packets, we are fixing the problem in the wrong end. I could agree what you pointed out and Venky did mentioned that He couldn't able to figure out a way in dpdk-pktgen.. so this is a workaround However this discussion brought out need for set of few api's in odp like enable/disable_promiscuous_mode(), link_status(), setting multicaste etc.. > > > On 21 August 2014 13:08, Maxim Uvarov <maxim.uvarov@linaro.org> wrote: >> >> On 08/21/2014 01:33 PM, Santosh Shukla wrote: >>> >>> On 21 August 2014 14:57, Venkatesh Vivekanandan >>> >>> <venkatesh.vivekanandan@linaro.org> wrote: >>>> >>>> >>>> >>>> On 21 August 2014 14:27, Santosh Shukla <santosh.shukla@linaro.org> >>>> wrote: >>>>> >>>>> On 21 August 2014 14:24, Ola Liljedahl <ola.liljedahl@linaro.org> >>>>> wrote: >>>>>> >>>>>> You are not always setting promiscuous mode on network interfaces in >>>>>> ODP/linux-dpdk? Promiscuous mode should only be enabled when the >>>>>> application >>>>>> requires it. The l2fwd (is this the DPDK port? "passthrough" would be >>>>>> a >>>>>> better name) application could have a command line option which >>>>>> requests >>>>>> promiscuous mode on the used network interfaces. >>>>>> >>>>> Even better. Make sense to me. I'll spin the patch and do the changes >>>>> in l2fwd cli interface accordingly. >>>>> >>>> There is no way one can pass the command line parameters to the >>>> implementation currently, once that gets in then we can make it a user >>>> configurable parameter. For now, we don't have a choice other than >>>> keeping >>>> them enabled. >>>> >>> I said that so keeping Mike's patch of odp_init_global agrument >>> passing from App till linux-generic.. apllicable to dpdk too. >>> >>> This patch ""[PATCH] Add-global_init-paramiters >>> >>> Any other reason in your mind? >> >> >> I think it should work well. For there is no need to have public API to >> set up promisc mode. Due to main goal is Soc hw abstraction. >> >> >> >>> >>> >>>>>> On 21 August 2014 08:57, Santosh Shukla <santosh.shukla@linaro.org> >>>>>> wrote: >>>>>>> >>>>>>> Noticed that enabling promiscous mode helps l2fwd application work >>>>>>> with >>>>>>> pktgen >>>>>>> or dpdk-pktgen >>>>>>> >>>>>>> Suggested-by: Venkatesh Vivekanandan >>>>>>> <venkatesh.vivekanandan@linaro.org> >>>>>>> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> >>>>>>> --- >>>>>>> platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ >>>>>>> 1 file changed, 3 insertions(+) >>>>>>> >>>>>>> diff --git a/platform/linux-dpdk/odp_packet_dpdk.c >>>>>>> b/platform/linux-dpdk/odp_packet_dpdk.c >>>>>>> index d5c8e80..92edac5 100644 >>>>>>> --- a/platform/linux-dpdk/odp_packet_dpdk.c >>>>>>> +++ b/platform/linux-dpdk/odp_packet_dpdk.c >>>>>>> @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, >>>>>>> const >>>>>>> char *netdev, >>>>>>> ODP_DBG("dpdk tx queue setup done\n"); >>>>>>> } >>>>>>> >>>>>>> + /* Enable promiscous mode */ >>>>>>> + rte_eth_promiscuous_enable(portid); >>>>>>> + >>>>>>> /* Start device */ >>>>>>> ret = rte_eth_dev_start(portid); >>>>>>> if (ret < 0) >>>>>>> -- >>>>>>> 1.7.9.5 >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> lng-odp mailing list >>>>>>> lng-odp@lists.linaro.org >>>>>>> http://lists.linaro.org/mailman/listinfo/lng-odp >>>>>> >>>>>> >>>>> _______________________________________________ >>>>> lng-odp mailing list >>>>> lng-odp@lists.linaro.org >>>>> http://lists.linaro.org/mailman/listinfo/lng-odp >>>> >>>> >>> _______________________________________________ >>> lng-odp mailing list >>> lng-odp@lists.linaro.org >>> http://lists.linaro.org/mailman/listinfo/lng-odp >> >> >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> http://lists.linaro.org/mailman/listinfo/lng-odp > > > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/lng-odp >
diff --git a/platform/linux-dpdk/odp_packet_dpdk.c b/platform/linux-dpdk/odp_packet_dpdk.c index d5c8e80..92edac5 100644 --- a/platform/linux-dpdk/odp_packet_dpdk.c +++ b/platform/linux-dpdk/odp_packet_dpdk.c @@ -135,6 +135,9 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, const char *netdev, ODP_DBG("dpdk tx queue setup done\n"); } + /* Enable promiscous mode */ + rte_eth_promiscuous_enable(portid); + /* Start device */ ret = rte_eth_dev_start(portid); if (ret < 0)
Noticed that enabling promiscous mode helps l2fwd application work with pktgen or dpdk-pktgen Suggested-by: Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org> --- platform/linux-dpdk/odp_packet_dpdk.c | 3 +++ 1 file changed, 3 insertions(+)