diff mbox series

[ovs-dev,v3,5/8] sflow: Fix check for disabled receive time.

Message ID 8a0b90e8fd9673e959cb92c5f55730fb5240719d.1716979680.git.echaudro@redhat.com
State Accepted
Commit f673d0cd5fc5709e6869672a7d3c920c5ae5740d
Headers show
Series Coverity fixes. | expand

Checks

Context Check Description
ovsrobot/apply-robot warning apply and check: warning
ovsrobot/github-robot-_Build_and_Test fail github build: failed
ovsrobot/intel-ovs-compilation success test: success
ovsrobot/github-robot-_Build_and_Test fail github build: failed
ovsrobot/github-robot-_Build_and_Test fail github build: failed
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/github-robot-_Build_and_Test success github build: passed

Commit Message

Eelco Chaudron May 29, 2024, 10:53 a.m. UTC
Changed sFlowRcvrTimeout to a uint32_t to avoid time_t warnings
reported by Coverity. A uint32_t is more than large enough as
this is a (seconds) tick counter and OVS is not even using this.

Fixes: c72e245a0e2c ("Add InMon's sFlow Agent library to the build system.")
Acked-by: Ilya Maximets <i.maximets@ovn.org>
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
--
Note that this checkpatch reports an 'Improper whitespace
around control block' error on this patch + some warnings.
But I did not want to change the code style in this entire file.
---
 lib/sflow_api.h              | 6 +++---
 lib/sflow_receiver.c         | 7 ++++---
 ofproto/ofproto-dpif-sflow.c | 2 +-
 3 files changed, 8 insertions(+), 7 deletions(-)

Comments

Ilya Maximets May 29, 2024, 8:19 p.m. UTC | #1
On 5/29/24 12:53, Eelco Chaudron wrote:
> Changed sFlowRcvrTimeout to a uint32_t to avoid time_t warnings
> reported by Coverity. A uint32_t is more than large enough as
> this is a (seconds) tick counter and OVS is not even using this.
> 
> Fixes: c72e245a0e2c ("Add InMon's sFlow Agent library to the build system.")
> Acked-by: Ilya Maximets <i.maximets@ovn.org>
> Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
> --
> Note that this checkpatch reports an 'Improper whitespace
> around control block' error on this patch + some warnings.
> But I did not want to change the code style in this entire file.
> ---

Recheck-request: github-robot
Eelco Chaudron May 30, 2024, 7:28 a.m. UTC | #2
On 29 May 2024, at 12:53, Eelco Chaudron wrote:

