pktgen: Add behaviour flags macro to generate flags/names
authorDmitry Safonov <dima@arista.com>
Thu, 18 Jan 2018 18:31:35 +0000 (18:31 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Jan 2018 20:03:36 +0000 (15:03 -0500)
PKT_FALGS macro will be used to add package behavior names definitions
to simplify the code that prints/reads pkg flags.
Sorted the array in order of printing the flags in pktgen_if_show()
Note: Renamed IPSEC_ON => IPSEC for simplicity.

No visible behavior change expected.

Signed-off-by: Dmitry Safonov <dima@arista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/pktgen.c

index 20f1c873a1ed868180a6c7b4648830cceed84ad5..e6d862214cc05e6d211714210cb20bf18d30f83c 100644 (file)
 
 #define func_enter() pr_debug("entering %s\n", __func__);
 
+#define PKT_FLAGS                                                      \
+       pf(IPV6)                /* Interface in IPV6 Mode */            \
+       pf(IPSRC_RND)           /* IP-Src Random  */                    \
+       pf(IPDST_RND)           /* IP-Dst Random  */                    \
+       pf(TXSIZE_RND)          /* Transmit size is random */           \
+       pf(UDPSRC_RND)          /* UDP-Src Random */                    \
+       pf(UDPDST_RND)          /* UDP-Dst Random */                    \
+       pf(UDPCSUM)             /* Include UDP checksum */              \
+       pf(NO_TIMESTAMP)        /* Don't timestamp packets (default TS) */ \
+       pf(MPLS_RND)            /* Random MPLS labels */                \
+       pf(QUEUE_MAP_RND)       /* queue map Random */                  \
+       pf(QUEUE_MAP_CPU)       /* queue map mirrors smp_processor_id() */ \
+       pf(FLOW_SEQ)            /* Sequential flows */                  \
+       pf(IPSEC)               /* ipsec on for flows */                \
+       pf(MACSRC_RND)          /* MAC-Src Random */                    \
+       pf(MACDST_RND)          /* MAC-Dst Random */                    \
+       pf(VID_RND)             /* Random VLAN ID */                    \
+       pf(SVID_RND)            /* Random SVLAN ID */                   \
+       pf(NODE)                /* Node memory alloc*/                  \
+
+#define pf(flag)               flag##_SHIFT,
+enum pkt_flags {
+       PKT_FLAGS
+};
+#undef pf
+
 /* Device flag bits */
-#define F_IPSRC_RND   (1<<0)   /* IP-Src Random  */
-#define F_IPDST_RND   (1<<1)   /* IP-Dst Random  */
-#define F_UDPSRC_RND  (1<<2)   /* UDP-Src Random */
-#define F_UDPDST_RND  (1<<3)   /* UDP-Dst Random */
-#define F_MACSRC_RND  (1<<4)   /* MAC-Src Random */
-#define F_MACDST_RND  (1<<5)   /* MAC-Dst Random */
-#define F_TXSIZE_RND  (1<<6)   /* Transmit size is random */
-#define F_IPV6        (1<<7)   /* Interface in IPV6 Mode */
-#define F_MPLS_RND    (1<<8)   /* Random MPLS labels */
-#define F_VID_RND     (1<<9)   /* Random VLAN ID */
-#define F_SVID_RND    (1<<10)  /* Random SVLAN ID */
-#define F_FLOW_SEQ    (1<<11)  /* Sequential flows */
-#define F_IPSEC_ON    (1<<12)  /* ipsec on for flows */
-#define F_QUEUE_MAP_RND (1<<13)        /* queue map Random */
-#define F_QUEUE_MAP_CPU (1<<14)        /* queue map mirrors smp_processor_id() */
-#define F_NODE          (1<<15)        /* Node memory alloc*/
-#define F_UDPCSUM       (1<<16)        /* Include UDP checksum */
-#define F_NO_TIMESTAMP  (1<<17)        /* Don't timestamp packets (default TS) */
+#define pf(flag)               static const __u32 F_##flag = (1<<flag##_SHIFT);
+PKT_FLAGS
+#undef pf
 
 /* Thread control flag bits */
 #define T_STOP        (1<<0)   /* Stop run */
@@ -672,7 +683,7 @@ static int pktgen_if_show(struct seq_file *seq, void *v)
        }
 
 #ifdef CONFIG_XFRM
-       if (pkt_dev->flags & F_IPSEC_ON) {
+       if (pkt_dev->flags & F_IPSEC) {
                seq_puts(seq,  "IPSEC  ");
                if (pkt_dev->spi)
                        seq_printf(seq, "spi:%u", pkt_dev->spi);
@@ -1303,10 +1314,10 @@ static ssize_t pktgen_if_write(struct file *file,
                        pkt_dev->flags &= ~F_QUEUE_MAP_CPU;
 #ifdef CONFIG_XFRM
                else if (strcmp(f, "IPSEC") == 0)
-                       pkt_dev->flags |= F_IPSEC_ON;
+                       pkt_dev->flags |= F_IPSEC;
 
                else if (strcmp(f, "!IPSEC") == 0)
-                       pkt_dev->flags &= ~F_IPSEC_ON;
+                       pkt_dev->flags &= ~F_IPSEC;
 #endif
 
                else if (strcmp(f, "!IPV6") == 0)
@@ -2547,7 +2558,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev)
                                pkt_dev->flows[flow].cur_daddr =
                                    pkt_dev->cur_daddr;
 #ifdef CONFIG_XFRM
-                               if (pkt_dev->flags & F_IPSEC_ON)
+                               if (pkt_dev->flags & F_IPSEC)
                                        get_ipsec_sa(pkt_dev, flow);
 #endif
                                pkt_dev->nflows++;
@@ -2652,7 +2663,7 @@ static void free_SAs(struct pktgen_dev *pkt_dev)
 static int process_ipsec(struct pktgen_dev *pkt_dev,
                              struct sk_buff *skb, __be16 protocol)
 {
-       if (pkt_dev->flags & F_IPSEC_ON) {
+       if (pkt_dev->flags & F_IPSEC) {
                struct xfrm_state *x = pkt_dev->flows[pkt_dev->curfl].x;
                int nhead = 0;
                if (x) {