X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Fvport-capwap.c;h=65f1f1bdda515564e8e34ffd814e49a7bfa98306;hb=76f1c218bd84e44666c5a0ae54d543dbce42c376;hp=a674b6147d13319f687562b426755c3bc742f740;hpb=c283069c71adc49c182a1ac569a05e2dca949eda;p=openvswitch diff --git a/datapath/vport-capwap.c b/datapath/vport-capwap.c index a674b614..65f1f1bd 100644 --- a/datapath/vport-capwap.c +++ b/datapath/vport-capwap.c @@ -115,14 +115,17 @@ static struct netns_frags frag_netns_state = { static struct socket *capwap_rcv_socket; -static int capwap_hdr_len(const struct tnl_port_config *port_config) +static int capwap_hdr_len(const struct tnl_mutable_config *mutable) { - /* CAPWAP has neither checksums nor keys, so reject ports with those. */ - if (port_config->flags & (TNL_F_CSUM | TNL_F_IN_KEY_MATCH | - TNL_F_OUT_KEY_ACTION)) + /* CAPWAP has no checksums. */ + if (mutable->flags & TNL_F_CSUM) return -EINVAL; - if (port_config->in_key != 0 || port_config->out_key != 0) + /* CAPWAP has no keys, so check that the configuration for keys is the + * default if no key-specific attributes are used. + */ + if ((mutable->flags & (TNL_F_IN_KEY_MATCH | TNL_F_OUT_KEY_ACTION)) != + (TNL_F_IN_KEY_MATCH | TNL_F_OUT_KEY_ACTION)) return -EINVAL; return CAPWAP_HLEN; @@ -650,17 +653,15 @@ const struct vport_ops capwap_vport_ops = { .init = capwap_init, .exit = capwap_exit, .create = capwap_create, - .modify = tnl_modify, .destroy = tnl_destroy, - .set_mtu = tnl_set_mtu, .set_addr = tnl_set_addr, .get_name = tnl_get_name, .get_addr = tnl_get_addr, - .get_config = tnl_get_config, + .get_options = tnl_get_options, + .set_options = tnl_set_options, .get_dev_flags = vport_gen_get_dev_flags, .is_running = vport_gen_is_running, .get_operstate = vport_gen_get_operstate, - .get_mtu = tnl_get_mtu, .send = tnl_send, };