linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [iproute2-next] action police: make 'mtu' could be set independently in police action
@ 2020-06-28  1:46 Po Liu
  2020-06-28 20:16 ` Stephen Hemminger
  2020-06-29  2:04 ` [v2,iproute2-next 1/2] action police: change the print message quotes style Po Liu
  0 siblings, 2 replies; 7+ messages in thread
From: Po Liu @ 2020-06-28  1:46 UTC (permalink / raw)
  To: dsahern, linux-kernel, netdev
  Cc: stephen, davem, jhs, vlad, po.liu, claudiu.manoil,
	vladimir.oltean, alexandru.marginean

Current police action must set 'rate' and 'burst'. 'mtu' parameter
set the max frame size and could be set alone without 'rate' and 'burst'
in some situation. Offloading to hardware for example, 'mtu' could limit
the flow max frame size.

Signed-off-by: Po Liu <po.liu@nxp.com>
---
 tc/m_police.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tc/m_police.c b/tc/m_police.c
index a5bc20c0..89497f67 100644
--- a/tc/m_police.c
+++ b/tc/m_police.c
@@ -161,8 +161,8 @@ action_ctrl_ok:
 		return -1;
 
 	/* Must at least do late binding, use TB or ewma policing */
-	if (!rate64 && !avrate && !p.index) {
-		fprintf(stderr, "\"rate\" or \"avrate\" MUST be specified.\n");
+	if (!rate64 && !avrate && !p.index && !mtu) {
+		fprintf(stderr, "\"rate\" or \"avrate\" or \"mtu\"MUST be specified.\n");
 		return -1;
 	}
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [iproute2-next] action police: make 'mtu' could be set independently in police action
  2020-06-28  1:46 [iproute2-next] action police: make 'mtu' could be set independently in police action Po Liu
@ 2020-06-28 20:16 ` Stephen Hemminger
  2020-06-29  2:04 ` [v2,iproute2-next 1/2] action police: change the print message quotes style Po Liu
  1 sibling, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2020-06-28 20:16 UTC (permalink / raw)
  To: Po Liu
  Cc: dsahern, linux-kernel, netdev, davem, jhs, vlad, claudiu.manoil,
	vladimir.oltean, alexandru.marginean

On Sun, 28 Jun 2020 09:46:02 +0800
Po Liu <po.liu@nxp.com> wrote:

> Current police action must set 'rate' and 'burst'. 'mtu' parameter
> set the max frame size and could be set alone without 'rate' and 'burst'
> in some situation. Offloading to hardware for example, 'mtu' could limit
> the flow max frame size.
> 
> Signed-off-by: Po Liu <po.liu@nxp.com>
> ---
>  tc/m_police.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tc/m_police.c b/tc/m_police.c
> index a5bc20c0..89497f67 100644
> --- a/tc/m_police.c
> +++ b/tc/m_police.c
> @@ -161,8 +161,8 @@ action_ctrl_ok:
>  		return -1;
>  
>  	/* Must at least do late binding, use TB or ewma policing */
> -	if (!rate64 && !avrate && !p.index) {
> -		fprintf(stderr, "\"rate\" or \"avrate\" MUST be specified.\n");
> +	if (!rate64 && !avrate && !p.index && !mtu) {
> +		fprintf(stderr, "\"rate\" or \"avrate\" or \"mtu\"MUST be specified.\n");

Missing blank.
Your message will come out as:
"rate" or "avrate" or "mtu"MUST be specified.


The quotes aren't adding to the readability, why not just remove them instead.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [v2,iproute2-next 1/2] action police: change the print message quotes style
  2020-06-28  1:46 [iproute2-next] action police: make 'mtu' could be set independently in police action Po Liu
  2020-06-28 20:16 ` Stephen Hemminger
@ 2020-06-29  2:04 ` Po Liu
  2020-06-29  2:04   ` [v2,iproute2-next 2/2] action police: make 'mtu' could be set independently in police action Po Liu
  2020-07-05 15:35   ` [v2,iproute2-next 1/2] action police: change the print message quotes style David Ahern
  1 sibling, 2 replies; 7+ messages in thread
From: Po Liu @ 2020-06-29  2:04 UTC (permalink / raw)
  To: dsahern, linux-kernel, netdev
  Cc: stephen, davem, jhs, vlad, po.liu, claudiu.manoil,
	vladimir.oltean, alexandru.marginean

Change the double quotes to single quotes in fprintf message to make it
more readable.

Signed-off-by: Po Liu <po.liu@nxp.com>
---
v1->v2 changes:
- Patch new added

 tc/m_police.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tc/m_police.c b/tc/m_police.c
index a5bc20c0..7eb47f8e 100644
--- a/tc/m_police.c
+++ b/tc/m_police.c
@@ -162,23 +162,23 @@ action_ctrl_ok:
 
 	/* Must at least do late binding, use TB or ewma policing */
 	if (!rate64 && !avrate && !p.index) {
-		fprintf(stderr, "\"rate\" or \"avrate\" MUST be specified.\n");
+		fprintf(stderr, "'rate' or 'avrate' MUST be specified.\n");
 		return -1;
 	}
 
 	/* When the TB policer is used, burst is required */
 	if (rate64 && !buffer && !avrate) {
-		fprintf(stderr, "\"burst\" requires \"rate\".\n");
+		fprintf(stderr, "'burst' requires 'rate'.\n");
 		return -1;
 	}
 
 	if (prate64) {
 		if (!rate64) {
-			fprintf(stderr, "\"peakrate\" requires \"rate\".\n");
+			fprintf(stderr, "'peakrate' requires 'rate'.\n");
 			return -1;
 		}
 		if (!mtu) {
-			fprintf(stderr, "\"mtu\" is required, if \"peakrate\" is requested.\n");
+			fprintf(stderr, "'mtu' is required, if 'peakrate' is requested.\n");
 			return -1;
 		}
 	}
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [v2,iproute2-next 2/2] action police: make 'mtu' could be set independently in police action
  2020-06-29  2:04 ` [v2,iproute2-next 1/2] action police: change the print message quotes style Po Liu
@ 2020-06-29  2:04   ` Po Liu
  2020-06-29  6:54     ` [v2,net-next] net:qos: police action offloading parameter 'burst' change to the original value Po Liu
  2020-07-05 15:35   ` [v2,iproute2-next 1/2] action police: change the print message quotes style David Ahern
  1 sibling, 1 reply; 7+ messages in thread
From: Po Liu @ 2020-06-29  2:04 UTC (permalink / raw)
  To: dsahern, linux-kernel, netdev
  Cc: stephen, davem, jhs, vlad, po.liu, claudiu.manoil,
	vladimir.oltean, alexandru.marginean

Current police action must set 'rate' and 'burst'. 'mtu' parameter
set the max frame size and could be set alone without 'rate' and 'burst'
in some situation. Offloading to hardware for example, 'mtu' could limit
the flow max frame size.

Signed-off-by: Po Liu <po.liu@nxp.com>
---
v1->v2 changes:
- fix the print message style and add space acked by Stephen Hemminger <stephen@networkplumber.org>

 tc/m_police.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tc/m_police.c b/tc/m_police.c
index 7eb47f8e..83b25db4 100644
--- a/tc/m_police.c
+++ b/tc/m_police.c
@@ -161,8 +161,8 @@ action_ctrl_ok:
 		return -1;
 
 	/* Must at least do late binding, use TB or ewma policing */
-	if (!rate64 && !avrate && !p.index) {
-		fprintf(stderr, "'rate' or 'avrate' MUST be specified.\n");
+	if (!rate64 && !avrate && !p.index && !mtu) {
+		fprintf(stderr, "'rate' or 'avrate' or 'mtu' MUST be specified.\n");
 		return -1;
 	}
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [v2,net-next] net:qos: police action offloading parameter 'burst' change to the original value
  2020-06-29  2:04   ` [v2,iproute2-next 2/2] action police: make 'mtu' could be set independently in police action Po Liu
@ 2020-06-29  6:54     ` Po Liu
  2020-06-30  0:33       ` David Miller
  0 siblings, 1 reply; 7+ messages in thread
From: Po Liu @ 2020-06-29  6:54 UTC (permalink / raw)
  To: davem, linux-kernel, netdev
  Cc: alexandre.belloni, andrew, vivien.didelot, f.fainelli, kuba,
	jiri, vlad, claudiu.manoil, vladimir.oltean, alexandru.marginean,
	michael.chan, vishal, saeedm, leon, jiri, idosch, UNGLinuxDriver,
	jhs, xiyou.wangcong, simon.horman, pablo, moshe, oss-drivers,
	Po Liu

Since 'tcfp_burst' with TICK factor, driver side always need to recover
it to the original value, this patch moves the generic calculation and
recover to the 'burst' original value before offloading to device driver.

Signed-off-by: Po Liu <po.liu@nxp.com>
Acked-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 drivers/net/dsa/ocelot/felix.c                |  4 +--
 drivers/net/dsa/sja1105/sja1105_flower.c      | 16 ++++------
 drivers/net/dsa/sja1105/sja1105_main.c        |  4 +--
 .../net/ethernet/freescale/enetc/enetc_qos.c  |  8 +----
 drivers/net/ethernet/mscc/ocelot_flower.c     |  4 +--
 drivers/net/ethernet/mscc/ocelot_net.c        |  4 +--
 .../ethernet/netronome/nfp/flower/qos_conf.c  |  6 ++--
 include/net/dsa.h                             |  2 +-
 include/net/flow_offload.h                    |  2 +-
 include/net/tc_act/tc_police.h                | 32 +++++++++++++++++--
 net/sched/cls_api.c                           |  2 +-
 11 files changed, 48 insertions(+), 36 deletions(-)

diff --git a/drivers/net/dsa/ocelot/felix.c b/drivers/net/dsa/ocelot/felix.c
index 25046777c993..75020af7f7a4 100644
--- a/drivers/net/dsa/ocelot/felix.c
+++ b/drivers/net/dsa/ocelot/felix.c
@@ -746,9 +746,7 @@ static int felix_port_policer_add(struct dsa_switch *ds, int port,
 	struct ocelot *ocelot = ds->priv;
 	struct ocelot_policer pol = {
 		.rate = div_u64(policer->rate_bytes_per_sec, 1000) * 8,
-		.burst = div_u64(policer->rate_bytes_per_sec *
-				 PSCHED_NS2TICKS(policer->burst),
-				 PSCHED_TICKS_PER_SEC),
+		.burst = policer->burst,
 	};
 
 	return ocelot_port_policer_add(ocelot, port, &pol);
diff --git a/drivers/net/dsa/sja1105/sja1105_flower.c b/drivers/net/dsa/sja1105/sja1105_flower.c
index 9ee8968610cd..12e76020bea3 100644
--- a/drivers/net/dsa/sja1105/sja1105_flower.c
+++ b/drivers/net/dsa/sja1105/sja1105_flower.c
@@ -31,7 +31,7 @@ static int sja1105_setup_bcast_policer(struct sja1105_private *priv,
 				       struct netlink_ext_ack *extack,
 				       unsigned long cookie, int port,
 				       u64 rate_bytes_per_sec,
-				       s64 burst)
+				       u32 burst)
 {
 	struct sja1105_rule *rule = sja1105_rule_find(priv, cookie);
 	struct sja1105_l2_policing_entry *policing;
@@ -79,9 +79,8 @@ static int sja1105_setup_bcast_policer(struct sja1105_private *priv,
 
 	policing[rule->bcast_pol.sharindx].rate = div_u64(rate_bytes_per_sec *
 							  512, 1000000);
-	policing[rule->bcast_pol.sharindx].smax = div_u64(rate_bytes_per_sec *
-							  PSCHED_NS2TICKS(burst),
-							  PSCHED_TICKS_PER_SEC);
+	policing[rule->bcast_pol.sharindx].smax = burst;
+
 	/* TODO: support per-flow MTU */
 	policing[rule->bcast_pol.sharindx].maxlen = VLAN_ETH_FRAME_LEN +
 						    ETH_FCS_LEN;
@@ -103,7 +102,7 @@ static int sja1105_setup_tc_policer(struct sja1105_private *priv,
 				    struct netlink_ext_ack *extack,
 				    unsigned long cookie, int port, int tc,
 				    u64 rate_bytes_per_sec,
-				    s64 burst)
+				    u32 burst)
 {
 	struct sja1105_rule *rule = sja1105_rule_find(priv, cookie);
 	struct sja1105_l2_policing_entry *policing;
@@ -152,9 +151,8 @@ static int sja1105_setup_tc_policer(struct sja1105_private *priv,
 
 	policing[rule->tc_pol.sharindx].rate = div_u64(rate_bytes_per_sec *
 						       512, 1000000);
-	policing[rule->tc_pol.sharindx].smax = div_u64(rate_bytes_per_sec *
-						       PSCHED_NS2TICKS(burst),
-						       PSCHED_TICKS_PER_SEC);
+	policing[rule->tc_pol.sharindx].smax = burst;
+
 	/* TODO: support per-flow MTU */
 	policing[rule->tc_pol.sharindx].maxlen = VLAN_ETH_FRAME_LEN +
 						 ETH_FCS_LEN;
@@ -177,7 +175,7 @@ static int sja1105_flower_policer(struct sja1105_private *priv, int port,
 				  unsigned long cookie,
 				  struct sja1105_key *key,
 				  u64 rate_bytes_per_sec,
-				  s64 burst)
+				  u32 burst)
 {
 	switch (key->type) {
 	case SJA1105_KEY_BCAST:
diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
index 789b288cc78b..5079e4aeef80 100644
--- a/drivers/net/dsa/sja1105/sja1105_main.c
+++ b/drivers/net/dsa/sja1105/sja1105_main.c
@@ -3324,9 +3324,7 @@ static int sja1105_port_policer_add(struct dsa_switch *ds, int port,
 	 */
 	policing[port].rate = div_u64(512 * policer->rate_bytes_per_sec,
 				      1000000);
-	policing[port].smax = div_u64(policer->rate_bytes_per_sec *
-				      PSCHED_NS2TICKS(policer->burst),
-				      PSCHED_TICKS_PER_SEC);
+	policing[port].smax = policer->burst;
 
 	return sja1105_static_config_reload(priv, SJA1105_BEST_EFFORT_POLICING);
 }
diff --git a/drivers/net/ethernet/freescale/enetc/enetc_qos.c b/drivers/net/ethernet/freescale/enetc/enetc_qos.c
index 4f670cbdf186..b8b336179d82 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_qos.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_qos.c
@@ -1241,8 +1241,6 @@ static int enetc_psfp_parse_clsflower(struct enetc_ndev_priv *priv,
 	/* Flow meter and max frame size */
 	if (entryp) {
 		if (entryp->police.burst) {
-			u64 temp;
-
 			fmi = kzalloc(sizeof(*fmi), GFP_KERNEL);
 			if (!fmi) {
 				err = -ENOMEM;
@@ -1250,11 +1248,7 @@ static int enetc_psfp_parse_clsflower(struct enetc_ndev_priv *priv,
 			}
 			refcount_set(&fmi->refcount, 1);
 			fmi->cir = entryp->police.rate_bytes_ps;
-			/* Convert to original burst value */
-			temp = entryp->police.burst * fmi->cir;
-			temp = div_u64(temp, 1000000000ULL);
-
-			fmi->cbs = temp;
+			fmi->cbs = entryp->police.burst;
 			fmi->index = entryp->police.index;
 			filter->flags |= ENETC_PSFP_FLAGS_FMI;
 			filter->fmi_index = fmi->index;
diff --git a/drivers/net/ethernet/mscc/ocelot_flower.c b/drivers/net/ethernet/mscc/ocelot_flower.c
index f2a85b06a6e7..ec1b6e2572ba 100644
--- a/drivers/net/ethernet/mscc/ocelot_flower.c
+++ b/drivers/net/ethernet/mscc/ocelot_flower.c
@@ -12,7 +12,6 @@ static int ocelot_flower_parse_action(struct flow_cls_offload *f,
 				      struct ocelot_vcap_filter *filter)
 {
 	const struct flow_action_entry *a;
-	s64 burst;
 	u64 rate;
 	int i;
 
@@ -35,8 +34,7 @@ static int ocelot_flower_parse_action(struct flow_cls_offload *f,
 			filter->action = OCELOT_VCAP_ACTION_POLICE;
 			rate = a->police.rate_bytes_ps;
 			filter->pol.rate = div_u64(rate, 1000) * 8;
-			burst = rate * PSCHED_NS2TICKS(a->police.burst);
-			filter->pol.burst = div_u64(burst, PSCHED_TICKS_PER_SEC);
+			filter->pol.burst = a->police.burst;
 			break;
 		default:
 			return -EOPNOTSUPP;
diff --git a/drivers/net/ethernet/mscc/ocelot_net.c b/drivers/net/ethernet/mscc/ocelot_net.c
index 702b42543fb7..b69187c51fa6 100644
--- a/drivers/net/ethernet/mscc/ocelot_net.c
+++ b/drivers/net/ethernet/mscc/ocelot_net.c
@@ -74,9 +74,7 @@ static int ocelot_setup_tc_cls_matchall(struct ocelot_port_private *priv,
 		}
 
 		pol.rate = (u32)div_u64(action->police.rate_bytes_ps, 1000) * 8;
-		pol.burst = (u32)div_u64(action->police.rate_bytes_ps *
-					 PSCHED_NS2TICKS(action->police.burst),
-					 PSCHED_TICKS_PER_SEC);
+		pol.burst = action->police.burst;
 
 		err = ocelot_port_policer_add(ocelot, port, &pol);
 		if (err) {
diff --git a/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c b/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c
index bb327d48d1ab..d4ce8f9ef3cc 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c
@@ -69,7 +69,8 @@ nfp_flower_install_rate_limiter(struct nfp_app *app, struct net_device *netdev,
 	struct nfp_repr *repr;
 	struct sk_buff *skb;
 	u32 netdev_port_id;
-	u64 burst, rate;
+	u32 burst;
+	u64 rate;
 
 	if (!nfp_netdev_is_nfp_repr(netdev)) {
 		NL_SET_ERR_MSG_MOD(extack, "unsupported offload: qos rate limit offload not supported on higher level port");
@@ -104,8 +105,7 @@ nfp_flower_install_rate_limiter(struct nfp_app *app, struct net_device *netdev,
 	}
 
 	rate = action->police.rate_bytes_ps;
-	burst = div_u64(rate * PSCHED_NS2TICKS(action->police.burst),
-			PSCHED_TICKS_PER_SEC);
+	burst = action->police.burst;
 	netdev_port_id = nfp_repr_get_port_id(netdev);
 
 	skb = nfp_flower_cmsg_alloc(repr->app, sizeof(struct nfp_police_config),
diff --git a/include/net/dsa.h b/include/net/dsa.h
index 50389772c597..4046ccd1945d 100644
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -144,7 +144,7 @@ struct dsa_mall_mirror_tc_entry {
 
 /* TC port policer entry */
 struct dsa_mall_policer_tc_entry {
-	s64 burst;
+	u32 burst;
 	u64 rate_bytes_per_sec;
 };
 
diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h
index 3bafb5124ac0..2dc25082eabf 100644
--- a/include/net/flow_offload.h
+++ b/include/net/flow_offload.h
@@ -233,7 +233,7 @@ struct flow_action_entry {
 		} sample;
 		struct {				/* FLOW_ACTION_POLICE */
 			u32			index;
-			s64			burst;
+			u32			burst;
 			u64			rate_bytes_ps;
 			u32			mtu;
 		} police;
diff --git a/include/net/tc_act/tc_police.h b/include/net/tc_act/tc_police.h
index cd973b10ae8c..6d1e26b709b5 100644
--- a/include/net/tc_act/tc_police.h
+++ b/include/net/tc_act/tc_police.h
@@ -59,14 +59,42 @@ static inline u64 tcf_police_rate_bytes_ps(const struct tc_action *act)
 	return params->rate.rate_bytes_ps;
 }
 
-static inline s64 tcf_police_tcfp_burst(const struct tc_action *act)
+static inline u32 tcf_police_burst(const struct tc_action *act)
 {
 	struct tcf_police *police = to_police(act);
 	struct tcf_police_params *params;
+	u32 burst;
 
 	params = rcu_dereference_protected(police->params,
 					   lockdep_is_held(&police->tcf_lock));
-	return params->tcfp_burst;
+
+	/*
+	 *  "rate" bytes   "burst" nanoseconds
+	 *  ------------ * -------------------
+	 *    1 second          2^6 ticks
+	 *
+	 * ------------------------------------
+	 *        NSEC_PER_SEC nanoseconds
+	 *        ------------------------
+	 *              2^6 ticks
+	 *
+	 *    "rate" bytes   "burst" nanoseconds            2^6 ticks
+	 *  = ------------ * ------------------- * ------------------------
+	 *      1 second          2^6 ticks        NSEC_PER_SEC nanoseconds
+	 *
+	 *   "rate" * "burst"
+	 * = ---------------- bytes/nanosecond
+	 *    NSEC_PER_SEC^2
+	 *
+	 *
+	 *   "rate" * "burst"
+	 * = ---------------- bytes/second
+	 *     NSEC_PER_SEC
+	 */
+	burst = div_u64(params->tcfp_burst * params->rate.rate_bytes_ps,
+			NSEC_PER_SEC);
+
+	return burst;
 }
 
 static inline u32 tcf_police_tcfp_mtu(const struct tc_action *act)
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 5bfa6b985bb8..cf324807fc42 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -3660,7 +3660,7 @@ int tc_setup_flow_action(struct flow_action *flow_action,
 			tcf_sample_get_group(entry, act);
 		} else if (is_tcf_police(act)) {
 			entry->id = FLOW_ACTION_POLICE;
-			entry->police.burst = tcf_police_tcfp_burst(act);
+			entry->police.burst = tcf_police_burst(act);
 			entry->police.rate_bytes_ps =
 				tcf_police_rate_bytes_ps(act);
 			entry->police.mtu = tcf_police_tcfp_mtu(act);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [v2,net-next] net:qos: police action offloading parameter 'burst' change to the original value
  2020-06-29  6:54     ` [v2,net-next] net:qos: police action offloading parameter 'burst' change to the original value Po Liu
@ 2020-06-30  0:33       ` David Miller
  0 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2020-06-30  0:33 UTC (permalink / raw)
  To: po.liu
  Cc: linux-kernel, netdev, alexandre.belloni, andrew, vivien.didelot,
	f.fainelli, kuba, jiri, vlad, claudiu.manoil, vladimir.oltean,
	alexandru.marginean, michael.chan, vishal, saeedm, leon, jiri,
	idosch, UNGLinuxDriver, jhs, xiyou.wangcong, simon.horman, pablo,
	moshe, oss-drivers

From: Po Liu <po.liu@nxp.com>
Date: Mon, 29 Jun 2020 14:54:16 +0800

> Since 'tcfp_burst' with TICK factor, driver side always need to recover
> it to the original value, this patch moves the generic calculation and
> recover to the 'burst' original value before offloading to device driver.
> 
> Signed-off-by: Po Liu <po.liu@nxp.com>
> Acked-by: Vladimir Oltean <vladimir.oltean@nxp.com>

Applied, thank you.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [v2,iproute2-next 1/2] action police: change the print message quotes style
  2020-06-29  2:04 ` [v2,iproute2-next 1/2] action police: change the print message quotes style Po Liu
  2020-06-29  2:04   ` [v2,iproute2-next 2/2] action police: make 'mtu' could be set independently in police action Po Liu
@ 2020-07-05 15:35   ` David Ahern
  1 sibling, 0 replies; 7+ messages in thread
From: David Ahern @ 2020-07-05 15:35 UTC (permalink / raw)
  To: Po Liu, linux-kernel, netdev
  Cc: stephen, davem, jhs, vlad, claudiu.manoil, vladimir.oltean,
	alexandru.marginean

On 6/28/20 8:04 PM, Po Liu wrote:
> Change the double quotes to single quotes in fprintf message to make it
> more readable.
> 
> Signed-off-by: Po Liu <po.liu@nxp.com>
> ---
> v1->v2 changes:
> - Patch new added
> 
>  tc/m_police.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 

applied both to iproute2-next. Thanks



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-07-05 15:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-28  1:46 [iproute2-next] action police: make 'mtu' could be set independently in police action Po Liu
2020-06-28 20:16 ` Stephen Hemminger
2020-06-29  2:04 ` [v2,iproute2-next 1/2] action police: change the print message quotes style Po Liu
2020-06-29  2:04   ` [v2,iproute2-next 2/2] action police: make 'mtu' could be set independently in police action Po Liu
2020-06-29  6:54     ` [v2,net-next] net:qos: police action offloading parameter 'burst' change to the original value Po Liu
2020-06-30  0:33       ` David Miller
2020-07-05 15:35   ` [v2,iproute2-next 1/2] action police: change the print message quotes style David Ahern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).