History

[NetLabel]: rework the Netlink attribute handling (part 1)

At the suggestion of Thomas Graf, rewrite NetLabel's use of Netlink attributes to better follow the common Netlink attribute usage.

Paul Moore committed 20 years ago

Commit fcd48281 parent 4fe5d5c7 files · +76 −604Browse files

Showing the changes to include (2 of 7 files). Show all

Unified · Split

2 files
  1. include/net/cipso_ipv4.h +7 −9
  2. include/net/netlabel.h +2 −47
include/net/cipso_ipv4.h+7−9
@@ -130,8 +130,9 @@ extern int cipso_v4_rbm_strictvalid; · 129 unmodified lines
130130 int cipso_v4_doi_add(struct cipso_v4_doi *doi_def);
131131 int cipso_v4_doi_remove(u32 doi, void (*callback) (struct rcu_head * head));
132132 struct cipso_v4_doi *cipso_v4_doi_getdef(u32 doi);
133−struct sk_buff *cipso_v4_doi_dump_all(size_t headroom);
134−struct sk_buff *cipso_v4_doi_dump(u32 doi, size_t headroom);
133+int cipso_v4_doi_walk(u32 *skip_cnt,
134+ int (*callback) (struct cipso_v4_doi *doi_def, void *arg),
135+ void *cb_arg);
135136 int cipso_v4_doi_domhsh_add(struct cipso_v4_doi *doi_def, const char *domain);
136137 int cipso_v4_doi_domhsh_remove(struct cipso_v4_doi *doi_def,
137138 const char *domain);
@@ -152,14 +153,11 @@ static inline struct cipso_v4_doi *cipso_v4_doi_getdef(u32 doi) · 14 unmodified lines
152153 return NULL;
153154 }
154155
155−static inline struct sk_buff *cipso_v4_doi_dump_all(size_t headroom)
156+static inline int cipso_v4_doi_walk(u32 *skip_cnt,
157+ int (*callback) (struct cipso_v4_doi *doi_def, void *arg),
158+ void *cb_arg)
156159 {
157− return NULL;
158−}
159−
160−static inline struct sk_buff *cipso_v4_doi_dump(u32 doi, size_t headroom)
161−{
162− return NULL;
160+ return 0;
163161 }
164162
165163 static inline int cipso_v4_doi_domhsh_add(struct cipso_v4_doi *doi_def,
include/net/netlabel.h+2−47
@@ -57,9 +57,8 @@ · 56 unmodified lines
5757 * The payload is dependent on the subsystem specified in the
5858 * 'nlmsghdr->nlmsg_type' and should be defined below, supporting functions
5959 * should be defined in the corresponding net/netlabel/netlabel_<subsys>.h|c
60− * file. All of the fields in the NetLabel payload are NETLINK attributes, the
61− * length of each field is the length of the NETLINK attribute payload, see
62− * include/net/netlink.h for more information on NETLINK attributes.
60+ * file. All of the fields in the NetLabel payload are NETLINK attributes, see
61+ * the include/net/netlink.h file for more information on NETLINK attributes.
6362 *
6463 */
6564
@@ -82,50 +81,6 @@ · 16 unmodified lines
8281 #define NETLBL_NLTYPE_UNLABELED 5
8382 #define NETLBL_NLTYPE_UNLABELED_NAME "NLBL_UNLBL"
8483
85−/* NetLabel return codes */
86−#define NETLBL_E_OK 0
87−
88−/*
89− * Helper functions
90− */
91−
92−#define NETLBL_LEN_U8 nla_total_size(sizeof(u8))
93−#define NETLBL_LEN_U16 nla_total_size(sizeof(u16))
94−#define NETLBL_LEN_U32 nla_total_size(sizeof(u32))
95−
96−/**
97− * netlbl_netlink_alloc_skb - Allocate a NETLINK message buffer
98− * @head: the amount of headroom in bytes
99− * @body: the desired size (minus headroom) in bytes
100− * @gfp_flags: the alloc flags to pass to alloc_skb()
101− *
102− * Description:
103− * Allocate a NETLINK message buffer based on the sizes given in @head and
104− * @body. If @head is greater than zero skb_reserve() is called to reserve
105− * @head bytes at the start of the buffer. Returns a valid sk_buff pointer on
106− * success, NULL on failure.
107− *
108− */
109−static inline struct sk_buff *netlbl_netlink_alloc_skb(size_t head,
110− size_t body,
111− gfp_t gfp_flags)
112−{
113− struct sk_buff *skb;
114−
115− skb = alloc_skb(NLMSG_ALIGN(head + body), gfp_flags);
116− if (skb == NULL)
117− return NULL;
118− if (head > 0) {
119− skb_reserve(skb, head);
120− if (skb_tailroom(skb) < body) {
121− kfree_skb(skb);
122− return NULL;
123− }
124− }
125−
126− return skb;
127−}
128−
12984 /*
13085 * NetLabel - Kernel API for accessing the network packet label mappings.
13186 *