* nftables data type names
@ 2014-04-12 10:29 Patrick McHardy
2014-04-12 10:56 ` Florian Westphal
0 siblings, 1 reply; 6+ messages in thread
From: Patrick McHardy @ 2014-04-12 10:29 UTC (permalink / raw)
To: pablo; +Cc: netfilter-devel
Before the upcoming release, I'd like to add some more consistency among
nftables data type names. We currently have the following types:
ct_state
ct_dir
ct_status
ct_label
invalid
verdict
nfproto
bitmask
integer
string
lladdr
ipv4_address
ipv6_address
inet_protocol
inet_service
mark
time
mh_type
realm
tc_handle
ifindex
arphrd
uid
gid
icmp_type
tcp_flag
dccp_pkttype
icmpv6_type
arp_op
etheraddr
ethertype
In some cases we're more verbose, in other we're using abrevations.
I'd like to decide for either one.
The following ones should IMO definitely be changed:
- etheraddr => ether_address or mac_address. ether_addr would be more
consistent with ethertype.
- ethertype => ether_type if ether_addr is used
- optionally: *_address => *_addr
- otherwise: ll_addr => ll_address
- arphrd => iftype/interface_type?
If we're deciding for more verbose names (which IMO is fine for types),
I'd also change:
- arp_op => arp_operation
- ifindex => interface_index
- nfproto => nf_protocol
otherwise:
- inet_protocol => inet_proto
- *_address -> *_addr
Basically the should be human readable, not programmer readable, should
describe what they actually are (not arphrd) and should be consistent.
Any comments or suggestions?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: nftables data type names
2014-04-12 10:29 nftables data type names Patrick McHardy
@ 2014-04-12 10:56 ` Florian Westphal
2014-04-12 11:03 ` Patrick McHardy
0 siblings, 1 reply; 6+ messages in thread
From: Florian Westphal @ 2014-04-12 10:56 UTC (permalink / raw)
To: Patrick McHardy; +Cc: pablo, netfilter-devel
Patrick McHardy <kaber@trash.net> wrote:
> Before the upcoming release, I'd like to add some more consistency among
> nftables data type names. We currently have the following types:
[..]
> In some cases we're more verbose, in other we're using abrevations.
> I'd like to decide for either one.
>
> The following ones should IMO definitely be changed:
>
> - etheraddr => ether_address or mac_address. ether_addr would be more
> consistent with ethertype.
>
> - ethertype => ether_type if ether_addr is used
I like ether_type/ether_addr.
> - optionally: *_address => *_addr
We already have 'ip saddr/daddr' etc in nft rules,
so I'd prefer to use _addr everywhere.
> - arphrd => iftype/interface_type?
I read that as "arphdr"...
Since its used of iif/oiftype I think interface_type is good choice.
> If we're deciding for more verbose names (which IMO is fine for types),
> I'd also change:
>
> - arp_op => arp_operation
> - ifindex => interface_index
> - nfproto => nf_protocol
I agree iff we go for eg. _address instead of _addr.
I would prefer _addr, i.e.
> otherwise:
>
> - inet_protocol => inet_proto
inet_proto, too.
Looking at scanner.l we also have l3proto, l4proto, nfproto keywords.
[ I realize that there is not requirement to be consistent with
datatype names vs. nft rules but I see no reason to differ ]
> Basically the should be human readable, not programmer readable, should
> describe what they actually are (not arphrd) and should be consistent.
Fully agree, more consistency would be good.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: nftables data type names
2014-04-12 10:56 ` Florian Westphal
@ 2014-04-12 11:03 ` Patrick McHardy
2014-04-13 10:57 ` Patrick McHardy
0 siblings, 1 reply; 6+ messages in thread
From: Patrick McHardy @ 2014-04-12 11:03 UTC (permalink / raw)
To: Florian Westphal; +Cc: pablo, netfilter-devel
On Sat, Apr 12, 2014 at 12:56:46PM +0200, Florian Westphal wrote:
> Patrick McHardy <kaber@trash.net> wrote:
> > Before the upcoming release, I'd like to add some more consistency among
> > nftables data type names. We currently have the following types:
> [..]
> > In some cases we're more verbose, in other we're using abrevations.
> > I'd like to decide for either one.
> >
> > The following ones should IMO definitely be changed:
> >
> > - etheraddr => ether_address or mac_address. ether_addr would be more
> > consistent with ethertype.
> >
> > - ethertype => ether_type if ether_addr is used
>
> I like ether_type/ether_addr.
Ok, lets take those.
> > - optionally: *_address => *_addr
>
> We already have 'ip saddr/daddr' etc in nft rules,
> so I'd prefer to use _addr everywhere.
Good point.
> > - arphrd => iftype/interface_type?
>
> I read that as "arphdr"...
Yeah, same here.
> Since its used of iif/oiftype I think interface_type is good choice.
Agreed, will change.
> > If we're deciding for more verbose names (which IMO is fine for types),
> > I'd also change:
> >
> > - arp_op => arp_operation
> > - ifindex => interface_index
> > - nfproto => nf_protocol
>
> I agree iff we go for eg. _address instead of _addr.
> I would prefer _addr, i.e.
Yep.
> > otherwise:
> >
> > - inet_protocol => inet_proto
>
> inet_proto, too.
> Looking at scanner.l we also have l3proto, l4proto, nfproto keywords.
I'll also change those.
> [ I realize that there is not requirement to be consistent with
> datatype names vs. nft rules but I see no reason to differ ]
Yeah, sticking to internal data type names is a bad habit from a usability
perspective IMO. iiftype / arphrd is the best example for this.
> > Basically the should be human readable, not programmer readable, should
> > describe what they actually are (not arphrd) and should be consistent.
>
> Fully agree, more consistency would be good.
Thanks for the feedback, I'll post a patch soon.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: nftables data type names
2014-04-12 11:03 ` Patrick McHardy
@ 2014-04-13 10:57 ` Patrick McHardy
2014-04-13 12:37 ` Pablo Neira Ayuso
0 siblings, 1 reply; 6+ messages in thread
From: Patrick McHardy @ 2014-04-13 10:57 UTC (permalink / raw)
To: Florian Westphal; +Cc: pablo, netfilter-devel
On Sat, Apr 12, 2014 at 01:03:53PM +0200, Patrick McHardy wrote:
> On Sat, Apr 12, 2014 at 12:56:46PM +0200, Florian Westphal wrote:
> > Patrick McHardy <kaber@trash.net> wrote:
> > > Before the upcoming release, I'd like to add some more consistency among
> > > nftables data type names. We currently have the following types:
> > [..]
> > > In some cases we're more verbose, in other we're using abrevations.
> > > I'd like to decide for either one.
> > >
> >
> > I like ether_type/ether_addr.
> > ...
> > Fully agree, more consistency would be good.
>
> Thanks for the feedback, I'll post a patch soon.
What I've got now is:
Address types:
ll_addr
ipv4_addr
ipv6_addr
ether_addr
Protocol types:
nf_proto
inet_proto
(l3proto and l4proto don't exist as types)
Conntrack types:
ct_state
ct_dir
ct_status
ct_label
Packet type related types:
mh_type
iface_type
icmp_type
dccp_pkttype
icmpv6_type
ether_type
Interface related types:
ifindex
iface_type
Arp types:
arp_op
Other types:
mark
time
realm
uid
gid
And a few base types that are fine as they are.
The things I'm not sure about are:
ifindex: this is a well established term I think, however it would be more
consistent to use iface_index
mark/realm: pkt_mark and pkt_realm/route_realm perhaps. Not sure
uid/gid: sk_uid/sk_gid?
Any opinions on these?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: nftables data type names
2014-04-13 10:57 ` Patrick McHardy
@ 2014-04-13 12:37 ` Pablo Neira Ayuso
2014-04-13 14:21 ` Patrick McHardy
0 siblings, 1 reply; 6+ messages in thread
From: Pablo Neira Ayuso @ 2014-04-13 12:37 UTC (permalink / raw)
To: Patrick McHardy; +Cc: Florian Westphal, netfilter-devel
On Sun, Apr 13, 2014 at 12:57:53PM +0200, Patrick McHardy wrote:
> On Sat, Apr 12, 2014 at 01:03:53PM +0200, Patrick McHardy wrote:
> > On Sat, Apr 12, 2014 at 12:56:46PM +0200, Florian Westphal wrote:
> > > Patrick McHardy <kaber@trash.net> wrote:
> > > > Before the upcoming release, I'd like to add some more consistency among
> > > > nftables data type names. We currently have the following types:
> > > [..]
> > > > In some cases we're more verbose, in other we're using abrevations.
> > > > I'd like to decide for either one.
> > > >
> > >
> > > I like ether_type/ether_addr.
> > > ...
> > > Fully agree, more consistency would be good.
> >
> > Thanks for the feedback, I'll post a patch soon.
>
> What I've got now is:
>
> Address types:
>
> ll_addr
> ipv4_addr
> ipv6_addr
> ether_addr
>
> Protocol types:
>
> nf_proto
> inet_proto
>
> (l3proto and l4proto don't exist as types)
>
> Conntrack types:
>
> ct_state
> ct_dir
> ct_status
> ct_label
>
> Packet type related types:
>
> mh_type
> iface_type
> icmp_type
> dccp_pkttype
> icmpv6_type
> ether_type
>
> Interface related types:
>
> ifindex
> iface_type
>
> Arp types:
>
> arp_op
>
> Other types:
>
> mark
> time
> realm
> uid
> gid
>
> And a few base types that are fine as they are.
>
> The things I'm not sure about are:
>
> ifindex: this is a well established term I think, however it would be more
> consistent to use iface_index
We can have an alias for this perhaps so both work?
> mark/realm: pkt_mark and pkt_realm/route_realm perhaps. Not sure
if we would ever have ct_mark, then the initial pkt_ prefix is good to
have.
> uid/gid: sk_uid/sk_gid?
I like the sk_ prefix also clearly specifies to users that this is
related to the socket information.
So following prefix_keytype looks good to me. The prefix just denotes
the scope for which the keytype applies.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: nftables data type names
2014-04-13 12:37 ` Pablo Neira Ayuso
@ 2014-04-13 14:21 ` Patrick McHardy
0 siblings, 0 replies; 6+ messages in thread
From: Patrick McHardy @ 2014-04-13 14:21 UTC (permalink / raw)
To: Pablo Neira Ayuso; +Cc: Florian Westphal, netfilter-devel
On Sun, Apr 13, 2014 at 02:37:28PM +0200, Pablo Neira Ayuso wrote:
> On Sun, Apr 13, 2014 at 12:57:53PM +0200, Patrick McHardy wrote:
> >
> > What I've got now is:
> >
> > Address types:
> >
> > ll_addr
> > ipv4_addr
> > ipv6_addr
> > ether_addr
> >
> > Protocol types:
> >
> > nf_proto
> > inet_proto
> >
> > (l3proto and l4proto don't exist as types)
> >
> > Conntrack types:
> >
> > ct_state
> > ct_dir
> > ct_status
> > ct_label
> >
> > Packet type related types:
> >
> > mh_type
> > iface_type
> > icmp_type
> > dccp_pkttype
> > icmpv6_type
> > ether_type
> >
> > Interface related types:
> >
> > ifindex
> > iface_type
> >
> > Arp types:
> >
> > arp_op
> >
> > Other types:
> >
> > mark
> > time
> > realm
> > uid
> > gid
> >
> > And a few base types that are fine as they are.
> >
> > The things I'm not sure about are:
> >
> > ifindex: this is a well established term I think, however it would be more
> > consistent to use iface_index
>
> We can have an alias for this perhaps so both work?
Sure. We have to decide for one for output however. I'd prefer to use iface_
for consistency.
> > mark/realm: pkt_mark and pkt_realm/route_realm perhaps. Not sure
>
> if we would ever have ct_mark, then the initial pkt_ prefix is good to
> have.
Well, its the data type, so ct_mark is unlikely to exist since the ct marks
are effectively packet marks. This is also the reason why I chose "mark"
without a prefix in the first place, but I now think using pkt_mark for
both is more precise about what the meaning of these values is.
> > uid/gid: sk_uid/sk_gid?
>
> I like the sk_ prefix also clearly specifies to users that this is
> related to the socket information.
Ok, will change.
> So following prefix_keytype looks good to me. The prefix just denotes
> the scope for which the keytype applies.
Yep.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-04-13 14:21 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-12 10:29 nftables data type names Patrick McHardy
2014-04-12 10:56 ` Florian Westphal
2014-04-12 11:03 ` Patrick McHardy
2014-04-13 10:57 ` Patrick McHardy
2014-04-13 12:37 ` Pablo Neira Ayuso
2014-04-13 14:21 ` Patrick McHardy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).