commit <47595e32869f> ("<MAINTAINERS: Mark some staging directories>")
indicated the ipx network layer as obsolete in Jan 2018,
updated in the MAINTAINERS file.
now, after being exposed for 3 years to refactoring, so to
remove the ipx network layer header files
additionally, there is no module that depends on ipx.h
except a broken staging driver(r8188eu)
Cai Huoqing (2):
net: Remove net/ipx.h and uapi/linux/ipx.h header files
MAINTAINERS: Remove the ipx network layer info
MAINTAINERS | 5 --
include/net/ipx.h | 171 ---------------------------------------
include/uapi/linux/ipx.h | 87 --------------------
3 files changed, 263 deletions(-)
delete mode 100644 include/net/ipx.h
delete mode 100644 include/uapi/linux/ipx.h
--
2.25.1
commit <47595e32869f> ("<MAINTAINERS: Mark some staging directories>")
indicated the ipx network layer as obsolete in Jan 2018,
updated in the MAINTAINERS file.
now, after being exposed for 3 years to refactoring, so to
remove the ipx network layer info from MAINTAINERS.
additionally, there is no module that depends on ipx.h
except a broken staging driver(r8188eu)
Signed-off-by: Cai Huoqing <[email protected]>
---
MAINTAINERS | 5 -----
1 file changed, 5 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index efac6221afe1..169352637fc2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9788,11 +9788,6 @@ M: David Sterba <[email protected]>
S: Odd Fixes
F: drivers/tty/ipwireless/
-IPX NETWORK LAYER
-L: [email protected]
-S: Obsolete
-F: include/uapi/linux/ipx.h
-
IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
M: Marc Zyngier <[email protected]>
S: Maintained
--
2.25.1
commit <47595e32869f> ("<MAINTAINERS: Mark some staging directories>")
indicated the ipx network layer as obsolete in Jan 2018,
updated in the MAINTAINERS file
now, after being exposed for 3 years to refactoring, so to
delete uapi/linux/ipx.h and net/ipx.h header files for good.
additionally, there is no module that depends on ipx.h except
a broken staging driver(r8188eu)
Signed-off-by: Cai Huoqing <[email protected]>
---
include/net/ipx.h | 171 ---------------------------------------
include/uapi/linux/ipx.h | 87 --------------------
2 files changed, 258 deletions(-)
delete mode 100644 include/net/ipx.h
delete mode 100644 include/uapi/linux/ipx.h
diff --git a/include/net/ipx.h b/include/net/ipx.h
deleted file mode 100644
index 9d1342807b59..000000000000
--- a/include/net/ipx.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _NET_INET_IPX_H_
-#define _NET_INET_IPX_H_
-/*
- * The following information is in its entirety obtained from:
- *
- * Novell 'IPX Router Specification' Version 1.10
- * Part No. 107-000029-001
- *
- * Which is available from ftp.novell.com
- */
-
-#include <linux/netdevice.h>
-#include <net/datalink.h>
-#include <linux/ipx.h>
-#include <linux/list.h>
-#include <linux/slab.h>
-#include <linux/refcount.h>
-
-struct ipx_address {
- __be32 net;
- __u8 node[IPX_NODE_LEN];
- __be16 sock;
-};
-
-#define ipx_broadcast_node "\377\377\377\377\377\377"
-#define ipx_this_node "\0\0\0\0\0\0"
-
-#define IPX_MAX_PPROP_HOPS 8
-
-struct ipxhdr {
- __be16 ipx_checksum __packed;
-#define IPX_NO_CHECKSUM cpu_to_be16(0xFFFF)
- __be16 ipx_pktsize __packed;
- __u8 ipx_tctrl;
- __u8 ipx_type;
-#define IPX_TYPE_UNKNOWN 0x00
-#define IPX_TYPE_RIP 0x01 /* may also be 0 */
-#define IPX_TYPE_SAP 0x04 /* may also be 0 */
-#define IPX_TYPE_SPX 0x05 /* SPX protocol */
-#define IPX_TYPE_NCP 0x11 /* $lots for docs on this (SPIT) */
-#define IPX_TYPE_PPROP 0x14 /* complicated flood fill brdcast */
- struct ipx_address ipx_dest __packed;
- struct ipx_address ipx_source __packed;
-};
-
-/* From af_ipx.c */
-extern int sysctl_ipx_pprop_broadcasting;
-
-struct ipx_interface {
- /* IPX address */
- __be32 if_netnum;
- unsigned char if_node[IPX_NODE_LEN];
- refcount_t refcnt;
-
- /* physical device info */
- struct net_device *if_dev;
- struct datalink_proto *if_dlink;
- __be16 if_dlink_type;
-
- /* socket support */
- unsigned short if_sknum;
- struct hlist_head if_sklist;
- spinlock_t if_sklist_lock;
-
- /* administrative overhead */
- int if_ipx_offset;
- unsigned char if_internal;
- unsigned char if_primary;
-
- struct list_head node; /* node in ipx_interfaces list */
-};
-
-struct ipx_route {
- __be32 ir_net;
- struct ipx_interface *ir_intrfc;
- unsigned char ir_routed;
- unsigned char ir_router_node[IPX_NODE_LEN];
- struct list_head node; /* node in ipx_routes list */
- refcount_t refcnt;
-};
-
-struct ipx_cb {
- u8 ipx_tctrl;
- __be32 ipx_dest_net;
- __be32 ipx_source_net;
- struct {
- __be32 netnum;
- int index;
- } last_hop;
-};
-
-#include <net/sock.h>
-
-struct ipx_sock {
- /* struct sock has to be the first member of ipx_sock */
- struct sock sk;
- struct ipx_address dest_addr;
- struct ipx_interface *intrfc;
- __be16 port;
-#ifdef CONFIG_IPX_INTERN
- unsigned char node[IPX_NODE_LEN];
-#endif
- unsigned short type;
- /*
- * To handle special ncp connection-handling sockets for mars_nwe,
- * the connection number must be stored in the socket.
- */
- unsigned short ipx_ncp_conn;
-};
-
-static inline struct ipx_sock *ipx_sk(struct sock *sk)
-{
- return (struct ipx_sock *)sk;
-}
-
-#define IPX_SKB_CB(__skb) ((struct ipx_cb *)&((__skb)->cb[0]))
-
-#define IPX_MIN_EPHEMERAL_SOCKET 0x4000
-#define IPX_MAX_EPHEMERAL_SOCKET 0x7fff
-
-extern struct list_head ipx_routes;
-extern rwlock_t ipx_routes_lock;
-
-extern struct list_head ipx_interfaces;
-struct ipx_interface *ipx_interfaces_head(void);
-extern spinlock_t ipx_interfaces_lock;
-
-extern struct ipx_interface *ipx_primary_net;
-
-int ipx_proc_init(void);
-void ipx_proc_exit(void);
-
-const char *ipx_frame_name(__be16);
-const char *ipx_device_name(struct ipx_interface *intrfc);
-
-static __inline__ void ipxitf_hold(struct ipx_interface *intrfc)
-{
- refcount_inc(&intrfc->refcnt);
-}
-
-void ipxitf_down(struct ipx_interface *intrfc);
-struct ipx_interface *ipxitf_find_using_net(__be32 net);
-int ipxitf_send(struct ipx_interface *intrfc, struct sk_buff *skb, char *node);
-__be16 ipx_cksum(struct ipxhdr *packet, int length);
-int ipxrtr_add_route(__be32 network, struct ipx_interface *intrfc,
- unsigned char *node);
-void ipxrtr_del_routes(struct ipx_interface *intrfc);
-int ipxrtr_route_packet(struct sock *sk, struct sockaddr_ipx *usipx,
- struct msghdr *msg, size_t len, int noblock);
-int ipxrtr_route_skb(struct sk_buff *skb);
-struct ipx_route *ipxrtr_lookup(__be32 net);
-int ipxrtr_ioctl(unsigned int cmd, void __user *arg);
-
-static __inline__ void ipxitf_put(struct ipx_interface *intrfc)
-{
- if (refcount_dec_and_test(&intrfc->refcnt))
- ipxitf_down(intrfc);
-}
-
-static __inline__ void ipxrtr_hold(struct ipx_route *rt)
-{
- refcount_inc(&rt->refcnt);
-}
-
-static __inline__ void ipxrtr_put(struct ipx_route *rt)
-{
- if (refcount_dec_and_test(&rt->refcnt))
- kfree(rt);
-}
-#endif /* _NET_INET_IPX_H_ */
diff --git a/include/uapi/linux/ipx.h b/include/uapi/linux/ipx.h
deleted file mode 100644
index 3168137adae8..000000000000
--- a/include/uapi/linux/ipx.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _IPX_H_
-#define _IPX_H_
-#include <linux/libc-compat.h> /* for compatibility with glibc netipx/ipx.h */
-#include <linux/types.h>
-#include <linux/sockios.h>
-#include <linux/socket.h>
-#define IPX_NODE_LEN 6
-#define IPX_MTU 576
-
-#if __UAPI_DEF_SOCKADDR_IPX
-struct sockaddr_ipx {
- __kernel_sa_family_t sipx_family;
- __be16 sipx_port;
- __be32 sipx_network;
- unsigned char sipx_node[IPX_NODE_LEN];
- __u8 sipx_type;
- unsigned char sipx_zero; /* 16 byte fill */
-};
-#endif /* __UAPI_DEF_SOCKADDR_IPX */
-
-/*
- * So we can fit the extra info for SIOCSIFADDR into the address nicely
- */
-#define sipx_special sipx_port
-#define sipx_action sipx_zero
-#define IPX_DLTITF 0
-#define IPX_CRTITF 1
-
-#if __UAPI_DEF_IPX_ROUTE_DEFINITION
-struct ipx_route_definition {
- __be32 ipx_network;
- __be32 ipx_router_network;
- unsigned char ipx_router_node[IPX_NODE_LEN];
-};
-#endif /* __UAPI_DEF_IPX_ROUTE_DEFINITION */
-
-#if __UAPI_DEF_IPX_INTERFACE_DEFINITION
-struct ipx_interface_definition {
- __be32 ipx_network;
- unsigned char ipx_device[16];
- unsigned char ipx_dlink_type;
-#define IPX_FRAME_NONE 0
-#define IPX_FRAME_SNAP 1
-#define IPX_FRAME_8022 2
-#define IPX_FRAME_ETHERII 3
-#define IPX_FRAME_8023 4
-#define IPX_FRAME_TR_8022 5 /* obsolete */
- unsigned char ipx_special;
-#define IPX_SPECIAL_NONE 0
-#define IPX_PRIMARY 1
-#define IPX_INTERNAL 2
- unsigned char ipx_node[IPX_NODE_LEN];
-};
-#endif /* __UAPI_DEF_IPX_INTERFACE_DEFINITION */
-
-#if __UAPI_DEF_IPX_CONFIG_DATA
-struct ipx_config_data {
- unsigned char ipxcfg_auto_select_primary;
- unsigned char ipxcfg_auto_create_interfaces;
-};
-#endif /* __UAPI_DEF_IPX_CONFIG_DATA */
-
-/*
- * OLD Route Definition for backward compatibility.
- */
-
-#if __UAPI_DEF_IPX_ROUTE_DEF
-struct ipx_route_def {
- __be32 ipx_network;
- __be32 ipx_router_network;
-#define IPX_ROUTE_NO_ROUTER 0
- unsigned char ipx_router_node[IPX_NODE_LEN];
- unsigned char ipx_device[16];
- unsigned short ipx_flags;
-#define IPX_RT_SNAP 8
-#define IPX_RT_8022 4
-#define IPX_RT_BLUEBOOK 2
-#define IPX_RT_ROUTED 1
-};
-#endif /* __UAPI_DEF_IPX_ROUTE_DEF */
-
-#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE)
-#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1)
-#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2)
-#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3)
-#endif /* _IPX_H_ */
--
2.25.1
Hello:
This series was applied to netdev/net-next.git (refs/heads/master):
On Fri, 13 Aug 2021 20:08:01 +0800 you wrote:
> commit <47595e32869f> ("<MAINTAINERS: Mark some staging directories>")
> indicated the ipx network layer as obsolete in Jan 2018,
> updated in the MAINTAINERS file.
>
> now, after being exposed for 3 years to refactoring, so to
> remove the ipx network layer header files
>
> [...]
Here is the summary with links:
- [1/2] net: Remove net/ipx.h and uapi/linux/ipx.h header files
https://git.kernel.org/netdev/net-next/c/6c9b40844751
- [2/2] MAINTAINERS: Remove the ipx network layer info
https://git.kernel.org/netdev/net-next/c/e4637f621203
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
Hello,
Thanks for the heads up.
On Wednesday, September 1, 2021 12:52:02 PM EDT Eugene Syromiatnikov wrote:
> Adding linux-audit, strace-devel, and linux-api to CC:.
>
> On Wed, Sep 01, 2021 at 06:02:44PM +0200, Eugene Syromiatnikov wrote:
> > On Fri, Aug 13, 2021 at 08:08:02PM +0800, Cai Huoqing wrote:
> > > commit <47595e32869f> ("<MAINTAINERS: Mark some staging directories>")
> > > indicated the ipx network layer as obsolete in Jan 2018,
> > > updated in the MAINTAINERS file
> > >
> > > now, after being exposed for 3 years to refactoring, so to
> > > delete uapi/linux/ipx.h and net/ipx.h header files for good.
> > > additionally, there is no module that depends on ipx.h except
> > > a broken staging driver(r8188eu)
> > >
> > > Signed-off-by: Cai Huoqing <[email protected]>
> >
> > This removal breaks audit[1] and potentially breaks strace[2][3], at
> > least.
I wouldn't say breaks so much as needs coordination with. :-) If ipx is
being dropped in its entirety, I can just make that part of the code
conditional to the header existing.
-Steve
> > [1]
> > https://github.com/linux-audit/audit-userspace/blob/ce58837d44b7d9fcb4e1
> > 40c23f68e0c94d95ab6e/auparse/interpret.c#L48 [2]
> > https://gitlab.com/strace/strace/-/blob/9fe63f42df8badd22fb7eef9c12fc07e
> > d7106d6b/src/net.c#L34 [3]
> > https://gitlab.com/strace/strace/-/blob/9fe63f42df8badd22fb7eef9c12fc07e
> > d7106d6b/src/sockaddr.c#L30
On Fri, Aug 13, 2021 at 08:08:02PM +0800, Cai Huoqing wrote:
> commit <47595e32869f> ("<MAINTAINERS: Mark some staging directories>")
> indicated the ipx network layer as obsolete in Jan 2018,
> updated in the MAINTAINERS file
>
> now, after being exposed for 3 years to refactoring, so to
> delete uapi/linux/ipx.h and net/ipx.h header files for good.
> additionally, there is no module that depends on ipx.h except
> a broken staging driver(r8188eu)
>
> Signed-off-by: Cai Huoqing <[email protected]>
This removal breaks audit[1] and potentially breaks strace[2][3], at least.
[1] https://github.com/linux-audit/audit-userspace/blob/ce58837d44b7d9fcb4e140c23f68e0c94d95ab6e/auparse/interpret.c#L48
[2] https://gitlab.com/strace/strace/-/blob/9fe63f42df8badd22fb7eef9c12fc07ed7106d6b/src/net.c#L34
[3] https://gitlab.com/strace/strace/-/blob/9fe63f42df8badd22fb7eef9c12fc07ed7106d6b/src/sockaddr.c#L30
Adding linux-audit, strace-devel, and linux-api to CC:.
On Wed, Sep 01, 2021 at 06:02:44PM +0200, Eugene Syromiatnikov wrote:
> On Fri, Aug 13, 2021 at 08:08:02PM +0800, Cai Huoqing wrote:
> > commit <47595e32869f> ("<MAINTAINERS: Mark some staging directories>")
> > indicated the ipx network layer as obsolete in Jan 2018,
> > updated in the MAINTAINERS file
> >
> > now, after being exposed for 3 years to refactoring, so to
> > delete uapi/linux/ipx.h and net/ipx.h header files for good.
> > additionally, there is no module that depends on ipx.h except
> > a broken staging driver(r8188eu)
> >
> > Signed-off-by: Cai Huoqing <[email protected]>
>
> This removal breaks audit[1] and potentially breaks strace[2][3], at least.
>
> [1] https://github.com/linux-audit/audit-userspace/blob/ce58837d44b7d9fcb4e140c23f68e0c94d95ab6e/auparse/interpret.c#L48
> [2] https://gitlab.com/strace/strace/-/blob/9fe63f42df8badd22fb7eef9c12fc07ed7106d6b/src/net.c#L34
> [3] https://gitlab.com/strace/strace/-/blob/9fe63f42df8badd22fb7eef9c12fc07ed7106d6b/src/sockaddr.c#L30
On Thu, Sep 02, 2021 at 09:35:29PM +0800, Cai Huoqing wrote:
> On 01 Sep 21 13:36:54, Steve Grubb wrote:
> > Hello,
> >
> > Thanks for the heads up.
> >
> > On Wednesday, September 1, 2021 12:52:02 PM EDT Eugene Syromiatnikov wrote:
> > > Adding linux-audit, strace-devel, and linux-api to CC:.
> > >
> > > On Wed, Sep 01, 2021 at 06:02:44PM +0200, Eugene Syromiatnikov wrote:
> > > > On Fri, Aug 13, 2021 at 08:08:02PM +0800, Cai Huoqing wrote:
> > > > > commit <47595e32869f> ("<MAINTAINERS: Mark some staging directories>")
> > > > > indicated the ipx network layer as obsolete in Jan 2018,
> > > > > updated in the MAINTAINERS file
> > > > >
> > > > > now, after being exposed for 3 years to refactoring, so to
> > > > > delete uapi/linux/ipx.h and net/ipx.h header files for good.
> > > > > additionally, there is no module that depends on ipx.h except
> > > > > a broken staging driver(r8188eu)
> > > > >
> > > > > Signed-off-by: Cai Huoqing <[email protected]>
> > > >
> > > > This removal breaks audit[1] and potentially breaks strace[2][3], at
> > > > least.
> >
> > I wouldn't say breaks so much as needs coordination with. :-) If ipx is
> > being dropped in its entirety, I can just make that part of the code
> > conditional to the header existing.
> >
> > -Steve
> IPX is marked obsolete for serveral years. so remove it and the
> dependency in linux tree.
> I'm sorry to not thinking about linux-audit and strace.
> Might you remove the dependency or make the part of the code.
> Many thanks.
Unfortunately, that is not how UAPI works. That change breaks building
of the existing code; one cannot change already released versions
of either audit, strace, or any other userspace program that happens
to unconditionally include <linux/ipx.h> without any fallback (like
<netipx/ipx.h> provided by glibc).
>
> -Cai
> >
> > > > [1]
> > > > https://github.com/linux-audit/audit-userspace/blob/ce58837d44b7d9fcb4e1
> > > > 40c23f68e0c94d95ab6e/auparse/interpret.c#L48 [2]
> > > > https://gitlab.com/strace/strace/-/blob/9fe63f42df8badd22fb7eef9c12fc07e
> > > > d7106d6b/src/net.c#L34 [3]
> > > > https://gitlab.com/strace/strace/-/blob/9fe63f42df8badd22fb7eef9c12fc07e
> > > > d7106d6b/src/sockaddr.c#L30
> >
> >
> >
> >
>
On 01 Sep 21 13:36:54, Steve Grubb wrote:
> Hello,
>
> Thanks for the heads up.
>
> On Wednesday, September 1, 2021 12:52:02 PM EDT Eugene Syromiatnikov wrote:
> > Adding linux-audit, strace-devel, and linux-api to CC:.
> >
> > On Wed, Sep 01, 2021 at 06:02:44PM +0200, Eugene Syromiatnikov wrote:
> > > On Fri, Aug 13, 2021 at 08:08:02PM +0800, Cai Huoqing wrote:
> > > > commit <47595e32869f> ("<MAINTAINERS: Mark some staging directories>")
> > > > indicated the ipx network layer as obsolete in Jan 2018,
> > > > updated in the MAINTAINERS file
> > > >
> > > > now, after being exposed for 3 years to refactoring, so to
> > > > delete uapi/linux/ipx.h and net/ipx.h header files for good.
> > > > additionally, there is no module that depends on ipx.h except
> > > > a broken staging driver(r8188eu)
> > > >
> > > > Signed-off-by: Cai Huoqing <[email protected]>
> > >
> > > This removal breaks audit[1] and potentially breaks strace[2][3], at
> > > least.
>
> I wouldn't say breaks so much as needs coordination with. :-) If ipx is
> being dropped in its entirety, I can just make that part of the code
> conditional to the header existing.
>
> -Steve
IPX is marked obsolete for serveral years. so remove it and the
dependency in linux tree.
I'm sorry to not thinking about linux-audit and strace.
Might you remove the dependency or make the part of the code.
Many thanks.
-Cai
>
> > > [1]
> > > https://github.com/linux-audit/audit-userspace/blob/ce58837d44b7d9fcb4e1
> > > 40c23f68e0c94d95ab6e/auparse/interpret.c#L48 [2]
> > > https://gitlab.com/strace/strace/-/blob/9fe63f42df8badd22fb7eef9c12fc07e
> > > d7106d6b/src/net.c#L34 [3]
> > > https://gitlab.com/strace/strace/-/blob/9fe63f42df8badd22fb7eef9c12fc07e
> > > d7106d6b/src/sockaddr.c#L30
>
>
>
>
Hi,
>> IPX is marked obsolete for serveral years. so remove it and the
>> dependency in linux tree.
>> I'm sorry to not thinking about linux-audit and strace.
>> Might you remove the dependency or make the part of the code.
>> Many thanks.
>
> Unfortunately, that is not how UAPI works. That change breaks
> building
> of the existing code; one cannot change already released versions
> of either audit, strace, or any other userspace program that happens
> to unconditionally include <linux/ipx.h> without any fallback (like
> <netipx/ipx.h> provided by glibc).
Also, the <netipx/ipx.h> fallback is only provided by glibc (and maybe
uclibc?). With this patch, it is now impossible to compile even the
very latest version of "strace" with a musl toolchain.
Cheers,
-Paul
On Wednesday, September 22, 2021 1:01:58 PM EDT Paul Cercueil wrote:
> >> IPX is marked obsolete for serveral years. so remove it and the
> >> dependency in linux tree.
> >> I'm sorry to not thinking about linux-audit and strace.
> >> Might you remove the dependency or make the part of the code.
> >> Many thanks.
> >
> > Unfortunately, that is not how UAPI works. That change breaks
> > building
> > of the existing code; one cannot change already released versions
> > of either audit, strace, or any other userspace program that happens
> > to unconditionally include <linux/ipx.h> without any fallback (like
> > <netipx/ipx.h> provided by glibc).
>
> Also, the <netipx/ipx.h> fallback is only provided by glibc (and maybe
> uclibc?). With this patch, it is now impossible to compile even the
> very latest version of "strace" with a musl toolchain.
I've made support for ipx optional in audit user space a couple weeks back.
It's no longer a problem for us.
-Steve