mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 14:25:26 +00:00
Expand tunnel IDs from 32 to 64 bits.
We have a need to identify tunnels with keys longer than 32 bits. This commit adds basic datapath and OpenFlow support for such keys. It doesn't actually add any tunnel protocols that support 64-bit keys, so this is not very useful yet. The 'arg' member of struct odp_msg had to be expanded to 64-bits also, because it sometimes contains a tunnel ID. This member also contains the argument passed to ODPAT_CONTROLLER, so I expanded that action's argument to 64 bits also so that it can use the full width of the expanded 'arg'. Userspace doesn't take advantage of the new space though (it was only using 16 bits anyhow). This commit has been tested only to the extent that it doesn't disrupt basic Open vSwitch operation. I have not tested it with tunnel traffic. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com> Feature #3976.
This commit is contained in:
@@ -138,7 +138,7 @@ static int do_del_port(struct dp_netdev *, uint16_t port_no);
|
||||
static int dpif_netdev_open(const struct dpif_class *, const char *name,
|
||||
bool create, struct dpif **);
|
||||
static int dp_netdev_output_control(struct dp_netdev *, const struct ofpbuf *,
|
||||
int queue_no, int port_no, uint32_t arg);
|
||||
int queue_no, int port_no, uint64_t arg);
|
||||
static int dp_netdev_execute_actions(struct dp_netdev *,
|
||||
struct ofpbuf *, struct flow *,
|
||||
const struct nlattr *actions,
|
||||
@@ -1140,7 +1140,7 @@ dp_netdev_output_port(struct dp_netdev *dp, struct ofpbuf *packet,
|
||||
|
||||
static int
|
||||
dp_netdev_output_control(struct dp_netdev *dp, const struct ofpbuf *packet,
|
||||
int queue_no, int port_no, uint32_t arg)
|
||||
int queue_no, int port_no, uint64_t arg)
|
||||
{
|
||||
struct odp_msg *header;
|
||||
struct ofpbuf *msg;
|
||||
@@ -1210,7 +1210,7 @@ dp_netdev_execute_actions(struct dp_netdev *dp,
|
||||
|
||||
case ODPAT_CONTROLLER:
|
||||
dp_netdev_output_control(dp, packet, _ODPL_ACTION_NR,
|
||||
key->in_port, nl_attr_get_u32(a));
|
||||
key->in_port, nl_attr_get_u64(a));
|
||||
break;
|
||||
|
||||
case ODPAT_SET_DL_TCI:
|
||||
|
Reference in New Issue
Block a user