flow_action_for_each(i, act, &rule->action) {
                switch (act->id) {
                case FLOW_ACTION_POLICE:
+                       if (act->police.rate_pkt_ps) {
+                               NL_SET_ERR_MSG_MOD(extack,
+                                                  "QoS offload not support packets per second");
+                               goto out;
+                       }
+
                        rc = sja1105_flower_policer(priv, port, extack, cookie,
                                                    &key,
                                                    act->police.rate_bytes_ps,
 
        flow_action_for_each(i, entry, actions) {
                switch (entry->id) {
                case FLOW_ACTION_POLICE:
+                       if (entry->police.rate_pkt_ps) {
+                               NL_SET_ERR_MSG_MOD(extack,
+                                                  "QoS offload not support packets per second");
+                               return -EOPNOTSUPP;
+                       }
                        /* Convert bytes per second to bits per second */
                        if (entry->police.rate_bytes_ps * 8 > max_link_rate) {
                                NL_SET_ERR_MSG_MOD(extack,
        flow_action_for_each(i, entry, &cls->rule->action)
                if (entry->id == FLOW_ACTION_POLICE)
                        break;
-
+       if (entry->police.rate_pkt_ps) {
+               NL_SET_ERR_MSG_MOD(extack,
+                                  "QoS offload not support packets per second");
+               return -EOPNOTSUPP;
+       }
        /* Convert from bytes per second to Kbps */
        p.u.params.maxrate = div_u64(entry->police.rate_bytes_ps * 8, 1000);
        p.u.params.channel = pi->tx_chan;
 
 
        /* Flow meter and max frame size */
        if (entryp) {
+               if (entryp->police.rate_pkt_ps) {
+                       NL_SET_ERR_MSG_MOD(extack, "QoS offload not support packets per second");
+                       err = -EOPNOTSUPP;
+                       goto free_sfi;
+               }
                if (entryp->police.burst) {
                        fmi = kzalloc(sizeof(*fmi), GFP_KERNEL);
                        if (!fmi) {
 
        flow_action_for_each(i, act, flow_action) {
                switch (act->id) {
                case FLOW_ACTION_POLICE:
+                       if (act->police.rate_pkt_ps) {
+                               NL_SET_ERR_MSG_MOD(extack, "QoS offload not support packets per second");
+                               return -EOPNOTSUPP;
+                       }
                        err = apply_police_params(priv, act->police.rate_bytes_ps, extack);
                        if (err)
                                return err;
 
                                return -EOPNOTSUPP;
                        }
 
+                       if (act->police.rate_pkt_ps) {
+                               NL_SET_ERR_MSG_MOD(extack, "QoS offload not support packets per second");
+                               return -EOPNOTSUPP;
+                       }
+
                        /* The kernel might adjust the requested burst size so
                         * that it is not exactly a power of two. Re-adjust it
                         * here since the hardware only supports burst sizes
 
                                                   "Last action must be GOTO");
                                return -EOPNOTSUPP;
                        }
+                       if (a->police.rate_pkt_ps) {
+                               NL_SET_ERR_MSG_MOD(extack,
+                                                  "QoS offload not support packets per second");
+                               return -EOPNOTSUPP;
+                       }
                        filter->action.police_ena = true;
                        rate = a->police.rate_bytes_ps;
                        filter->action.pol.rate = div_u64(rate, 1000) * 8;
 
                        return -EEXIST;
                }
 
+               if (action->police.rate_pkt_ps) {
+                       NL_SET_ERR_MSG_MOD(extack,
+                                          "QoS offload not support packets per second");
+                       return -EOPNOTSUPP;
+               }
+
                pol.rate = (u32)div_u64(action->police.rate_bytes_ps, 1000) * 8;
                pol.burst = action->police.burst;
 
 
                return -EOPNOTSUPP;
        }
 
+       if (action->police.rate_pkt_ps) {
+               NL_SET_ERR_MSG_MOD(extack, "unsupported offload: qos rate limit offload not support packets per second");
+               return -EOPNOTSUPP;
+       }
+
        rate = action->police.rate_bytes_ps;
        burst = action->police.burst;
        netdev_port_id = nfp_repr_get_port_id(netdev);