diff --git a/ip/ip.c b/ip/ip.c
index 86f8b45..813fabd 100644
--- a/ip/ip.c
+++ b/ip/ip.c
@@ -65,7 +65,7 @@
 	const char *cmd;
 	int (*func)(int argc, char **argv);
 } cmds[] = {
-	{ "address", 	do_ipaddr },
+	{ "address",	do_ipaddr },
 	{ "addrlabel",	do_ipaddrlabel },
 	{ "maddress",	do_multiaddr },
 	{ "route",	do_iproute },
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index d52b453..14d1720 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -1277,9 +1277,9 @@
 static int ipaddr_modify(int cmd, int flags, int argc, char **argv)
 {
 	struct {
-		struct nlmsghdr 	n;
-		struct ifaddrmsg 	ifa;
-		char   			buf[256];
+		struct nlmsghdr	n;
+		struct ifaddrmsg	ifa;
+		char  			buf[256];
 	} req;
 	char  *d = NULL;
 	char  *l = NULL;
diff --git a/ip/ipaddrlabel.c b/ip/ipaddrlabel.c
index 5913b1b..b34dd8b 100644
--- a/ip/ipaddrlabel.c
+++ b/ip/ipaddrlabel.c
@@ -125,9 +125,9 @@
 static int ipaddrlabel_modify(int cmd, int argc, char **argv)
 {
 	struct {
-		struct nlmsghdr 	n;
+		struct nlmsghdr	n;
 		struct ifaddrlblmsg	ifal;
-		char   			buf[1024];
+		char  			buf[1024];
 	} req;
 
 	inet_prefix prefix;
diff --git a/ip/iplink_can.c b/ip/iplink_can.c
index 5674358..1d3d09c 100644
--- a/ip/iplink_can.c
+++ b/ip/iplink_can.c
@@ -279,5 +279,5 @@
 	.maxattr	= IFLA_CAN_MAX,
 	.parse_opt	= can_parse_opt,
 	.print_opt	= can_print_opt,
-	.print_xstats 	= can_print_xstats,
+	.print_xstats	= can_print_xstats,
 };
diff --git a/ip/ipneigh.c b/ip/ipneigh.c
index d76e035..71a4100 100644
--- a/ip/ipneigh.c
+++ b/ip/ipneigh.c
@@ -95,9 +95,9 @@
 static int ipneigh_modify(int cmd, int flags, int argc, char **argv)
 {
 	struct {
-		struct nlmsghdr 	n;
-		struct ndmsg 		ndm;
-		char   			buf[256];
+		struct nlmsghdr	n;
+		struct ndmsg		ndm;
+		char  			buf[256];
 	} req;
 	char  *d = NULL;
 	int dst_ok = 0;
diff --git a/ip/ipntable.c b/ip/ipntable.c
index 00b3b0b..ea7ca2d 100644
--- a/ip/ipntable.c
+++ b/ip/ipntable.c
@@ -63,9 +63,9 @@
 static int ipntable_modify(int cmd, int flags, int argc, char **argv)
 {
 	struct {
-		struct nlmsghdr 	n;
+		struct nlmsghdr	n;
 		struct ndtmsg		ndtm;
-		char   			buf[1024];
+		char  			buf[1024];
 	} req;
 	char *namep = NULL;
 	char *threshsp = NULL;
diff --git a/ip/iproute.c b/ip/iproute.c
index 6d13b64..bc3c3e1 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -708,9 +708,9 @@
 static int iproute_modify(int cmd, unsigned flags, int argc, char **argv)
 {
 	struct {
-		struct nlmsghdr 	n;
-		struct rtmsg 		r;
-		char   			buf[1024];
+		struct nlmsghdr	n;
+		struct rtmsg		r;
+		char  			buf[1024];
 	} req;
 	char  mxbuf[256];
 	struct rtattr * mxrta = (void*)mxbuf;
@@ -1376,9 +1376,9 @@
 static int iproute_get(int argc, char **argv)
 {
 	struct {
-		struct nlmsghdr 	n;
-		struct rtmsg 		r;
-		char   			buf[1024];
+		struct nlmsghdr	n;
+		struct rtmsg		r;
+		char  			buf[1024];
 	} req;
 	char  *idev = NULL;
 	char  *odev = NULL;
diff --git a/ip/iprule.c b/ip/iprule.c
index d934f67..4ba16f8 100644
--- a/ip/iprule.c
+++ b/ip/iprule.c
@@ -130,7 +130,7 @@
 		fprintf(fp, "tos %s ", rtnl_dsfield_n2a(r->rtm_tos, b1, sizeof(b1)));
 	}
 
- 	if (tb[FRA_FWMARK] || tb[FRA_FWMASK]) {
+	if (tb[FRA_FWMARK] || tb[FRA_FWMASK]) {
 		__u32 mark = 0, mask = 0;
 
 		if (tb[FRA_FWMARK])
@@ -243,9 +243,9 @@
 {
 	int table_ok = 0;
 	struct {
-		struct nlmsghdr 	n;
-		struct rtmsg 		r;
-		char   			buf[1024];
+		struct nlmsghdr	n;
+		struct rtmsg		r;
+		char  			buf[1024];
 	} req;
 
 	memset(&req, 0, sizeof(req));
diff --git a/ip/xfrm_policy.c b/ip/xfrm_policy.c
index 9421ba9..2337d35 100644
--- a/ip/xfrm_policy.c
+++ b/ip/xfrm_policy.c
@@ -961,7 +961,7 @@
 	struct {
 		struct nlmsghdr			n;
 		__u32				flags;
-		char 				ans[128];
+		char				ans[128];
 	} req;
 
 	memset(&req, 0, sizeof(req));
diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c
index 3d8606b..140a450 100644
--- a/ip/xfrm_state.c
+++ b/ip/xfrm_state.c
@@ -268,9 +268,9 @@
 {
 	struct rtnl_handle rth;
 	struct {
-		struct nlmsghdr 	n;
+		struct nlmsghdr	n;
 		struct xfrm_usersa_info xsinfo;
-		char   			buf[RTA_BUF_SIZE];
+		char  			buf[RTA_BUF_SIZE];
 	} req;
 	struct xfrm_replay_state replay;
 	char *idp = NULL;
@@ -655,9 +655,9 @@
 {
 	struct rtnl_handle rth;
 	struct {
-		struct nlmsghdr 	n;
+		struct nlmsghdr	n;
 		struct xfrm_userspi_info xspi;
-		char   			buf[RTA_BUF_SIZE];
+		char  			buf[RTA_BUF_SIZE];
 	} req;
 	char *idp = NULL;
 	char *minp = NULL;
@@ -912,9 +912,9 @@
 {
 	struct rtnl_handle rth;
 	struct {
-		struct nlmsghdr 	n;
+		struct nlmsghdr	n;
 		struct xfrm_usersa_id	xsid;
-		char   			buf[RTA_BUF_SIZE];
+		char  			buf[RTA_BUF_SIZE];
 	} req;
 	struct xfrm_id id;
 	char *idp = NULL;
