mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-06 06:21:31 +00:00
openvswitch: Increase maximum number of datapath ports.
Use hash table to store ports of datapath. Allow 64K ports per switch. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Signed-off-by: Jesse Gross <jesse@nicira.com>
This commit is contained in:
parent
46df7b8145
commit
15eac2a742
7 changed files with 111 additions and 49 deletions
|
@ -203,10 +203,7 @@ struct sw_flow_actions *ovs_flow_actions_alloc(const struct nlattr *actions)
|
|||
int actions_len = nla_len(actions);
|
||||
struct sw_flow_actions *sfa;
|
||||
|
||||
/* At least DP_MAX_PORTS actions are required to be able to flood a
|
||||
* packet to every port. Factor of 2 allows for setting VLAN tags,
|
||||
* etc. */
|
||||
if (actions_len > 2 * DP_MAX_PORTS * nla_total_size(4))
|
||||
if (actions_len > MAX_ACTIONS_BUFSIZE)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
sfa = kmalloc(sizeof(*sfa) + actions_len, GFP_KERNEL);
|
||||
|
@ -1000,7 +997,7 @@ int ovs_flow_from_nlattrs(struct sw_flow_key *swkey, int *key_lenp,
|
|||
swkey->phy.in_port = in_port;
|
||||
attrs &= ~(1 << OVS_KEY_ATTR_IN_PORT);
|
||||
} else {
|
||||
swkey->phy.in_port = USHRT_MAX;
|
||||
swkey->phy.in_port = DP_MAX_PORTS;
|
||||
}
|
||||
|
||||
/* Data attributes. */
|
||||
|
@ -1143,7 +1140,7 @@ int ovs_flow_metadata_from_nlattrs(u32 *priority, u16 *in_port,
|
|||
const struct nlattr *nla;
|
||||
int rem;
|
||||
|
||||
*in_port = USHRT_MAX;
|
||||
*in_port = DP_MAX_PORTS;
|
||||
*priority = 0;
|
||||
|
||||
nla_for_each_nested(nla, attr, rem) {
|
||||
|
@ -1180,7 +1177,7 @@ int ovs_flow_to_nlattrs(const struct sw_flow_key *swkey, struct sk_buff *skb)
|
|||
nla_put_u32(skb, OVS_KEY_ATTR_PRIORITY, swkey->phy.priority))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (swkey->phy.in_port != USHRT_MAX &&
|
||||
if (swkey->phy.in_port != DP_MAX_PORTS &&
|
||||
nla_put_u32(skb, OVS_KEY_ATTR_IN_PORT, swkey->phy.in_port))
|
||||
goto nla_put_failure;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue