Index: /branches/rel_apv_10_7/usr/click/lib/libip/sip.c
===================================================================
--- /branches/rel_apv_10_7/usr/click/lib/libip/sip.c	(revision 39235)
+++ /branches/rel_apv_10_7/usr/click/lib/libip/sip.c	(working copy)
@@ -5293,6 +5293,12 @@
 		return VLAN_ERROR;
 	}
 
+	if (vlan_p[vlan_num].is_geneve_associated) {
+		printf("Please remove vlan-geneve association first.\n");
+		shmdt(vlan_p);
+		return VLAN_ERROR;
+	}
+
 	/* bug58987: vlan interface with qos configured cannot be deleted*/
 	bzero((char *)&vreq, sizeof(struct vlanreq));
 	bzero((char *)&ifr, sizeof(struct ifreq));
@@ -5612,6 +5618,11 @@
 			perror("Please clear vlan-vxlan association first.\n");
 			return VLAN_ERROR;
 		}
+
+		if (vlan_p[i].is_geneve_associated) {
+			perror("Please clear vlan-geneve association first.\n");
+			return VLAN_ERROR;
+		}
 		/*Link Aggregation,beisf,20051229*/
 			if (vlan_p[i].parent_ifname[0] != '\0' &&
 				vlan_p[i].is_segment == is_segment) {
@@ -6336,6 +6347,11 @@
 		return IP_ERROR;
 	}
 
+	if (vlan.is_geneve_associated) {
+		printf("Please remove vlan-geneve association first.\n");
+		return IP_ERROR;
+	}
+
    /* bug 22548, 22866, etc, chengfei, 20090706*/
    if ( (ip32 & mask32) != ( vlan.ip32 & vlan.mask32 ) ){
 	/* ip is changing from one subnet to another */
@@ -23149,6 +23165,12 @@
 		return IP_ERROR;
 	}
 
+	/*geneve association check*/
+	if (vlan.is_geneve_associated) {
+		printf("Please remove vlan-geneve association first.\n");
+		return IP_ERROR;
+	}
+
     /* bug 22548, 22866, etc, chengfei, 20090706*/
    if ( !ipv6_net_eq(ip6, prefixlen, vlan.v6, vlan.prefixlen)){
 	/* ip is changing from one subnet to another */
