diff mbox

examples: generator: UDP ports configuration

Message ID 1492001644-17339-2-git-send-email-bogdan.pricope@linaro.org
State Superseded
Headers show

Commit Message

Bogdan Pricope April 12, 2017, 12:54 p.m. UTC
Signed-off-by: Bogdan Pricope <bogdan.pricope@linaro.org>

---
 example/generator/odp_generator.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

-- 
1.9.1

Comments

Bogdan Pricope April 18, 2017, 7:31 a.m. UTC | #1
ping.

On 12 April 2017 at 15:54, Bogdan Pricope <bogdan.pricope@linaro.org> wrote:
> Signed-off-by: Bogdan Pricope <bogdan.pricope@linaro.org>

> ---

>  example/generator/odp_generator.c | 20 +++++++++++++++++---

>  1 file changed, 17 insertions(+), 3 deletions(-)

>

> diff --git a/example/generator/odp_generator.c b/example/generator/odp_generator.c

> index 95fb543..4817294 100644

> --- a/example/generator/odp_generator.c

> +++ b/example/generator/odp_generator.c

> @@ -64,6 +64,8 @@ typedef struct {

>         odph_ethaddr_t dstmac;  /**< dest mac addr */

>         unsigned int srcip;     /**< src ip addr */

>         unsigned int dstip;     /**< dest ip addr */

> +       unsigned short srcport; /**< src udp port */

> +       unsigned short dstport; /**< dest udp port */

>         int mode;               /**< work mode */

>         int number;             /**< packets number to be sent */

>         int payload;            /**< data len */

> @@ -233,8 +235,8 @@ static odp_packet_t setup_udp_pkt_ref(odp_pool_t pool)

>         odp_packet_l4_offset_set(pkt, ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);

>         odp_packet_has_udp_set(pkt, 1);

>         udp = (odph_udphdr_t *)(buf + ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);

> -       udp->src_port = 0;

> -       udp->dst_port = 0;

> +       udp->src_port = odp_cpu_to_be_16(args->appl.srcport);

> +       udp->dst_port = odp_cpu_to_be_16(args->appl.dstport);

>         udp->length = odp_cpu_to_be_16(args->appl.payload + ODPH_UDPHDR_LEN);

>         udp->chksum = 0;

>         udp->chksum = odph_ipv4_udp_chksum(pkt);

> @@ -1140,6 +1142,8 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>                 {"dstmac", required_argument, NULL, 'b'},

>                 {"srcip", required_argument, NULL, 's'},

>                 {"dstip", required_argument, NULL, 'd'},

> +               {"srcport", required_argument, NULL, 'e'},

> +               {"dstport", required_argument, NULL, 'f'},

>                 {"packetsize", required_argument, NULL, 'p'},

>                 {"mode", required_argument, NULL, 'm'},

>                 {"count", required_argument, NULL, 'n'},

> @@ -1150,7 +1154,7 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>                 {NULL, 0, NULL, 0}

>         };

>

> -       static const char *shortopts = "+I:a:b:s:d:p:i:m:n:t:w:c:x:h";

> +       static const char *shortopts = "+I:a:b:s:d:p:i:m:n:t:w:c:x:he:f:";

>

>         /* let helper collect its own arguments (e.g. --odph_proc) */

>         odph_parse_options(argc, argv, shortopts, longopts);

> @@ -1161,6 +1165,8 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>         appl_args->timeout = -1;

>         appl_args->interval = DEFAULT_PKT_INTERVAL;

>         appl_args->udp_tx_burst = 16;

> +       appl_args->srcport = 0;

> +       appl_args->dstport = 0;

>

>         opterr = 0; /* do not issue errors on helper options */

>

> @@ -1267,6 +1273,12 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>                         }

>                         break;

>

> +               case 'e':

> +                       appl_args->srcport = (unsigned short)atoi(optarg);

> +                       break;

> +               case 'f':

> +                       appl_args->dstport = (unsigned short)atoi(optarg);

> +                       break;

>                 case 'p':

>                         appl_args->payload = atoi(optarg);

>                         break;

> @@ -1380,6 +1392,8 @@ static void usage(char *progname)

>                "\n"

>                "Optional OPTIONS\n"

>                "  -h, --help       Display help and exit.\n"

> +              "  -e, --srcport src udp port\n"

> +              "  -f, --dstport dst udp port\n"

