pf: qid and pqid can be uint16_t

tag2name() returns a uint16_t, so we don't need to use uint32_t for the
qid (or pqid). This reduces the size of struct pf_kstate slightly. That
in turn buys us space to add extra fields for dummynet later.

Happily these fields are not exposed to user space (there are user space
versions of them, but they can just stay uint32_t), so there's no ABI
breakage in modifying this.

MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D31873
This commit is contained in:
Kristof Provost 2021-09-07 14:41:37 +02:00
parent 6d042d7c86
commit b64f7ce98f
4 changed files with 15 additions and 15 deletions

View File

@ -561,8 +561,8 @@ struct pf_kpool {
};
struct pf_rule_actions {
u_int32_t qid;
u_int32_t pqid;
uint16_t qid;
uint16_t pqid;
};
union pf_krule_ptr {
@ -606,8 +606,8 @@ struct pf_krule {
u_int32_t limit;
u_int32_t seconds;
} max_src_conn_rate;
u_int32_t qid;
u_int32_t pqid;
u_int16_t qid;
u_int16_t pqid;
u_int32_t nr;
u_int32_t prob;
uid_t cuid;
@ -856,8 +856,8 @@ struct pf_kstate {
u_int32_t creation;
u_int32_t expire;
u_int32_t pfsync_time;
u_int32_t qid;
u_int32_t pqid;
u_int16_t qid;
u_int16_t pqid;
u_int16_t tag;
u_int8_t log;
};

View File

@ -220,7 +220,7 @@ struct pf_kaltq {
struct fairq_opts fairq_opts;
} pq_u;
uint32_t qid; /* return value */
uint16_t qid; /* return value */
};
#endif /* _KERNEL */

View File

@ -112,8 +112,8 @@ static int pf_rollback_altq(u_int32_t);
static int pf_commit_altq(u_int32_t);
static int pf_enable_altq(struct pf_altq *);
static int pf_disable_altq(struct pf_altq *);
static u_int32_t pf_qname2qid(const char *);
static void pf_qid_unref(u_int32_t);
static uint16_t pf_qname2qid(const char *);
static void pf_qid_unref(uint16_t);
#endif /* ALTQ */
static int pf_begin_rules(u_int32_t *, int, const char *);
static int pf_rollback_rules(u_int32_t, int, char *);
@ -653,23 +653,23 @@ tag_unref(struct pf_tagset *ts, u_int16_t tag)
}
}
static u_int16_t
static uint16_t
pf_tagname2tag(const char *tagname)
{
return (tagname2tag(&V_pf_tags, tagname));
}
#ifdef ALTQ
static u_int32_t
static uint16_t
pf_qname2qid(const char *qname)
{
return ((u_int32_t)tagname2tag(&V_pf_qids, qname));
return (tagname2tag(&V_pf_qids, qname));
}
static void
pf_qid_unref(u_int32_t qid)
pf_qid_unref(uint16_t qid)
{
tag_unref(&V_pf_qids, (u_int16_t)qid);
tag_unref(&V_pf_qids, qid);
}
static int

View File

@ -47,7 +47,7 @@
struct pf_mtag {
void *hdr; /* saved hdr pos in mbuf, for ECN */
u_int32_t qid; /* queue id */
u_int16_t qid; /* queue id */
u_int32_t qid_hash; /* queue hashid used by WFQ like algos */
u_int16_t tag; /* tag id */
u_int8_t flags;