> Changed sFlowRcvrTimeout to a uint32_t to avoid time_t warnings
> reported by Coverity. A uint32_t is more than large enough as
> this is a (seconds) tick counter and OVS is not even using this.
>
> Fixes: c72e245a0e2c ("Add InMon's sFlow Agent library to the build system.")
> Acked-by: Ilya Maximets <i.maximets@ovn.org>
> Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
> --
> Note that this checkpatch reports an 'Improper whitespace
> around control block' error on this patch + some warnings.
> But I did not want to change the code style in this entire file.
> ---
>  lib/sflow_api.h              | 6 +++---
>  lib/sflow_receiver.c         | 7 ++++---
>  ofproto/ofproto-dpif-sflow.c | 2 +-
>  3 files changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/lib/sflow_api.h b/lib/sflow_api.h
> index f4bfa5ead..b884a6a7d 100644
> --- a/lib/sflow_api.h
> +++ b/lib/sflow_api.h
> @@ -97,7 +97,7 @@ typedef struct _SFLReceiver {
>      struct _SFLReceiver *nxt;
>      /* MIB fields */
>      char *sFlowRcvrOwner;
> -    time_t sFlowRcvrTimeout;
> +    u_int32_t sFlowRcvrTimeout;
>      u_int32_t sFlowRcvrMaximumDatagramSize;
>      SFLAddress sFlowRcvrAddress;
>      u_int32_t sFlowRcvrPort;
> @@ -251,8 +251,8 @@ SFLSampler *sfl_agent_getSamplerByIfIndex(SFLAgent *agent, u_int32_t ifIndex);
>  /* receiver */
>  char *      sfl_receiver_get_sFlowRcvrOwner(SFLReceiver *receiver);
>  void        sfl_receiver_set_sFlowRcvrOwner(SFLReceiver *receiver, char *sFlowRcvrOwner);
> -time_t      sfl_receiver_get_sFlowRcvrTimeout(SFLReceiver *receiver);
> -void        sfl_receiver_set_sFlowRcvrTimeout(SFLReceiver *receiver, time_t sFlowRcvrTimeout);
> +u_int32_t   sfl_receiver_get_sFlowRcvrTimeout(SFLReceiver *receiver);
> +void        sfl_receiver_set_sFlowRcvrTimeout(SFLReceiver *receiver, u_int32_t sFlowRcvrTimeout);
>  u_int32_t   sfl_receiver_get_sFlowRcvrMaximumDatagramSize(SFLReceiver *receiver);
>  void        sfl_receiver_set_sFlowRcvrMaximumDatagramSize(SFLReceiver *receiver, u_int32_t sFlowRcvrMaximumDatagramSize);
>  SFLAddress *sfl_receiver_get_sFlowRcvrAddress(SFLReceiver *receiver);
> diff --git a/lib/sflow_receiver.c b/lib/sflow_receiver.c
> index 4162518e3..3c5aec897 100644
> --- a/lib/sflow_receiver.c
> +++ b/lib/sflow_receiver.c
> @@ -102,10 +102,10 @@ void sfl_receiver_set_sFlowRcvrOwner(SFLReceiver *receiver, char *sFlowRcvrOwner
>  	reset(receiver);
>      }
>  }
> -time_t sfl_receiver_get_sFlowRcvrTimeout(SFLReceiver *receiver) {
> +u_int32_t sfl_receiver_get_sFlowRcvrTimeout(SFLReceiver *receiver) {
>      return receiver->sFlowRcvrTimeout;
>  }
> -void sfl_receiver_set_sFlowRcvrTimeout(SFLReceiver *receiver, time_t sFlowRcvrTimeout) {
> +void sfl_receiver_set_sFlowRcvrTimeout(SFLReceiver *receiver, u_int32_t sFlowRcvrTimeout) {
>      receiver->sFlowRcvrTimeout =sFlowRcvrTimeout;
>  }
>  u_int32_t sfl_receiver_get_sFlowRcvrMaximumDatagramSize(SFLReceiver *receiver) {
> @@ -146,7 +146,8 @@ void sfl_receiver_tick(SFLReceiver *receiver)
>      // if there are any samples to send, flush them now
>      if(receiver->sampleCollector.numSamples > 0) sendSample(receiver);
>      // check the timeout
> -    if(receiver->sFlowRcvrTimeout && (u_int32_t)receiver->sFlowRcvrTimeout != 0xFFFFFFFF) {
> +    if(receiver->sFlowRcvrTimeout
> +       && receiver->sFlowRcvrTimeout != UINT32_MAX) {
>  	// count down one tick and reset if we reach 0
>  	if(--receiver->sFlowRcvrTimeout == 0) reset(receiver);
>      }
> diff --git a/ofproto/ofproto-dpif-sflow.c b/ofproto/ofproto-dpif-sflow.c
> index 4a68e9b94..80405b68a 100644
> --- a/ofproto/ofproto-dpif-sflow.c
> +++ b/ofproto/ofproto-dpif-sflow.c
> @@ -808,7 +808,7 @@ dpif_sflow_set_options(struct dpif_sflow *ds,
>
>      receiver = sfl_agent_addReceiver(ds->sflow_agent);
>      sfl_receiver_set_sFlowRcvrOwner(receiver, "Open vSwitch sFlow");
> -    sfl_receiver_set_sFlowRcvrTimeout(receiver, 0xffffffff);
> +    sfl_receiver_set_sFlowRcvrTimeout(receiver, UINT32_MAX);
>
>      /* Set the sampling_rate down in the datapath. */
>      ds->probability = MAX(1, UINT32_MAX / ds->options->sampling_rate);
> -- 
> 2.44.0

Recheck-request: github-robot
diff mbox series

Patch

diff --git a/lib/sflow_api.h b/lib/sflow_api.h
index f4bfa5ead..b884a6a7d 100644
--- a/lib/sflow_api.h
+++ b/lib/sflow_api.h
@@ -97,7 +97,7 @@  typedef struct _SFLReceiver {
     struct _SFLReceiver *nxt;
     /* MIB fields */
     char *sFlowRcvrOwner;
-    time_t sFlowRcvrTimeout;
+    u_int32_t sFlowRcvrTimeout;
     u_int32_t sFlowRcvrMaximumDatagramSize;
     SFLAddress sFlowRcvrAddress;
     u_int32_t sFlowRcvrPort;
@@ -251,8 +251,8 @@  SFLSampler *sfl_agent_getSamplerByIfIndex(SFLAgent *agent, u_int32_t ifIndex);
 /* receiver */
 char *      sfl_receiver_get_sFlowRcvrOwner(SFLReceiver *receiver);
 void        sfl_receiver_set_sFlowRcvrOwner(SFLReceiver *receiver, char *sFlowRcvrOwner);
-time_t      sfl_receiver_get_sFlowRcvrTimeout(SFLReceiver *receiver);
-void        sfl_receiver_set_sFlowRcvrTimeout(SFLReceiver *receiver, time_t sFlowRcvrTimeout);
+u_int32_t   sfl_receiver_get_sFlowRcvrTimeout(SFLReceiver *receiver);
+void        sfl_receiver_set_sFlowRcvrTimeout(SFLReceiver *receiver, u_int32_t sFlowRcvrTimeout);
 u_int32_t   sfl_receiver_get_sFlowRcvrMaximumDatagramSize(SFLReceiver *receiver);
 void        sfl_receiver_set_sFlowRcvrMaximumDatagramSize(SFLReceiver *receiver, u_int32_t sFlowRcvrMaximumDatagramSize);
 SFLAddress *sfl_receiver_get_sFlowRcvrAddress(SFLReceiver *receiver);
diff --git a/lib/sflow_receiver.c b/lib/sflow_receiver.c
index 4162518e3..3c5aec897 100644
--- a/lib/sflow_receiver.c
+++ b/lib/sflow_receiver.c
@@ -102,10 +102,10 @@  void sfl_receiver_set_sFlowRcvrOwner(SFLReceiver *receiver, char *sFlowRcvrOwner
 	reset(receiver);
     }
 }
-time_t sfl_receiver_get_sFlowRcvrTimeout(SFLReceiver *receiver) {
+u_int32_t sfl_receiver_get_sFlowRcvrTimeout(SFLReceiver *receiver) {
     return receiver->sFlowRcvrTimeout;
 }
-void sfl_receiver_set_sFlowRcvrTimeout(SFLReceiver *receiver, time_t sFlowRcvrTimeout) {
+void sfl_receiver_set_sFlowRcvrTimeout(SFLReceiver *receiver, u_int32_t sFlowRcvrTimeout) {
     receiver->sFlowRcvrTimeout =sFlowRcvrTimeout;
 }
 u_int32_t sfl_receiver_get_sFlowRcvrMaximumDatagramSize(SFLReceiver *receiver) {
@@ -146,7 +146,8 @@  void sfl_receiver_tick(SFLReceiver *receiver)
     // if there are any samples to send, flush them now
     if(receiver->sampleCollector.numSamples > 0) sendSample(receiver);
     // check the timeout
-    if(receiver->sFlowRcvrTimeout && (u_int32_t)receiver->sFlowRcvrTimeout != 0xFFFFFFFF) {
+    if(receiver->sFlowRcvrTimeout
+       && receiver->sFlowRcvrTimeout != UINT32_MAX) {
 	// count down one tick and reset if we reach 0
 	if(--receiver->sFlowRcvrTimeout == 0) reset(receiver);
     }
diff --git a/ofproto/ofproto-dpif-sflow.c b/ofproto/ofproto-dpif-sflow.c
index 4a68e9b94..80405b68a 100644
--- a/ofproto/ofproto-dpif-sflow.c
+++ b/ofproto/ofproto-dpif-sflow.c
@@ -808,7 +808,7 @@  dpif_sflow_set_options(struct dpif_sflow *ds,
 
     receiver = sfl_agent_addReceiver(ds->sflow_agent);
     sfl_receiver_set_sFlowRcvrOwner(receiver, "Open vSwitch sFlow");
-    sfl_receiver_set_sFlowRcvrTimeout(receiver, 0xffffffff);
+    sfl_receiver_set_sFlowRcvrTimeout(receiver, UINT32_MAX);
 
     /* Set the sampling_rate down in the datapath. */
     ds->probability = MAX(1, UINT32_MAX / ds->options->sampling_rate);