>                "  -p, --packetsize payload length of the packets\n"

>                "  -t, --timeout only for ping mode, wait ICMP reply timeout seconds\n"

>                "  -i, --interval wait interval ms between sending each packet\n"

> --

> 1.9.1

>
Maxim Uvarov April 18, 2017, 7:13 p.m. UTC | #2
On 04/12/17 15:54, Bogdan Pricope wrote:
> Signed-off-by: Bogdan Pricope <bogdan.pricope@linaro.org>

> ---

>  example/generator/odp_generator.c | 20 +++++++++++++++++---

>  1 file changed, 17 insertions(+), 3 deletions(-)

> 

> diff --git a/example/generator/odp_generator.c b/example/generator/odp_generator.c

> index 95fb543..4817294 100644

> --- a/example/generator/odp_generator.c

> +++ b/example/generator/odp_generator.c

> @@ -64,6 +64,8 @@ typedef struct {

>  	odph_ethaddr_t dstmac;	/**< dest mac addr */

>  	unsigned int srcip;	/**< src ip addr */

>  	unsigned int dstip;	/**< dest ip addr */

> +	unsigned short srcport;	/**< src udp port */

> +	unsigned short dstport;	/**< dest udp port */



why unsigned short and not uint16_t ?


>  	int mode;		/**< work mode */

>  	int number;		/**< packets number to be sent */

>  	int payload;		/**< data len */

> @@ -233,8 +235,8 @@ static odp_packet_t setup_udp_pkt_ref(odp_pool_t pool)

>  	odp_packet_l4_offset_set(pkt, ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);

>  	odp_packet_has_udp_set(pkt, 1);

>  	udp = (odph_udphdr_t *)(buf + ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);

> -	udp->src_port = 0;

> -	udp->dst_port = 0;

> +	udp->src_port = odp_cpu_to_be_16(args->appl.srcport);

> +	udp->dst_port = odp_cpu_to_be_16(args->appl.dstport);

>  	udp->length = odp_cpu_to_be_16(args->appl.payload + ODPH_UDPHDR_LEN);

>  	udp->chksum = 0;

>  	udp->chksum = odph_ipv4_udp_chksum(pkt);

> @@ -1140,6 +1142,8 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>  		{"dstmac", required_argument, NULL, 'b'},

>  		{"srcip", required_argument, NULL, 's'},

>  		{"dstip", required_argument, NULL, 'd'},

> +		{"srcport", required_argument, NULL, 'e'},

> +		{"dstport", required_argument, NULL, 'f'},

>  		{"packetsize", required_argument, NULL, 'p'},

>  		{"mode", required_argument, NULL, 'm'},

>  		{"count", required_argument, NULL, 'n'},

> @@ -1150,7 +1154,7 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>  		{NULL, 0, NULL, 0}

>  	};

>  

> -	static const char *shortopts = "+I:a:b:s:d:p:i:m:n:t:w:c:x:h";

> +	static const char *shortopts = "+I:a:b:s:d:p:i:m:n:t:w:c:x:he:f:";

>  

>  	/* let helper collect its own arguments (e.g. --odph_proc) */

>  	odph_parse_options(argc, argv, shortopts, longopts);

> @@ -1161,6 +1165,8 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>  	appl_args->timeout = -1;

>  	appl_args->interval = DEFAULT_PKT_INTERVAL;

>  	appl_args->udp_tx_burst = 16;

> +	appl_args->srcport = 0;

> +	appl_args->dstport = 0;

>  

>  	opterr = 0; /* do not issue errors on helper options */

>  

> @@ -1267,6 +1273,12 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>  			}

>  			break;

>  

> +		case 'e':

> +			appl_args->srcport = (unsigned short)atoi(optarg);

> +			break;

> +		case 'f':

> +			appl_args->dstport = (unsigned short)atoi(optarg);

> +			break;

>  		case 'p':

>  			appl_args->payload = atoi(optarg);

>  			break;

> @@ -1380,6 +1392,8 @@ static void usage(char *progname)

>  	       "\n"

>  	       "Optional OPTIONS\n"

>  	       "  -h, --help       Display help and exit.\n"

> +	       "  -e, --srcport src udp port\n"

> +	       "  -f, --dstport dst udp port\n"

>  	       "  -p, --packetsize payload length of the packets\n"

>  	       "  -t, --timeout only for ping mode, wait ICMP reply timeout seconds\n"

