Changeset View
Changeset View
Standalone View
Standalone View
sys/net/if_vlan.c
| Show First 20 Lines • Show All 1,100 Lines • ▼ Show 20 Lines | vlan_clone_create(struct if_clone *ifc, char *name, size_t len, | ||||
| */ | */ | ||||
| if (ifd->params != NULL) { | if (ifd->params != NULL) { | ||||
| error = ifc_copyin(ifd, &vlr, sizeof(vlr)); | error = ifc_copyin(ifd, &vlr, sizeof(vlr)); | ||||
| if (error) | if (error) | ||||
| return error; | return error; | ||||
| vid = vlr.vlr_tag; | vid = vlr.vlr_tag; | ||||
| proto = vlr.vlr_proto; | proto = vlr.vlr_proto; | ||||
| #ifdef COMPAT_FREEBSD12 | |||||
| if (proto == 0) | if (proto == 0) | ||||
| proto = ETHERTYPE_VLAN; | proto = ETHERTYPE_VLAN; | ||||
| #endif | |||||
| p = ifunit_ref(vlr.vlr_parent); | p = ifunit_ref(vlr.vlr_parent); | ||||
| if (p == NULL) | if (p == NULL) | ||||
| return (ENXIO); | return (ENXIO); | ||||
| } | } | ||||
| if ((error = ifc_name2unit(name, &unit)) == 0) { | if ((error = ifc_name2unit(name, &unit)) == 0) { | ||||
| /* | /* | ||||
| ▲ Show 20 Lines • Show All 1,135 Lines • ▼ Show 20 Lines | if (vlr.vlr_parent[0] == '\0') { | ||||
| vlan_unconfig(ifp); | vlan_unconfig(ifp); | ||||
| break; | break; | ||||
| } | } | ||||
| p = ifunit_ref(vlr.vlr_parent); | p = ifunit_ref(vlr.vlr_parent); | ||||
| if (p == NULL) { | if (p == NULL) { | ||||
| error = ENOENT; | error = ENOENT; | ||||
| break; | break; | ||||
| } | } | ||||
| #ifdef COMPAT_FREEBSD12 | |||||
| if (vlr.vlr_proto == 0) | if (vlr.vlr_proto == 0) | ||||
| vlr.vlr_proto = ETHERTYPE_VLAN; | vlr.vlr_proto = ETHERTYPE_VLAN; | ||||
| #endif | |||||
| oldmtu = ifp->if_mtu; | oldmtu = ifp->if_mtu; | ||||
| error = vlan_config(ifv, p, vlr.vlr_tag, vlr.vlr_proto); | error = vlan_config(ifv, p, vlr.vlr_tag, vlr.vlr_proto); | ||||
| if_rele(p); | if_rele(p); | ||||
| /* | /* | ||||
| * VLAN MTU may change during addition of the vlandev. | * VLAN MTU may change during addition of the vlandev. | ||||
| * If it did, do network layer specific procedure. | * If it did, do network layer specific procedure. | ||||
| */ | */ | ||||
| ▲ Show 20 Lines • Show All 242 Lines • Show Last 20 Lines | |||||