diff options
Diffstat (limited to 'net/core/pktgen.c')
-rw-r--r-- | net/core/pktgen.c | 52 |
1 files changed, 19 insertions, 33 deletions
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index a6bdcb0d43d9..3b2556d01ad6 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c | |||
@@ -465,17 +465,6 @@ static inline __u64 pg_div64(__u64 n, __u64 base) | |||
465 | return tmp; | 465 | return tmp; |
466 | } | 466 | } |
467 | 467 | ||
468 | static inline u32 pktgen_random(void) | ||
469 | { | ||
470 | #if 0 | ||
471 | __u32 n; | ||
472 | get_random_bytes(&n, 4); | ||
473 | return n; | ||
474 | #else | ||
475 | return net_random(); | ||
476 | #endif | ||
477 | } | ||
478 | |||
479 | static inline __u64 getCurMs(void) | 468 | static inline __u64 getCurMs(void) |
480 | { | 469 | { |
481 | struct timeval tv; | 470 | struct timeval tv; |
@@ -2092,7 +2081,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2092 | int flow = 0; | 2081 | int flow = 0; |
2093 | 2082 | ||
2094 | if (pkt_dev->cflows) { | 2083 | if (pkt_dev->cflows) { |
2095 | flow = pktgen_random() % pkt_dev->cflows; | 2084 | flow = random32() % pkt_dev->cflows; |
2096 | 2085 | ||
2097 | if (pkt_dev->flows[flow].count > pkt_dev->lflow) | 2086 | if (pkt_dev->flows[flow].count > pkt_dev->lflow) |
2098 | pkt_dev->flows[flow].count = 0; | 2087 | pkt_dev->flows[flow].count = 0; |
@@ -2104,7 +2093,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2104 | __u32 tmp; | 2093 | __u32 tmp; |
2105 | 2094 | ||
2106 | if (pkt_dev->flags & F_MACSRC_RND) | 2095 | if (pkt_dev->flags & F_MACSRC_RND) |
2107 | mc = pktgen_random() % (pkt_dev->src_mac_count); | 2096 | mc = random32() % pkt_dev->src_mac_count; |
2108 | else { | 2097 | else { |
2109 | mc = pkt_dev->cur_src_mac_offset++; | 2098 | mc = pkt_dev->cur_src_mac_offset++; |
2110 | if (pkt_dev->cur_src_mac_offset > | 2099 | if (pkt_dev->cur_src_mac_offset > |
@@ -2130,7 +2119,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2130 | __u32 tmp; | 2119 | __u32 tmp; |
2131 | 2120 | ||
2132 | if (pkt_dev->flags & F_MACDST_RND) | 2121 | if (pkt_dev->flags & F_MACDST_RND) |
2133 | mc = pktgen_random() % (pkt_dev->dst_mac_count); | 2122 | mc = random32() % pkt_dev->dst_mac_count; |
2134 | 2123 | ||
2135 | else { | 2124 | else { |
2136 | mc = pkt_dev->cur_dst_mac_offset++; | 2125 | mc = pkt_dev->cur_dst_mac_offset++; |
@@ -2157,24 +2146,23 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2157 | for(i = 0; i < pkt_dev->nr_labels; i++) | 2146 | for(i = 0; i < pkt_dev->nr_labels; i++) |
2158 | if (pkt_dev->labels[i] & MPLS_STACK_BOTTOM) | 2147 | if (pkt_dev->labels[i] & MPLS_STACK_BOTTOM) |
2159 | pkt_dev->labels[i] = MPLS_STACK_BOTTOM | | 2148 | pkt_dev->labels[i] = MPLS_STACK_BOTTOM | |
2160 | ((__force __be32)pktgen_random() & | 2149 | ((__force __be32)random32() & |
2161 | htonl(0x000fffff)); | 2150 | htonl(0x000fffff)); |
2162 | } | 2151 | } |
2163 | 2152 | ||
2164 | if ((pkt_dev->flags & F_VID_RND) && (pkt_dev->vlan_id != 0xffff)) { | 2153 | if ((pkt_dev->flags & F_VID_RND) && (pkt_dev->vlan_id != 0xffff)) { |
2165 | pkt_dev->vlan_id = pktgen_random() % 4096; | 2154 | pkt_dev->vlan_id = random32() & (4096-1); |
2166 | } | 2155 | } |
2167 | 2156 | ||
2168 | if ((pkt_dev->flags & F_SVID_RND) && (pkt_dev->svlan_id != 0xffff)) { | 2157 | if ((pkt_dev->flags & F_SVID_RND) && (pkt_dev->svlan_id != 0xffff)) { |
2169 | pkt_dev->svlan_id = pktgen_random() % 4096; | 2158 | pkt_dev->svlan_id = random32() & (4096 - 1); |
2170 | } | 2159 | } |
2171 | 2160 | ||
2172 | if (pkt_dev->udp_src_min < pkt_dev->udp_src_max) { | 2161 | if (pkt_dev->udp_src_min < pkt_dev->udp_src_max) { |
2173 | if (pkt_dev->flags & F_UDPSRC_RND) | 2162 | if (pkt_dev->flags & F_UDPSRC_RND) |
2174 | pkt_dev->cur_udp_src = | 2163 | pkt_dev->cur_udp_src = random32() % |
2175 | ((pktgen_random() % | 2164 | (pkt_dev->udp_src_max - pkt_dev->udp_src_min) |
2176 | (pkt_dev->udp_src_max - pkt_dev->udp_src_min)) + | 2165 | + pkt_dev->udp_src_min; |
2177 | pkt_dev->udp_src_min); | ||
2178 | 2166 | ||
2179 | else { | 2167 | else { |
2180 | pkt_dev->cur_udp_src++; | 2168 | pkt_dev->cur_udp_src++; |
@@ -2185,10 +2173,9 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2185 | 2173 | ||
2186 | if (pkt_dev->udp_dst_min < pkt_dev->udp_dst_max) { | 2174 | if (pkt_dev->udp_dst_min < pkt_dev->udp_dst_max) { |
2187 | if (pkt_dev->flags & F_UDPDST_RND) { | 2175 | if (pkt_dev->flags & F_UDPDST_RND) { |
2188 | pkt_dev->cur_udp_dst = | 2176 | pkt_dev->cur_udp_dst = random32() % |
2189 | ((pktgen_random() % | 2177 | (pkt_dev->udp_dst_max - pkt_dev->udp_dst_min) |
2190 | (pkt_dev->udp_dst_max - pkt_dev->udp_dst_min)) + | 2178 | + pkt_dev->udp_dst_min; |
2191 | pkt_dev->udp_dst_min); | ||
2192 | } else { | 2179 | } else { |
2193 | pkt_dev->cur_udp_dst++; | 2180 | pkt_dev->cur_udp_dst++; |
2194 | if (pkt_dev->cur_udp_dst >= pkt_dev->udp_dst_max) | 2181 | if (pkt_dev->cur_udp_dst >= pkt_dev->udp_dst_max) |
@@ -2203,7 +2190,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2203 | saddr_max))) { | 2190 | saddr_max))) { |
2204 | __u32 t; | 2191 | __u32 t; |
2205 | if (pkt_dev->flags & F_IPSRC_RND) | 2192 | if (pkt_dev->flags & F_IPSRC_RND) |
2206 | t = ((pktgen_random() % (imx - imn)) + imn); | 2193 | t = random32() % (imx - imn) + imn; |
2207 | else { | 2194 | else { |
2208 | t = ntohl(pkt_dev->cur_saddr); | 2195 | t = ntohl(pkt_dev->cur_saddr); |
2209 | t++; | 2196 | t++; |
@@ -2224,14 +2211,13 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2224 | __be32 s; | 2211 | __be32 s; |
2225 | if (pkt_dev->flags & F_IPDST_RND) { | 2212 | if (pkt_dev->flags & F_IPDST_RND) { |
2226 | 2213 | ||
2227 | t = pktgen_random() % (imx - imn) + imn; | 2214 | t = random32() % (imx - imn) + imn; |
2228 | s = htonl(t); | 2215 | s = htonl(t); |
2229 | 2216 | ||
2230 | while (LOOPBACK(s) || MULTICAST(s) | 2217 | while (LOOPBACK(s) || MULTICAST(s) |
2231 | || BADCLASS(s) || ZERONET(s) | 2218 | || BADCLASS(s) || ZERONET(s) |
2232 | || LOCAL_MCAST(s)) { | 2219 | || LOCAL_MCAST(s)) { |
2233 | t = (pktgen_random() % | 2220 | t = random32() % (imx - imn) + imn; |
2234 | (imx - imn)) + imn; | ||
2235 | s = htonl(t); | 2221 | s = htonl(t); |
2236 | } | 2222 | } |
2237 | pkt_dev->cur_daddr = s; | 2223 | pkt_dev->cur_daddr = s; |
@@ -2263,7 +2249,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2263 | 2249 | ||
2264 | for (i = 0; i < 4; i++) { | 2250 | for (i = 0; i < 4; i++) { |
2265 | pkt_dev->cur_in6_daddr.s6_addr32[i] = | 2251 | pkt_dev->cur_in6_daddr.s6_addr32[i] = |
2266 | (((__force __be32)pktgen_random() | | 2252 | (((__force __be32)random32() | |
2267 | pkt_dev->min_in6_daddr.s6_addr32[i]) & | 2253 | pkt_dev->min_in6_daddr.s6_addr32[i]) & |
2268 | pkt_dev->max_in6_daddr.s6_addr32[i]); | 2254 | pkt_dev->max_in6_daddr.s6_addr32[i]); |
2269 | } | 2255 | } |
@@ -2273,9 +2259,9 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2273 | if (pkt_dev->min_pkt_size < pkt_dev->max_pkt_size) { | 2259 | if (pkt_dev->min_pkt_size < pkt_dev->max_pkt_size) { |
2274 | __u32 t; | 2260 | __u32 t; |
2275 | if (pkt_dev->flags & F_TXSIZE_RND) { | 2261 | if (pkt_dev->flags & F_TXSIZE_RND) { |
2276 | t = ((pktgen_random() % | 2262 | t = random32() % |
2277 | (pkt_dev->max_pkt_size - pkt_dev->min_pkt_size)) | 2263 | (pkt_dev->max_pkt_size - pkt_dev->min_pkt_size) |
2278 | + pkt_dev->min_pkt_size); | 2264 | + pkt_dev->min_pkt_size; |
2279 | } else { | 2265 | } else { |
2280 | t = pkt_dev->cur_pkt_size + 1; | 2266 | t = pkt_dev->cur_pkt_size + 1; |
2281 | if (t > pkt_dev->max_pkt_size) | 2267 | if (t > pkt_dev->max_pkt_size) |