>  	       "  -i, --interval wait interval ms between sending each packet\n"

>
Bogdan Pricope April 25, 2017, 7:58 a.m. UTC | #3
On 18 April 2017 at 22:13, Maxim Uvarov <maxim.uvarov@linaro.org> wrote:
> On 04/12/17 15:54, Bogdan Pricope wrote:

>> Signed-off-by: Bogdan Pricope <bogdan.pricope@linaro.org>

>> ---

>>  example/generator/odp_generator.c | 20 +++++++++++++++++---

>>  1 file changed, 17 insertions(+), 3 deletions(-)

>>

>> diff --git a/example/generator/odp_generator.c b/example/generator/odp_generator.c

>> index 95fb543..4817294 100644

>> --- a/example/generator/odp_generator.c

>> +++ b/example/generator/odp_generator.c

>> @@ -64,6 +64,8 @@ typedef struct {

>>       odph_ethaddr_t dstmac;  /**< dest mac addr */

>>       unsigned int srcip;     /**< src ip addr */

>>       unsigned int dstip;     /**< dest ip addr */

>> +     unsigned short srcport; /**< src udp port */

>> +     unsigned short dstport; /**< dest udp port */

>

>

> why unsigned short and not uint16_t ?


We have this rule when modifying code: to keep the look-and-feel of
original code. In this case there are only int, char, unsigned int and
some odp types in this structure. Do you think there is a value in
using ‘uint16_t’ instead of ‘unsigned short’?

>

>

>>       int mode;               /**< work mode */

>>       int number;             /**< packets number to be sent */

>>       int payload;            /**< data len */

>> @@ -233,8 +235,8 @@ static odp_packet_t setup_udp_pkt_ref(odp_pool_t pool)

>>       odp_packet_l4_offset_set(pkt, ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);

>>       odp_packet_has_udp_set(pkt, 1);

>>       udp = (odph_udphdr_t *)(buf + ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);

>> -     udp->src_port = 0;

>> -     udp->dst_port = 0;

>> +     udp->src_port = odp_cpu_to_be_16(args->appl.srcport);

>> +     udp->dst_port = odp_cpu_to_be_16(args->appl.dstport);

>>       udp->length = odp_cpu_to_be_16(args->appl.payload + ODPH_UDPHDR_LEN);

>>       udp->chksum = 0;

>>       udp->chksum = odph_ipv4_udp_chksum(pkt);

>> @@ -1140,6 +1142,8 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>>               {"dstmac", required_argument, NULL, 'b'},

>>               {"srcip", required_argument, NULL, 's'},

>>               {"dstip", required_argument, NULL, 'd'},

>> +             {"srcport", required_argument, NULL, 'e'},

>> +             {"dstport", required_argument, NULL, 'f'},

>>               {"packetsize", required_argument, NULL, 'p'},

>>               {"mode", required_argument, NULL, 'm'},

>>               {"count", required_argument, NULL, 'n'},

>> @@ -1150,7 +1154,7 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>>               {NULL, 0, NULL, 0}

>>       };

>>

>> -     static const char *shortopts = "+I:a:b:s:d:p:i:m:n:t:w:c:x:h";

>> +     static const char *shortopts = "+I:a:b:s:d:p:i:m:n:t:w:c:x:he:f:";

>>

>>       /* let helper collect its own arguments (e.g. --odph_proc) */

>>       odph_parse_options(argc, argv, shortopts, longopts);

>> @@ -1161,6 +1165,8 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>>       appl_args->timeout = -1;

>>       appl_args->interval = DEFAULT_PKT_INTERVAL;

>>       appl_args->udp_tx_burst = 16;

>> +     appl_args->srcport = 0;

>> +     appl_args->dstport = 0;

>>

>>       opterr = 0; /* do not issue errors on helper options */

>>

>> @@ -1267,6 +1273,12 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args)

>>                       }

>>                       break;

>>

>> +             case 'e':

>> +                     appl_args->srcport = (unsigned short)atoi(optarg);

>> +                     break;

>> +             case 'f':

>> +                     appl_args->dstport = (unsigned short)atoi(optarg);

>> +                     break;

>>               case 'p':

>>                       appl_args->payload = atoi(optarg);

>>                       break;

>> @@ -1380,6 +1392,8 @@ static void usage(char *progname)

>>              "\n"

>>              "Optional OPTIONS\n"

