mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
openvswitch: Use ether_addr_copy
It's slightly smaller/faster for some architectures. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Jesse Gross <jesse@nicira.com>
This commit is contained in:
parent
2235ad1c3a
commit
8c63ff09bd
3 changed files with 16 additions and 16 deletions
|
@ -134,8 +134,8 @@ static int set_eth_addr(struct sk_buff *skb,
|
||||||
|
|
||||||
skb_postpull_rcsum(skb, eth_hdr(skb), ETH_ALEN * 2);
|
skb_postpull_rcsum(skb, eth_hdr(skb), ETH_ALEN * 2);
|
||||||
|
|
||||||
memcpy(eth_hdr(skb)->h_source, eth_key->eth_src, ETH_ALEN);
|
ether_addr_copy(eth_hdr(skb)->h_source, eth_key->eth_src);
|
||||||
memcpy(eth_hdr(skb)->h_dest, eth_key->eth_dst, ETH_ALEN);
|
ether_addr_copy(eth_hdr(skb)->h_dest, eth_key->eth_dst);
|
||||||
|
|
||||||
ovs_skb_postpush_rcsum(skb, eth_hdr(skb), ETH_ALEN * 2);
|
ovs_skb_postpush_rcsum(skb, eth_hdr(skb), ETH_ALEN * 2);
|
||||||
|
|
||||||
|
|
|
@ -372,14 +372,14 @@ static int parse_icmpv6(struct sk_buff *skb, struct sw_flow_key *key,
|
||||||
&& opt_len == 8) {
|
&& opt_len == 8) {
|
||||||
if (unlikely(!is_zero_ether_addr(key->ipv6.nd.sll)))
|
if (unlikely(!is_zero_ether_addr(key->ipv6.nd.sll)))
|
||||||
goto invalid;
|
goto invalid;
|
||||||
memcpy(key->ipv6.nd.sll,
|
ether_addr_copy(key->ipv6.nd.sll,
|
||||||
&nd->opt[offset+sizeof(*nd_opt)], ETH_ALEN);
|
&nd->opt[offset+sizeof(*nd_opt)]);
|
||||||
} else if (nd_opt->nd_opt_type == ND_OPT_TARGET_LL_ADDR
|
} else if (nd_opt->nd_opt_type == ND_OPT_TARGET_LL_ADDR
|
||||||
&& opt_len == 8) {
|
&& opt_len == 8) {
|
||||||
if (unlikely(!is_zero_ether_addr(key->ipv6.nd.tll)))
|
if (unlikely(!is_zero_ether_addr(key->ipv6.nd.tll)))
|
||||||
goto invalid;
|
goto invalid;
|
||||||
memcpy(key->ipv6.nd.tll,
|
ether_addr_copy(key->ipv6.nd.tll,
|
||||||
&nd->opt[offset+sizeof(*nd_opt)], ETH_ALEN);
|
&nd->opt[offset+sizeof(*nd_opt)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
icmp_len -= opt_len;
|
icmp_len -= opt_len;
|
||||||
|
@ -439,8 +439,8 @@ int ovs_flow_extract(struct sk_buff *skb, u16 in_port, struct sw_flow_key *key)
|
||||||
* header in the linear data area.
|
* header in the linear data area.
|
||||||
*/
|
*/
|
||||||
eth = eth_hdr(skb);
|
eth = eth_hdr(skb);
|
||||||
memcpy(key->eth.src, eth->h_source, ETH_ALEN);
|
ether_addr_copy(key->eth.src, eth->h_source);
|
||||||
memcpy(key->eth.dst, eth->h_dest, ETH_ALEN);
|
ether_addr_copy(key->eth.dst, eth->h_dest);
|
||||||
|
|
||||||
__skb_pull(skb, 2 * ETH_ALEN);
|
__skb_pull(skb, 2 * ETH_ALEN);
|
||||||
/* We are going to push all headers that we pull, so no need to
|
/* We are going to push all headers that we pull, so no need to
|
||||||
|
@ -538,8 +538,8 @@ int ovs_flow_extract(struct sk_buff *skb, u16 in_port, struct sw_flow_key *key)
|
||||||
key->ip.proto = ntohs(arp->ar_op);
|
key->ip.proto = ntohs(arp->ar_op);
|
||||||
memcpy(&key->ipv4.addr.src, arp->ar_sip, sizeof(key->ipv4.addr.src));
|
memcpy(&key->ipv4.addr.src, arp->ar_sip, sizeof(key->ipv4.addr.src));
|
||||||
memcpy(&key->ipv4.addr.dst, arp->ar_tip, sizeof(key->ipv4.addr.dst));
|
memcpy(&key->ipv4.addr.dst, arp->ar_tip, sizeof(key->ipv4.addr.dst));
|
||||||
memcpy(key->ipv4.arp.sha, arp->ar_sha, ETH_ALEN);
|
ether_addr_copy(key->ipv4.arp.sha, arp->ar_sha);
|
||||||
memcpy(key->ipv4.arp.tha, arp->ar_tha, ETH_ALEN);
|
ether_addr_copy(key->ipv4.arp.tha, arp->ar_tha);
|
||||||
}
|
}
|
||||||
} else if (key->eth.type == htons(ETH_P_IPV6)) {
|
} else if (key->eth.type == htons(ETH_P_IPV6)) {
|
||||||
int nh_len; /* IPv6 Header + Extensions */
|
int nh_len; /* IPv6 Header + Extensions */
|
||||||
|
|
|
@ -986,8 +986,8 @@ int ovs_nla_put_flow(const struct sw_flow_key *swkey,
|
||||||
goto nla_put_failure;
|
goto nla_put_failure;
|
||||||
|
|
||||||
eth_key = nla_data(nla);
|
eth_key = nla_data(nla);
|
||||||
memcpy(eth_key->eth_src, output->eth.src, ETH_ALEN);
|
ether_addr_copy(eth_key->eth_src, output->eth.src);
|
||||||
memcpy(eth_key->eth_dst, output->eth.dst, ETH_ALEN);
|
ether_addr_copy(eth_key->eth_dst, output->eth.dst);
|
||||||
|
|
||||||
if (swkey->eth.tci || swkey->eth.type == htons(ETH_P_8021Q)) {
|
if (swkey->eth.tci || swkey->eth.type == htons(ETH_P_8021Q)) {
|
||||||
__be16 eth_type;
|
__be16 eth_type;
|
||||||
|
@ -1059,8 +1059,8 @@ int ovs_nla_put_flow(const struct sw_flow_key *swkey,
|
||||||
arp_key->arp_sip = output->ipv4.addr.src;
|
arp_key->arp_sip = output->ipv4.addr.src;
|
||||||
arp_key->arp_tip = output->ipv4.addr.dst;
|
arp_key->arp_tip = output->ipv4.addr.dst;
|
||||||
arp_key->arp_op = htons(output->ip.proto);
|
arp_key->arp_op = htons(output->ip.proto);
|
||||||
memcpy(arp_key->arp_sha, output->ipv4.arp.sha, ETH_ALEN);
|
ether_addr_copy(arp_key->arp_sha, output->ipv4.arp.sha);
|
||||||
memcpy(arp_key->arp_tha, output->ipv4.arp.tha, ETH_ALEN);
|
ether_addr_copy(arp_key->arp_tha, output->ipv4.arp.tha);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((swkey->eth.type == htons(ETH_P_IP) ||
|
if ((swkey->eth.type == htons(ETH_P_IP) ||
|
||||||
|
@ -1147,8 +1147,8 @@ int ovs_nla_put_flow(const struct sw_flow_key *swkey,
|
||||||
nd_key = nla_data(nla);
|
nd_key = nla_data(nla);
|
||||||
memcpy(nd_key->nd_target, &output->ipv6.nd.target,
|
memcpy(nd_key->nd_target, &output->ipv6.nd.target,
|
||||||
sizeof(nd_key->nd_target));
|
sizeof(nd_key->nd_target));
|
||||||
memcpy(nd_key->nd_sll, output->ipv6.nd.sll, ETH_ALEN);
|
ether_addr_copy(nd_key->nd_sll, output->ipv6.nd.sll);
|
||||||
memcpy(nd_key->nd_tll, output->ipv6.nd.tll, ETH_ALEN);
|
ether_addr_copy(nd_key->nd_tll, output->ipv6.nd.tll);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue