summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdladm/common/libdladm.c
diff options
context:
space:
mode:
authorSebastien Roy <Sebastien.Roy@Sun.COM>2009-09-22 22:04:45 -0400
committerSebastien Roy <Sebastien.Roy@Sun.COM>2009-09-22 22:04:45 -0400
commit2b24ab6b3865caeede9eeb9db6b83e1d89dcd1ea (patch)
tree72c0d7d4e1c44843a86bab6e3ed6f82cfa7356af /usr/src/lib/libdladm/common/libdladm.c
parent51fc88a818087605a0e5f11eddb8b66576f72c23 (diff)
downloadillumos-joyent-2b24ab6b3865caeede9eeb9db6b83e1d89dcd1ea.tar.gz
PSARC 2009/373 Clearview IP Tunneling
PSARC 2009/410 Datalink Administration from Non-Global Zones 6858533 Clearview IP Tunneling 4861777 *snoop* cannot snoop on tunnel interfaces 5010680 M_IOCTL interface between ip and tun is horribly wrong 5029727 tun prints bogus debug messages when receiving multicast packets on 6to4 tunnels 6835873 dlpi_walk() silently fails in an exclusive zone 4152864 must not allow two tunnels to have the same tsrc/tdst pair 6855902 link and flow kstats are too promiscuous 6218826 need to be able to tunnel into a zone 4505468 network interface names can confuse, lie, and deceive 4524756 tun_wproc() takes up too much stack 6417373 tun_wproc_mdata assertion failures 4627970 scalability problems with IP in IP tunnels 4674797 ifparse_ifspec() will not correctly parse ipv6 tunnels 6509231 dladm should show links in exclusive stack zone 4793233 tun driver should include addr in DL_PHYS_ADDR_ACK for non-zero lengths 6795831 ZONE_*_DATALINK syscalls should take datalink_id_t as argument 6791472 mac module doesn't allow MAC addresses < 6 bytes 6618091 Race condition trips ASSERT() in tun.c's SIOCSLIFNAME path 6837580 bogus mi_active check in mac_set_mtu() 6868083 libinetutil: ofmt_open()'s template argument should be const 6870313 libdladm: needless dladm_init_linkprop() in i_dladm_aggr_up() 6872221 panic in dls_devnet_close() if "mtu" property is being set 4289774 Change to the interface-id does not change IPv6 link-local address 6873561 unable to create links with 31 character link names 6874666 changing a link property can accidentally destroy it 6874682 removing a link attribute corrupts the attribute list 6875167 IPCL_ISV6 conn flag is set but never used 6881764 itp reference leak in ipsec_construct_inverse_acquire() 6881951 dladm delete-vlan can no longer delete persistent-only VLANs --HG-- rename : usr/src/uts/common/inet/tun.h => usr/src/uts/common/inet/iptun.h rename : usr/src/uts/common/inet/ip/tun.c => usr/src/uts/common/inet/iptun/iptun.c rename : usr/src/uts/intel/tun/Makefile => usr/src/uts/intel/iptun/Makefile rename : usr/src/uts/sparc/tun/Makefile => usr/src/uts/sparc/iptun/Makefile
Diffstat (limited to 'usr/src/lib/libdladm/common/libdladm.c')
-rw-r--r--usr/src/lib/libdladm/common/libdladm.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/usr/src/lib/libdladm/common/libdladm.c b/usr/src/lib/libdladm/common/libdladm.c
index 90d1d7fdaf..9e03468c7d 100644
--- a/usr/src/lib/libdladm/common/libdladm.c
+++ b/usr/src/lib/libdladm/common/libdladm.c
@@ -52,6 +52,7 @@ static media_type_t media_type_table[] = {
{ DL_IB, "Infiniband" },
{ DL_IPV4, "IPv4Tunnel" },
{ DL_IPV6, "IPv6Tunnel" },
+ { DL_6TO4, "6to4Tunnel" },
{ DL_CSMACD, "CSMA/CD" },
{ DL_TPB, "TokenBus" },
{ DL_TPR, "TokenRing" },
@@ -351,6 +352,21 @@ dladm_status2str(dladm_status_t status, char *buf)
case DLADM_STATUS_OPTMISSING:
s = "optional software not installed";
break;
+ case DLADM_STATUS_IPTUNTYPE:
+ s = "invalid IP tunnel type";
+ break;
+ case DLADM_STATUS_IPTUNTYPEREQD:
+ s = "IP tunnel type required";
+ break;
+ case DLADM_STATUS_BADIPTUNLADDR:
+ s = "invalid local IP tunnel address";
+ break;
+ case DLADM_STATUS_BADIPTUNRADDR:
+ s = "invalid remote IP tunnel address";
+ break;
+ case DLADM_STATUS_ADDRINUSE:
+ s = "address already in use";
+ break;
default:
s = "<unknown error>";
break;
@@ -399,6 +415,8 @@ dladm_errno2status(int err)
return (DLADM_STATUS_FLOW_INCOMPATIBLE);
case EALREADY:
return (DLADM_STATUS_FLOW_IDENTICAL);
+ case EADDRINUSE:
+ return (DLADM_STATUS_ADDRINUSE);
default:
return (DLADM_STATUS_FAILED);
}
@@ -573,6 +591,9 @@ dladm_class2str(datalink_class_t class, char *buf)
case DATALINK_CLASS_ETHERSTUB:
s = "etherstub";
break;
+ case DATALINK_CLASS_IPTUN:
+ s = "iptun";
+ break;
case DATALINK_CLASS_SIMNET:
s = "simnet";
break;
@@ -747,7 +768,7 @@ dladm_valid_linkname(const char *link)
size_t len = strlen(link);
const char *cp;
- if (len + 1 >= MAXLINKNAMELEN)
+ if (len >= MAXLINKNAMELEN)
return (B_FALSE);
/*
@@ -758,10 +779,10 @@ dladm_valid_linkname(const char *link)
/*
* The legal characters in a link name are:
- * alphanumeric (a-z, A-Z, 0-9), and the underscore ('_').
+ * alphanumeric (a-z, A-Z, 0-9), underscore ('_'), and '.'.
*/
for (cp = link; *cp != '\0'; cp++) {
- if ((isalnum(*cp) == 0) && (*cp != '_'))
+ if ((isalnum(*cp) == 0) && (*cp != '_') && (*cp != '.'))
return (B_FALSE);
}