- vport_gen_rand_ether_addr(patch_vport->devconf->eth_addr);
- patch_vport->devconf->mtu = ETH_DATA_LEN;
+ err = patch_set_config(vport, parms->config, patchconf);
+ if (err)
+ goto error_free_patchconf;
+
+ vport_gen_rand_ether_addr(patchconf->eth_addr);
+
+ /* Make the default MTU fairly large so that it doesn't become the
+ * bottleneck on systems using jumbo frames. */
+ patchconf->mtu = 65535;
+
+ rcu_assign_pointer(patch_vport->patchconf, patchconf);
+
+ peer_name = patchconf->peer_name;
+ hlist_add_head(&patch_vport->hash_node, hash_bucket(peer_name));
+ rcu_assign_pointer(patch_vport->peer, vport_locate(peer_name));
+ update_peers(patch_vport->name, vport);