>>              "  -h, --help       Display help and exit.\n"

>> +            "  -e, --srcport src udp port\n"

>> +            "  -f, --dstport dst udp port\n"

>>              "  -p, --packetsize payload length of the packets\n"

>>              "  -t, --timeout only for ping mode, wait ICMP reply timeout seconds\n"

>>              "  -i, --interval wait interval ms between sending each packet\n"

>>

>
diff mbox

Patch

diff --git a/example/generator/odp_generator.c b/example/generator/odp_generator.c
index 95fb543..4817294 100644
--- a/example/generator/odp_generator.c
+++ b/example/generator/odp_generator.c
@@ -64,6 +64,8 @@  typedef struct {
 	odph_ethaddr_t dstmac;	/**< dest mac addr */
 	unsigned int srcip;	/**< src ip addr */
 	unsigned int dstip;	/**< dest ip addr */
+	unsigned short srcport;	/**< src udp port */
+	unsigned short dstport;	/**< dest udp port */
 	int mode;		/**< work mode */
 	int number;		/**< packets number to be sent */
 	int payload;		/**< data len */
@@ -233,8 +235,8 @@  static odp_packet_t setup_udp_pkt_ref(odp_pool_t pool)
 	odp_packet_l4_offset_set(pkt, ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);
 	odp_packet_has_udp_set(pkt, 1);
 	udp = (odph_udphdr_t *)(buf + ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);
-	udp->src_port = 0;
-	udp->dst_port = 0;
+	udp->src_port = odp_cpu_to_be_16(args->appl.srcport);
+	udp->dst_port = odp_cpu_to_be_16(args->appl.dstport);
 	udp->length = odp_cpu_to_be_16(args->appl.payload + ODPH_UDPHDR_LEN);
 	udp->chksum = 0;
 	udp->chksum = odph_ipv4_udp_chksum(pkt);
@@ -1140,6 +1142,8 @@  static void parse_args(int argc, char *argv[], appl_args_t *appl_args)
 		{"dstmac", required_argument, NULL, 'b'},
 		{"srcip", required_argument, NULL, 's'},
 		{"dstip", required_argument, NULL, 'd'},
+		{"srcport", required_argument, NULL, 'e'},
+		{"dstport", required_argument, NULL, 'f'},
 		{"packetsize", required_argument, NULL, 'p'},
 		{"mode", required_argument, NULL, 'm'},
 		{"count", required_argument, NULL, 'n'},
@@ -1150,7 +1154,7 @@  static void parse_args(int argc, char *argv[], appl_args_t *appl_args)
 		{NULL, 0, NULL, 0}
 	};
 
-	static const char *shortopts = "+I:a:b:s:d:p:i:m:n:t:w:c:x:h";
+	static const char *shortopts = "+I:a:b:s:d:p:i:m:n:t:w:c:x:he:f:";
 
 	/* let helper collect its own arguments (e.g. --odph_proc) */
 	odph_parse_options(argc, argv, shortopts, longopts);
@@ -1161,6 +1165,8 @@  static void parse_args(int argc, char *argv[], appl_args_t *appl_args)
 	appl_args->timeout = -1;
 	appl_args->interval = DEFAULT_PKT_INTERVAL;
 	appl_args->udp_tx_burst = 16;
+	appl_args->srcport = 0;
+	appl_args->dstport = 0;
 
 	opterr = 0; /* do not issue errors on helper options */
 
@@ -1267,6 +1273,12 @@  static void parse_args(int argc, char *argv[], appl_args_t *appl_args)
 			}
 			break;
 
+		case 'e':
+			appl_args->srcport = (unsigned short)atoi(optarg);
+			break;
+		case 'f':
+			appl_args->dstport = (unsigned short)atoi(optarg);
+			break;
 		case 'p':
 			appl_args->payload = atoi(optarg);
 			break;
@@ -1380,6 +1392,8 @@  static void usage(char *progname)
 	       "\n"
 	       "Optional OPTIONS\n"
 	       "  -h, --help       Display help and exit.\n"
+	       "  -e, --srcport src udp port\n"
+	       "  -f, --dstport dst udp port\n"
 	       "  -p, --packetsize payload length of the packets\n"
 	       "  -t, --timeout only for ping mode, wait ICMP reply timeout seconds\n"
 	       "  -i, --interval wait interval ms between sending each packet\n"