diff options
| author | Stephen Hemminger <shemminger@linux-foundation.org> | 2007-03-04 19:07:28 -0500 |
|---|---|---|
| committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:23:29 -0400 |
| commit | 5fa6fc76f55c5c42fff52ae1d57a685b9373fcdc (patch) | |
| tree | e8933cb78972d499b1e6b469ae38dd02d66f54a2 | |
| parent | 25c4e53a4c9bfe45be52821f54ec5ce957519db2 (diff) | |
[PKTGEN]: use random32
Can use random32() now.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -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) |
