Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Oct 2014 18:31:35 +0000 (UTC)
From:      "Alexander V. Chernikov" <melifaro@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r272899 - head/sys/netpfil/ipfw
Message-ID:  <201410101831.s9AIVZtP025078@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: melifaro
Date: Fri Oct 10 18:31:35 2014
New Revision: 272899
URL: https://svnweb.freebsd.org/changeset/base/272899

Log:
  Fix NOINET6 build for ipfw.

Modified:
  head/sys/netpfil/ipfw/ip_fw_table_algo.c

Modified: head/sys/netpfil/ipfw/ip_fw_table_algo.c
==============================================================================
--- head/sys/netpfil/ipfw/ip_fw_table_algo.c	Fri Oct 10 17:24:56 2014	(r272898)
+++ head/sys/netpfil/ipfw/ip_fw_table_algo.c	Fri Oct 10 18:31:35 2014	(r272899)
@@ -380,7 +380,6 @@ static int ta_find_radix_tentry(void *ta
     ipfw_obj_tentry *tent);
 static void ta_foreach_radix(void *ta_state, struct table_info *ti,
     ta_foreach_f *f, void *arg);
-static inline void ipv6_writemask(struct in6_addr *addr6, uint8_t mask);
 static void tei_to_sockaddr_ent(struct tentry_info *tei, struct sockaddr *sa,
     struct sockaddr *ma, int *set_mask);
 static int ta_prepare_add_radix(struct ip_fw_chain *ch, struct tentry_info *tei,
@@ -579,6 +578,8 @@ ta_foreach_radix(void *ta_state, struct 
 
 
 #ifdef INET6
+static inline void ipv6_writemask(struct in6_addr *addr6, uint8_t mask);
+
 static inline void
 ipv6_writemask(struct in6_addr *addr6, uint8_t mask)
 {
@@ -638,8 +639,8 @@ tei_to_sockaddr_ent(struct tentry_info *
 			*set_mask = 1;
 		else
 			*set_mask = 0;
-	}
 #endif
+	}
 }
 
 static int
@@ -648,7 +649,9 @@ ta_prepare_add_radix(struct ip_fw_chain 
 {
 	struct ta_buf_radix *tb;
 	struct radix_addr_entry *ent;
+#ifdef INET6
 	struct radix_addr_xentry *xent;
+#endif
 	struct sockaddr *addr, *mask;
 	int mlen, set_mask;
 
@@ -931,13 +934,17 @@ struct ta_buf_chash
 	struct chashentry ent;
 };
 
+#ifdef INET
 static __inline uint32_t hash_ip(uint32_t addr, int hsize);
+#endif
+#ifdef INET6
 static __inline uint32_t hash_ip6(struct in6_addr *addr6, int hsize);
 static __inline uint16_t hash_ip64(struct in6_addr *addr6, int hsize);
 static __inline uint32_t hash_ip6_slow(struct in6_addr *addr6, void *key,
     int mask, int hsize);
 static __inline uint32_t hash_ip6_al(struct in6_addr *addr6, void *key, int mask,
     int hsize);
+#endif
 static int ta_lookup_chash_slow(struct table_info *ti, void *key, uint32_t keylen,
     uint32_t *val);
 static int ta_lookup_chash_aligned(struct table_info *ti, void *key,
@@ -982,13 +989,16 @@ static void ta_modify_chash(void *ta_sta
 static void ta_flush_mod_chash(void *ta_buf);
 
 
+#ifdef INET
 static __inline uint32_t
 hash_ip(uint32_t addr, int hsize)
 {
 
 	return (addr % (hsize - 1));
 }
+#endif
 
+#ifdef INET6
 static __inline uint32_t
 hash_ip6(struct in6_addr *addr6, int hsize)
 {
@@ -1034,6 +1044,7 @@ hash_ip6_al(struct in6_addr *addr6, void
 	memcpy(addr6, key, mask);
 	return (hash_ip6(addr6, hsize));
 }
+#endif
 
 static int
 ta_lookup_chash_slow(struct table_info *ti, void *key, uint32_t keylen,
@@ -1045,6 +1056,7 @@ ta_lookup_chash_slow(struct table_info *
 	uint8_t imask;
 
 	if (keylen == sizeof(in_addr_t)) {
+#ifdef INET
 		head = (struct chashbhead *)ti->state;
 		imask = ti->data >> 24;
 		hsize = 1 << ((ti->data & 0xFFFF) >> 8);
@@ -1058,7 +1070,9 @@ ta_lookup_chash_slow(struct table_info *
 				return (1);
 			}
 		}
+#endif
 	} else {
+#ifdef INET6
 		/* IPv6: worst scenario: non-round mask */
 		struct in6_addr addr6;
 		head = (struct chashbhead *)ti->xstate;
@@ -1071,6 +1085,7 @@ ta_lookup_chash_slow(struct table_info *
 				return (1);
 			}
 		}
+#endif
 	}
 
 	return (0);
@@ -1086,6 +1101,7 @@ ta_lookup_chash_aligned(struct table_inf
 	uint8_t imask;
 
 	if (keylen == sizeof(in_addr_t)) {
+#ifdef INET
 		head = (struct chashbhead *)ti->state;
 		imask = ti->data >> 24;
 		hsize = 1 << ((ti->data & 0xFFFF) >> 8);
@@ -1099,7 +1115,9 @@ ta_lookup_chash_aligned(struct table_inf
 				return (1);
 			}
 		}
+#endif
 	} else {
+#ifdef INET6
 		/* IPv6: aligned to 8bit mask */
 		struct in6_addr addr6;
 		uint64_t *paddr, *ptmp;
@@ -1116,6 +1134,7 @@ ta_lookup_chash_aligned(struct table_inf
 				return (1);
 			}
 		}
+#endif
 	}
 
 	return (0);
@@ -1131,6 +1150,7 @@ ta_lookup_chash_64(struct table_info *ti
 	uint8_t imask;
 
 	if (keylen == sizeof(in_addr_t)) {
+#ifdef INET
 		head = (struct chashbhead *)ti->state;
 		imask = ti->data >> 24;
 		hsize = 1 << ((ti->data & 0xFFFF) >> 8);
@@ -1144,7 +1164,9 @@ ta_lookup_chash_64(struct table_info *ti
 				return (1);
 			}
 		}
+#endif
 	} else {
+#ifdef INET6
 		/* IPv6: /64 */
 		uint64_t a6, *paddr;
 		head = (struct chashbhead *)ti->xstate;
@@ -1159,6 +1181,7 @@ ta_lookup_chash_64(struct table_info *ti
 				return (1);
 			}
 		}
+#endif
 	}
 
 	return (0);
@@ -1369,13 +1392,19 @@ hash_ent(struct chashentry *ent, int af,
 {
 	uint32_t hash;
 
+	hash = 0;
+
 	if (af == AF_INET) {
+#ifdef INET
 		hash = hash_ip(ent->a.a4, size);
+#endif
 	} else {
+#ifdef INET6
 		if (mlen == 64)
 			hash = hash_ip64(&ent->a.a6, size);
 		else
 			hash = hash_ip6(&ent->a.a6, size);
+#endif
 	}
 
 	return (hash);
@@ -1384,8 +1413,10 @@ hash_ent(struct chashentry *ent, int af,
 static int
 tei_to_chash_ent(struct tentry_info *tei, struct chashentry *ent)
 {
-	struct in6_addr mask6;
 	int mlen;
+#ifdef INET6
+	struct in6_addr mask6;
+#endif
 
 
 	mlen = tei->masklen;
@@ -3357,8 +3388,12 @@ ta_dump_fhash_tentry(void *ta_state, str
 static int
 tei_to_fhash_ent(struct tentry_info *tei, struct fhashentry *ent)
 {
+#ifdef INET
 	struct fhashentry4 *fe4;
+#endif
+#ifdef INET6
 	struct fhashentry6 *fe6;
+#endif
 	struct tflow_entry *tfe;
 
 	tfe = (struct tflow_entry *)tei->paddr;
@@ -3905,8 +3940,12 @@ ta_dump_kfib_tentry(void *ta_state, stru
     ipfw_obj_tentry *tent)
 {
 	struct rtentry *rte;
+#ifdef INET
 	struct sockaddr_in *addr, *mask;
+#endif
+#ifdef INET6
 	struct sockaddr_in6 *addr6, *mask6;
+#endif
 	int len;
 
 	rte = (struct rtentry *)e;
@@ -3915,6 +3954,7 @@ ta_dump_kfib_tentry(void *ta_state, stru
 	len = 0;
 
 	/* Guess IPv4/IPv6 radix by sockaddr family */
+#ifdef INET
 	if (addr->sin_family == AF_INET) {
 		tent->k.addr.s_addr = addr->sin_addr.s_addr;
 		len = 32;
@@ -3925,8 +3965,10 @@ ta_dump_kfib_tentry(void *ta_state, stru
 		tent->masklen = len;
 		tent->subtype = AF_INET;
 		tent->v.kidx = 0; /* Do we need to put GW here? */
+	}
+#endif
 #ifdef INET6
-	} else if (addr->sin_family == AF_INET6) {
+	if (addr->sin_family == AF_INET6) {
 		addr6 = (struct sockaddr_in6 *)addr;
 		mask6 = (struct sockaddr_in6 *)mask;
 		memcpy(&tent->k, &addr6->sin6_addr, sizeof(struct in6_addr));
@@ -3938,8 +3980,8 @@ ta_dump_kfib_tentry(void *ta_state, stru
 		tent->masklen = len;
 		tent->subtype = AF_INET6;
 		tent->v.kidx = 0;
-#endif
 	}
+#endif
 
 	return (0);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201410101831.s9AIVZtP025078>