diff options
author | David S. Miller <davem@davemloft.net> | 2018-01-24 15:03:37 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-24 15:03:37 -0500 |
commit | 46410c2efa9cb5b2f40c9ce24a75d147f44aedeb (patch) | |
tree | 16d2e3001ec0d1cc10b490818b945234bfc723d6 | |
parent | 969ade4086b9f25ac345637b549074ed341bf729 (diff) | |
parent | 52e12d5daea48c92f0b0354f4cdc127a2c0a3c52 (diff) |
Merge branch 'pktgen-Behavior-flags-fixes'
Dmitry Safonov says:
====================
pktgen: Behavior flags fixes
v2:
o fixed a nitpick from David Miller
There are a bunch of fixes/cleanups/Documentations.
Diffstat says for itself, regardless added docs and missed flag
parameters.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | Documentation/networking/pktgen.txt | 19 | ||||
-rw-r--r-- | net/core/pktgen.c | 266 |
2 files changed, 103 insertions, 182 deletions
diff --git a/Documentation/networking/pktgen.txt b/Documentation/networking/pktgen.txt index 2c4e3354e128..d2fd78f85aa4 100644 --- a/Documentation/networking/pktgen.txt +++ b/Documentation/networking/pktgen.txt | |||
@@ -12,8 +12,8 @@ suitable sample script and configure that. | |||
12 | On a dual CPU: | 12 | On a dual CPU: |
13 | 13 | ||
14 | ps aux | grep pkt | 14 | ps aux | grep pkt |
15 | root 129 0.3 0.0 0 0 ? SW 2003 523:20 [pktgen/0] | 15 | root 129 0.3 0.0 0 0 ? SW 2003 523:20 [kpktgend_0] |
16 | root 130 0.3 0.0 0 0 ? SW 2003 509:50 [pktgen/1] | 16 | root 130 0.3 0.0 0 0 ? SW 2003 509:50 [kpktgend_1] |
17 | 17 | ||
18 | 18 | ||
19 | For monitoring and control pktgen creates: | 19 | For monitoring and control pktgen creates: |
@@ -113,9 +113,16 @@ Configuring devices | |||
113 | =================== | 113 | =================== |
114 | This is done via the /proc interface, and most easily done via pgset | 114 | This is done via the /proc interface, and most easily done via pgset |
115 | as defined in the sample scripts. | 115 | as defined in the sample scripts. |
116 | You need to specify PGDEV environment variable to use functions from sample | ||
117 | scripts, i.e.: | ||
118 | export PGDEV=/proc/net/pktgen/eth4@0 | ||
119 | source samples/pktgen/functions.sh | ||
116 | 120 | ||
117 | Examples: | 121 | Examples: |
118 | 122 | ||
123 | pg_ctrl start starts injection. | ||
124 | pg_ctrl stop aborts injection. Also, ^C aborts generator. | ||
125 | |||
119 | pgset "clone_skb 1" sets the number of copies of the same packet | 126 | pgset "clone_skb 1" sets the number of copies of the same packet |
120 | pgset "clone_skb 0" use single SKB for all transmits | 127 | pgset "clone_skb 0" use single SKB for all transmits |
121 | pgset "burst 8" uses xmit_more API to queue 8 copies of the same | 128 | pgset "burst 8" uses xmit_more API to queue 8 copies of the same |
@@ -165,8 +172,12 @@ Examples: | |||
165 | IPSEC # IPsec encapsulation (needs CONFIG_XFRM) | 172 | IPSEC # IPsec encapsulation (needs CONFIG_XFRM) |
166 | NODE_ALLOC # node specific memory allocation | 173 | NODE_ALLOC # node specific memory allocation |
167 | NO_TIMESTAMP # disable timestamping | 174 | NO_TIMESTAMP # disable timestamping |
175 | pgset 'flag ![name]' Clear a flag to determine behaviour. | ||
176 | Note that you might need to use single quote in | ||
177 | interactive mode, so that your shell wouldn't expand | ||
178 | the specified flag as a history command. | ||
168 | 179 | ||
169 | pgset spi SPI_VALUE Set specific SA used to transform packet. | 180 | pgset "spi [SPI_VALUE]" Set specific SA used to transform packet. |
170 | 181 | ||
171 | pgset "udp_src_min 9" set UDP source port min, If < udp_src_max, then | 182 | pgset "udp_src_min 9" set UDP source port min, If < udp_src_max, then |
172 | cycle through the port range. | 183 | cycle through the port range. |
@@ -207,8 +218,6 @@ Examples: | |||
207 | pgset "tos XX" set former IPv4 TOS field (e.g. "tos 28" for AF11 no ECN, default 00) | 218 | pgset "tos XX" set former IPv4 TOS field (e.g. "tos 28" for AF11 no ECN, default 00) |
208 | pgset "traffic_class XX" set former IPv6 TRAFFIC CLASS (e.g. "traffic_class B8" for EF no ECN, default 00) | 219 | pgset "traffic_class XX" set former IPv6 TRAFFIC CLASS (e.g. "traffic_class B8" for EF no ECN, default 00) |
209 | 220 | ||
210 | pgset stop aborts injection. Also, ^C aborts generator. | ||
211 | |||
212 | pgset "rate 300M" set rate to 300 Mb/s | 221 | pgset "rate 300M" set rate to 300 Mb/s |
213 | pgset "ratep 1000000" set rate to 1Mpps | 222 | pgset "ratep 1000000" set rate to 1Mpps |
214 | 223 | ||
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 4fcfcb14e7c6..b8ab5c829511 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c | |||
@@ -184,25 +184,44 @@ | |||
184 | 184 | ||
185 | #define func_enter() pr_debug("entering %s\n", __func__); | 185 | #define func_enter() pr_debug("entering %s\n", __func__); |
186 | 186 | ||
187 | #define PKT_FLAGS \ | ||
188 | pf(IPV6) /* Interface in IPV6 Mode */ \ | ||
189 | pf(IPSRC_RND) /* IP-Src Random */ \ | ||
190 | pf(IPDST_RND) /* IP-Dst Random */ \ | ||
191 | pf(TXSIZE_RND) /* Transmit size is random */ \ | ||
192 | pf(UDPSRC_RND) /* UDP-Src Random */ \ | ||
193 | pf(UDPDST_RND) /* UDP-Dst Random */ \ | ||
194 | pf(UDPCSUM) /* Include UDP checksum */ \ | ||
195 | pf(NO_TIMESTAMP) /* Don't timestamp packets (default TS) */ \ | ||
196 | pf(MPLS_RND) /* Random MPLS labels */ \ | ||
197 | pf(QUEUE_MAP_RND) /* queue map Random */ \ | ||
198 | pf(QUEUE_MAP_CPU) /* queue map mirrors smp_processor_id() */ \ | ||
199 | pf(FLOW_SEQ) /* Sequential flows */ \ | ||
200 | pf(IPSEC) /* ipsec on for flows */ \ | ||
201 | pf(MACSRC_RND) /* MAC-Src Random */ \ | ||
202 | pf(MACDST_RND) /* MAC-Dst Random */ \ | ||
203 | pf(VID_RND) /* Random VLAN ID */ \ | ||
204 | pf(SVID_RND) /* Random SVLAN ID */ \ | ||
205 | pf(NODE) /* Node memory alloc*/ \ | ||
206 | |||
207 | #define pf(flag) flag##_SHIFT, | ||
208 | enum pkt_flags { | ||
209 | PKT_FLAGS | ||
210 | }; | ||
211 | #undef pf | ||
212 | |||
187 | /* Device flag bits */ | 213 | /* Device flag bits */ |
188 | #define F_IPSRC_RND (1<<0) /* IP-Src Random */ | 214 | #define pf(flag) static const __u32 F_##flag = (1<<flag##_SHIFT); |
189 | #define F_IPDST_RND (1<<1) /* IP-Dst Random */ | 215 | PKT_FLAGS |
190 | #define F_UDPSRC_RND (1<<2) /* UDP-Src Random */ | 216 | #undef pf |
191 | #define F_UDPDST_RND (1<<3) /* UDP-Dst Random */ | 217 | |
192 | #define F_MACSRC_RND (1<<4) /* MAC-Src Random */ | 218 | #define pf(flag) __stringify(flag), |
193 | #define F_MACDST_RND (1<<5) /* MAC-Dst Random */ | 219 | static char *pkt_flag_names[] = { |
194 | #define F_TXSIZE_RND (1<<6) /* Transmit size is random */ | 220 | PKT_FLAGS |
195 | #define F_IPV6 (1<<7) /* Interface in IPV6 Mode */ | 221 | }; |
196 | #define F_MPLS_RND (1<<8) /* Random MPLS labels */ | 222 | #undef pf |
197 | #define F_VID_RND (1<<9) /* Random VLAN ID */ | 223 | |
198 | #define F_SVID_RND (1<<10) /* Random SVLAN ID */ | 224 | #define NR_PKT_FLAGS ARRAY_SIZE(pkt_flag_names) |
199 | #define F_FLOW_SEQ (1<<11) /* Sequential flows */ | ||
200 | #define F_IPSEC_ON (1<<12) /* ipsec on for flows */ | ||
201 | #define F_QUEUE_MAP_RND (1<<13) /* queue map Random */ | ||
202 | #define F_QUEUE_MAP_CPU (1<<14) /* queue map mirrors smp_processor_id() */ | ||
203 | #define F_NODE (1<<15) /* Node memory alloc*/ | ||
204 | #define F_UDPCSUM (1<<16) /* Include UDP checksum */ | ||
205 | #define F_NO_TIMESTAMP (1<<17) /* Don't timestamp packets (default TS) */ | ||
206 | 225 | ||
207 | /* Thread control flag bits */ | 226 | /* Thread control flag bits */ |
208 | #define T_STOP (1<<0) /* Stop run */ | 227 | #define T_STOP (1<<0) /* Stop run */ |
@@ -534,6 +553,7 @@ static int pktgen_if_show(struct seq_file *seq, void *v) | |||
534 | { | 553 | { |
535 | const struct pktgen_dev *pkt_dev = seq->private; | 554 | const struct pktgen_dev *pkt_dev = seq->private; |
536 | ktime_t stopped; | 555 | ktime_t stopped; |
556 | unsigned int i; | ||
537 | u64 idle; | 557 | u64 idle; |
538 | 558 | ||
539 | seq_printf(seq, | 559 | seq_printf(seq, |
@@ -595,7 +615,6 @@ static int pktgen_if_show(struct seq_file *seq, void *v) | |||
595 | pkt_dev->src_mac_count, pkt_dev->dst_mac_count); | 615 | pkt_dev->src_mac_count, pkt_dev->dst_mac_count); |
596 | 616 | ||
597 | if (pkt_dev->nr_labels) { | 617 | if (pkt_dev->nr_labels) { |
598 | unsigned int i; | ||
599 | seq_puts(seq, " mpls: "); | 618 | seq_puts(seq, " mpls: "); |
600 | for (i = 0; i < pkt_dev->nr_labels; i++) | 619 | for (i = 0; i < pkt_dev->nr_labels; i++) |
601 | seq_printf(seq, "%08x%s", ntohl(pkt_dev->labels[i]), | 620 | seq_printf(seq, "%08x%s", ntohl(pkt_dev->labels[i]), |
@@ -631,68 +650,21 @@ static int pktgen_if_show(struct seq_file *seq, void *v) | |||
631 | 650 | ||
632 | seq_puts(seq, " Flags: "); | 651 | seq_puts(seq, " Flags: "); |
633 | 652 | ||
634 | if (pkt_dev->flags & F_IPV6) | 653 | for (i = 0; i < NR_PKT_FLAGS; i++) { |
635 | seq_puts(seq, "IPV6 "); | 654 | if (i == F_FLOW_SEQ) |
636 | 655 | if (!pkt_dev->cflows) | |
637 | if (pkt_dev->flags & F_IPSRC_RND) | 656 | continue; |
638 | seq_puts(seq, "IPSRC_RND "); | ||
639 | |||
640 | if (pkt_dev->flags & F_IPDST_RND) | ||
641 | seq_puts(seq, "IPDST_RND "); | ||
642 | |||
643 | if (pkt_dev->flags & F_TXSIZE_RND) | ||
644 | seq_puts(seq, "TXSIZE_RND "); | ||
645 | |||
646 | if (pkt_dev->flags & F_UDPSRC_RND) | ||
647 | seq_puts(seq, "UDPSRC_RND "); | ||
648 | |||
649 | if (pkt_dev->flags & F_UDPDST_RND) | ||
650 | seq_puts(seq, "UDPDST_RND "); | ||
651 | |||
652 | if (pkt_dev->flags & F_UDPCSUM) | ||
653 | seq_puts(seq, "UDPCSUM "); | ||
654 | |||
655 | if (pkt_dev->flags & F_NO_TIMESTAMP) | ||
656 | seq_puts(seq, "NO_TIMESTAMP "); | ||
657 | |||
658 | if (pkt_dev->flags & F_MPLS_RND) | ||
659 | seq_puts(seq, "MPLS_RND "); | ||
660 | |||
661 | if (pkt_dev->flags & F_QUEUE_MAP_RND) | ||
662 | seq_puts(seq, "QUEUE_MAP_RND "); | ||
663 | 657 | ||
664 | if (pkt_dev->flags & F_QUEUE_MAP_CPU) | 658 | if (pkt_dev->flags & (1 << i)) |
665 | seq_puts(seq, "QUEUE_MAP_CPU "); | 659 | seq_printf(seq, "%s ", pkt_flag_names[i]); |
666 | 660 | else if (i == F_FLOW_SEQ) | |
667 | if (pkt_dev->cflows) { | 661 | seq_puts(seq, "FLOW_RND "); |
668 | if (pkt_dev->flags & F_FLOW_SEQ) | ||
669 | seq_puts(seq, "FLOW_SEQ "); /*in sequence flows*/ | ||
670 | else | ||
671 | seq_puts(seq, "FLOW_RND "); | ||
672 | } | ||
673 | 662 | ||
674 | #ifdef CONFIG_XFRM | 663 | #ifdef CONFIG_XFRM |
675 | if (pkt_dev->flags & F_IPSEC_ON) { | 664 | if (i == F_IPSEC && pkt_dev->spi) |
676 | seq_puts(seq, "IPSEC "); | ||
677 | if (pkt_dev->spi) | ||
678 | seq_printf(seq, "spi:%u", pkt_dev->spi); | 665 | seq_printf(seq, "spi:%u", pkt_dev->spi); |
679 | } | ||
680 | #endif | 666 | #endif |
681 | 667 | } | |
682 | if (pkt_dev->flags & F_MACSRC_RND) | ||
683 | seq_puts(seq, "MACSRC_RND "); | ||
684 | |||
685 | if (pkt_dev->flags & F_MACDST_RND) | ||
686 | seq_puts(seq, "MACDST_RND "); | ||
687 | |||
688 | if (pkt_dev->flags & F_VID_RND) | ||
689 | seq_puts(seq, "VID_RND "); | ||
690 | |||
691 | if (pkt_dev->flags & F_SVID_RND) | ||
692 | seq_puts(seq, "SVID_RND "); | ||
693 | |||
694 | if (pkt_dev->flags & F_NODE) | ||
695 | seq_puts(seq, "NODE_ALLOC "); | ||
696 | 668 | ||
697 | seq_puts(seq, "\n"); | 669 | seq_puts(seq, "\n"); |
698 | 670 | ||
@@ -858,6 +830,35 @@ static ssize_t get_labels(const char __user *buffer, struct pktgen_dev *pkt_dev) | |||
858 | return i; | 830 | return i; |
859 | } | 831 | } |
860 | 832 | ||
833 | static __u32 pktgen_read_flag(const char *f, bool *disable) | ||
834 | { | ||
835 | __u32 i; | ||
836 | |||
837 | if (f[0] == '!') { | ||
838 | *disable = true; | ||
839 | f++; | ||
840 | } | ||
841 | |||
842 | for (i = 0; i < NR_PKT_FLAGS; i++) { | ||
843 | if (!IS_ENABLED(CONFIG_XFRM) && i == IPSEC_SHIFT) | ||
844 | continue; | ||
845 | |||
846 | /* allow only disabling ipv6 flag */ | ||
847 | if (!*disable && i == IPV6_SHIFT) | ||
848 | continue; | ||
849 | |||
850 | if (strcmp(f, pkt_flag_names[i]) == 0) | ||
851 | return 1 << i; | ||
852 | } | ||
853 | |||
854 | if (strcmp(f, "FLOW_RND") == 0) { | ||
855 | *disable = !*disable; | ||
856 | return F_FLOW_SEQ; | ||
857 | } | ||
858 | |||
859 | return 0; | ||
860 | } | ||
861 | |||
861 | static ssize_t pktgen_if_write(struct file *file, | 862 | static ssize_t pktgen_if_write(struct file *file, |
862 | const char __user * user_buffer, size_t count, | 863 | const char __user * user_buffer, size_t count, |
863 | loff_t * offset) | 864 | loff_t * offset) |
@@ -1215,7 +1216,10 @@ static ssize_t pktgen_if_write(struct file *file, | |||
1215 | return count; | 1216 | return count; |
1216 | } | 1217 | } |
1217 | if (!strcmp(name, "flag")) { | 1218 | if (!strcmp(name, "flag")) { |
1219 | __u32 flag; | ||
1218 | char f[32]; | 1220 | char f[32]; |
1221 | bool disable = false; | ||
1222 | |||
1219 | memset(f, 0, 32); | 1223 | memset(f, 0, 32); |
1220 | len = strn_len(&user_buffer[i], sizeof(f) - 1); | 1224 | len = strn_len(&user_buffer[i], sizeof(f) - 1); |
1221 | if (len < 0) | 1225 | if (len < 0) |
@@ -1224,107 +1228,15 @@ static ssize_t pktgen_if_write(struct file *file, | |||
1224 | if (copy_from_user(f, &user_buffer[i], len)) | 1228 | if (copy_from_user(f, &user_buffer[i], len)) |
1225 | return -EFAULT; | 1229 | return -EFAULT; |
1226 | i += len; | 1230 | i += len; |
1227 | if (strcmp(f, "IPSRC_RND") == 0) | ||
1228 | pkt_dev->flags |= F_IPSRC_RND; | ||
1229 | |||
1230 | else if (strcmp(f, "!IPSRC_RND") == 0) | ||
1231 | pkt_dev->flags &= ~F_IPSRC_RND; | ||
1232 | |||
1233 | else if (strcmp(f, "TXSIZE_RND") == 0) | ||
1234 | pkt_dev->flags |= F_TXSIZE_RND; | ||
1235 | |||
1236 | else if (strcmp(f, "!TXSIZE_RND") == 0) | ||
1237 | pkt_dev->flags &= ~F_TXSIZE_RND; | ||
1238 | |||
1239 | else if (strcmp(f, "IPDST_RND") == 0) | ||
1240 | pkt_dev->flags |= F_IPDST_RND; | ||
1241 | |||
1242 | else if (strcmp(f, "!IPDST_RND") == 0) | ||
1243 | pkt_dev->flags &= ~F_IPDST_RND; | ||
1244 | |||
1245 | else if (strcmp(f, "UDPSRC_RND") == 0) | ||
1246 | pkt_dev->flags |= F_UDPSRC_RND; | ||
1247 | |||
1248 | else if (strcmp(f, "!UDPSRC_RND") == 0) | ||
1249 | pkt_dev->flags &= ~F_UDPSRC_RND; | ||
1250 | |||
1251 | else if (strcmp(f, "UDPDST_RND") == 0) | ||
1252 | pkt_dev->flags |= F_UDPDST_RND; | ||
1253 | |||
1254 | else if (strcmp(f, "!UDPDST_RND") == 0) | ||
1255 | pkt_dev->flags &= ~F_UDPDST_RND; | ||
1256 | |||
1257 | else if (strcmp(f, "MACSRC_RND") == 0) | ||
1258 | pkt_dev->flags |= F_MACSRC_RND; | ||
1259 | |||
1260 | else if (strcmp(f, "!MACSRC_RND") == 0) | ||
1261 | pkt_dev->flags &= ~F_MACSRC_RND; | ||
1262 | |||
1263 | else if (strcmp(f, "MACDST_RND") == 0) | ||
1264 | pkt_dev->flags |= F_MACDST_RND; | ||
1265 | |||
1266 | else if (strcmp(f, "!MACDST_RND") == 0) | ||
1267 | pkt_dev->flags &= ~F_MACDST_RND; | ||
1268 | |||
1269 | else if (strcmp(f, "MPLS_RND") == 0) | ||
1270 | pkt_dev->flags |= F_MPLS_RND; | ||
1271 | |||
1272 | else if (strcmp(f, "!MPLS_RND") == 0) | ||
1273 | pkt_dev->flags &= ~F_MPLS_RND; | ||
1274 | 1231 | ||
1275 | else if (strcmp(f, "VID_RND") == 0) | 1232 | flag = pktgen_read_flag(f, &disable); |
1276 | pkt_dev->flags |= F_VID_RND; | ||
1277 | 1233 | ||
1278 | else if (strcmp(f, "!VID_RND") == 0) | 1234 | if (flag) { |
1279 | pkt_dev->flags &= ~F_VID_RND; | 1235 | if (disable) |
1280 | 1236 | pkt_dev->flags &= ~flag; | |
1281 | else if (strcmp(f, "SVID_RND") == 0) | 1237 | else |
1282 | pkt_dev->flags |= F_SVID_RND; | 1238 | pkt_dev->flags |= flag; |
1283 | 1239 | } else { | |
1284 | else if (strcmp(f, "!SVID_RND") == 0) | ||
1285 | pkt_dev->flags &= ~F_SVID_RND; | ||
1286 | |||
1287 | else if (strcmp(f, "FLOW_SEQ") == 0) | ||
1288 | pkt_dev->flags |= F_FLOW_SEQ; | ||
1289 | |||
1290 | else if (strcmp(f, "QUEUE_MAP_RND") == 0) | ||
1291 | pkt_dev->flags |= F_QUEUE_MAP_RND; | ||
1292 | |||
1293 | else if (strcmp(f, "!QUEUE_MAP_RND") == 0) | ||
1294 | pkt_dev->flags &= ~F_QUEUE_MAP_RND; | ||
1295 | |||
1296 | else if (strcmp(f, "QUEUE_MAP_CPU") == 0) | ||
1297 | pkt_dev->flags |= F_QUEUE_MAP_CPU; | ||
1298 | |||
1299 | else if (strcmp(f, "!QUEUE_MAP_CPU") == 0) | ||
1300 | pkt_dev->flags &= ~F_QUEUE_MAP_CPU; | ||
1301 | #ifdef CONFIG_XFRM | ||
1302 | else if (strcmp(f, "IPSEC") == 0) | ||
1303 | pkt_dev->flags |= F_IPSEC_ON; | ||
1304 | #endif | ||
1305 | |||
1306 | else if (strcmp(f, "!IPV6") == 0) | ||
1307 | pkt_dev->flags &= ~F_IPV6; | ||
1308 | |||
1309 | else if (strcmp(f, "NODE_ALLOC") == 0) | ||
1310 | pkt_dev->flags |= F_NODE; | ||
1311 | |||
1312 | else if (strcmp(f, "!NODE_ALLOC") == 0) | ||
1313 | pkt_dev->flags &= ~F_NODE; | ||
1314 | |||
1315 | else if (strcmp(f, "UDPCSUM") == 0) | ||
1316 | pkt_dev->flags |= F_UDPCSUM; | ||
1317 | |||
1318 | else if (strcmp(f, "!UDPCSUM") == 0) | ||
1319 | pkt_dev->flags &= ~F_UDPCSUM; | ||
1320 | |||
1321 | else if (strcmp(f, "NO_TIMESTAMP") == 0) | ||
1322 | pkt_dev->flags |= F_NO_TIMESTAMP; | ||
1323 | |||
1324 | else if (strcmp(f, "!NO_TIMESTAMP") == 0) | ||
1325 | pkt_dev->flags &= ~F_NO_TIMESTAMP; | ||
1326 | |||
1327 | else { | ||
1328 | sprintf(pg_result, | 1240 | sprintf(pg_result, |
1329 | "Flag -:%s:- unknown\nAvailable flags, (prepend ! to un-set flag):\n%s", | 1241 | "Flag -:%s:- unknown\nAvailable flags, (prepend ! to un-set flag):\n%s", |
1330 | f, | 1242 | f, |
@@ -2541,7 +2453,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2541 | pkt_dev->flows[flow].cur_daddr = | 2453 | pkt_dev->flows[flow].cur_daddr = |
2542 | pkt_dev->cur_daddr; | 2454 | pkt_dev->cur_daddr; |
2543 | #ifdef CONFIG_XFRM | 2455 | #ifdef CONFIG_XFRM |
2544 | if (pkt_dev->flags & F_IPSEC_ON) | 2456 | if (pkt_dev->flags & F_IPSEC) |
2545 | get_ipsec_sa(pkt_dev, flow); | 2457 | get_ipsec_sa(pkt_dev, flow); |
2546 | #endif | 2458 | #endif |
2547 | pkt_dev->nflows++; | 2459 | pkt_dev->nflows++; |
@@ -2646,7 +2558,7 @@ static void free_SAs(struct pktgen_dev *pkt_dev) | |||
2646 | static int process_ipsec(struct pktgen_dev *pkt_dev, | 2558 | static int process_ipsec(struct pktgen_dev *pkt_dev, |
2647 | struct sk_buff *skb, __be16 protocol) | 2559 | struct sk_buff *skb, __be16 protocol) |
2648 | { | 2560 | { |
2649 | if (pkt_dev->flags & F_IPSEC_ON) { | 2561 | if (pkt_dev->flags & F_IPSEC) { |
2650 | struct xfrm_state *x = pkt_dev->flows[pkt_dev->curfl].x; | 2562 | struct xfrm_state *x = pkt_dev->flows[pkt_dev->curfl].x; |
2651 | int nhead = 0; | 2563 | int nhead = 0; |
2652 | if (x) { | 2564 | if (x) { |