In some places bgpd just wants something bigger then a 32bit int.
Instead of using int64_t or u_int64_t use (unsigned) long long which is at
least 64bit and therefor good enough. Makes the mess with type definition
of int64_t on various systems go away (including a bunch of type casts).
While there also apply the endian.h cleanup done in bgpd a few days ago.

OK?
-- 
:wq Claudio

Index: usr.sbin/bgpctl/bgpctl.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpctl/bgpctl.c,v
retrieving revision 1.229
diff -u -p -r1.229 bgpctl.c
--- usr.sbin/bgpctl/bgpctl.c    11 Feb 2019 15:47:55 -0000      1.229
+++ usr.sbin/bgpctl/bgpctl.c    18 Feb 2019 20:53:38 -0000
@@ -23,6 +23,7 @@
 #include <sys/stat.h>
 #include <sys/un.h>
 
+#include <endian.h>
 #include <err.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -84,7 +85,6 @@ void           show_attr(void *, u_int16_t, int)
 void            show_community(u_char *, u_int16_t);
 void            show_large_community(u_char *, u_int16_t);
 void            show_ext_community(u_char *, u_int16_t);
-char           *fmt_mem(int64_t);
 int             show_rib_memory_msg(struct imsg *);
 void            send_filterset(struct imsgbuf *, struct filter_set_head *);
 const char     *get_errstr(u_int8_t, u_int8_t);
@@ -1761,12 +1761,12 @@ show_ext_community(u_char *data, u_int16
                case EXT_COMMUNITY_TRANS_OPAQUE:
                case EXT_COMMUNITY_TRANS_EVPN:
                        memcpy(&ext, data + i, sizeof(ext));
-                       ext = betoh64(ext) & 0xffffffffffffLL;
-                       printf("0x%llx", ext);
+                       ext = be64toh(ext) & 0xffffffffffffLL;
+                       printf("0x%llx", (unsigned long long)ext);
                        break;
                case EXT_COMMUNITY_NON_TRANS_OPAQUE:
                        memcpy(&ext, data + i, sizeof(ext));
-                       ext = betoh64(ext) & 0xffffffffffffLL;
+                       ext = be64toh(ext) & 0xffffffffffffLL;
                        switch (ext) {
                        case EXT_COMMUNITY_OVS_VALID:
                                printf("valid ");
@@ -1778,26 +1778,26 @@ show_ext_community(u_char *data, u_int16
                                printf("invalid ");
                                break;
                        default:
-                               printf("0x%llx ", ext);
+                               printf("0x%llx ", (unsigned long long)ext);
                                break;
                        }
                        break;
                default:
                        memcpy(&ext, data + i, sizeof(ext));
-                       printf("0x%llx", betoh64(ext));
+                       printf("0x%llx", (unsigned long long)be64toh(ext));
                }
                if (i + 8 < len)
                        printf(", ");
        }
 }
 
-char *
-fmt_mem(int64_t num)
+static char *
+fmt_mem(long long num)
 {
        static char     buf[16];
 
        if (fmt_scaled(num, buf) == -1)
-               snprintf(buf, sizeof(buf), "%lldB", (long long)num);
+               snprintf(buf, sizeof(buf), "%lldB", num);
 
        return (buf);
 }
@@ -1822,31 +1822,31 @@ show_rib_memory_msg(struct imsg *imsg)
                                continue;
                        pts += stats.pt_cnt[i] * pt_sizes[i];
                        printf("%10lld %s network entries using %s of memory\n",
-                           (long long)stats.pt_cnt[i], aid_vals[i].name,
+                           stats.pt_cnt[i], aid_vals[i].name,
                            fmt_mem(stats.pt_cnt[i] * pt_sizes[i]));
                }
                printf("%10lld rib entries using %s of memory\n",
-                   (long long)stats.rib_cnt, fmt_mem(stats.rib_cnt *
+                   stats.rib_cnt, fmt_mem(stats.rib_cnt *
                    sizeof(struct rib_entry)));
                printf("%10lld prefix entries using %s of memory\n",
-                   (long long)stats.prefix_cnt, fmt_mem(stats.prefix_cnt *
+                   stats.prefix_cnt, fmt_mem(stats.prefix_cnt *
                    sizeof(struct prefix)));
                printf("%10lld BGP path attribute entries using %s of memory\n",
-                   (long long)stats.path_cnt, fmt_mem(stats.path_cnt *
+                   stats.path_cnt, fmt_mem(stats.path_cnt *
                    sizeof(struct rde_aspath)));
                printf("\t   and holding %lld references\n",
-                   (long long)stats.path_refs);
+                   stats.path_refs);
                printf("%10lld BGP AS-PATH attribute entries using "
                    "%s of memory\n\t   and holding %lld references\n",
-                   (long long)stats.aspath_cnt, fmt_mem(stats.aspath_size),
-                   (long long)stats.aspath_refs);
+                   stats.aspath_cnt, fmt_mem(stats.aspath_size),
+                   stats.aspath_refs);
                printf("%10lld BGP attributes entries using %s of memory\n",
-                   (long long)stats.attr_cnt, fmt_mem(stats.attr_cnt *
+                   stats.attr_cnt, fmt_mem(stats.attr_cnt *
                    sizeof(struct attr)));
                printf("\t   and holding %lld references\n",
-                   (long long)stats.attr_refs);
+                   stats.attr_refs);
                printf("%10lld BGP attributes using %s of memory\n",
-                   (long long)stats.attr_dcnt, fmt_mem(stats.attr_data));
+                   stats.attr_dcnt, fmt_mem(stats.attr_data));
                printf("%10lld as-set elements in %lld tables using "
                    "%s of memory\n", stats.aset_nmemb, stats.aset_cnt,
                    fmt_mem(stats.aset_size));
Index: usr.sbin/bgpd/bgpd.h
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/bgpd.h,v
retrieving revision 1.372
diff -u -p -r1.372 bgpd.h
--- usr.sbin/bgpd/bgpd.h        18 Feb 2019 12:35:08 -0000      1.372
+++ usr.sbin/bgpd/bgpd.h        18 Feb 2019 20:53:38 -0000
@@ -1064,33 +1064,33 @@ extern struct rib_names ribnames;
 #define AS_NONE                0
 
 struct rde_memstats {
-       int64_t         path_cnt;
-       int64_t         path_refs;
-       int64_t         prefix_cnt;
-       int64_t         rib_cnt;
-       int64_t         pt_cnt[AID_MAX];
-       int64_t         nexthop_cnt;
-       int64_t         aspath_cnt;
-       int64_t         aspath_size;
-       int64_t         aspath_refs;
-       int64_t         attr_cnt;
-       int64_t         attr_refs;
-       int64_t         attr_data;
-       int64_t         attr_dcnt;
-       int64_t         aset_cnt;
-       int64_t         aset_size;
-       int64_t         aset_nmemb;
-       int64_t         pset_cnt;
-       int64_t         pset_size;
+       long long       path_cnt;
+       long long       path_refs;
+       long long       prefix_cnt;
+       long long       rib_cnt;
+       long long       pt_cnt[AID_MAX];
+       long long       nexthop_cnt;
+       long long       aspath_cnt;
+       long long       aspath_size;
+       long long       aspath_refs;
+       long long       attr_cnt;
+       long long       attr_refs;
+       long long       attr_data;
+       long long       attr_dcnt;
+       long long       aset_cnt;
+       long long       aset_size;
+       long long       aset_nmemb;
+       long long       pset_cnt;
+       long long       pset_size;
 };
 
 struct rde_hashstats {
        char            name[16];
-       int64_t         num;
-       int64_t         min;
-       int64_t         max;
-       int64_t         sum;
-       int64_t         sumq;
+       long long       num;
+       long long       min;
+       long long       max;
+       long long       sum;
+       long long       sumq;
 };
 
 #define        MRT_FILE_LEN    512
Index: usr.sbin/bgpd/session.h
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/session.h,v
retrieving revision 1.131
diff -u -p -r1.131 session.h
--- usr.sbin/bgpd/session.h     18 Feb 2019 09:58:19 -0000      1.131
+++ usr.sbin/bgpd/session.h     18 Feb 2019 20:53:38 -0000
@@ -149,22 +149,22 @@ struct ctl_conn {
 TAILQ_HEAD(ctl_conns, ctl_conn)        ctl_conns;
 
 struct peer_stats {
-       u_int64_t                msg_rcvd_open;
-       u_int64_t                msg_rcvd_update;
-       u_int64_t                msg_rcvd_notification;
-       u_int64_t                msg_rcvd_keepalive;
-       u_int64_t                msg_rcvd_rrefresh;
-       u_int64_t                msg_sent_open;
-       u_int64_t                msg_sent_update;
-       u_int64_t                msg_sent_notification;
-       u_int64_t                msg_sent_keepalive;
-       u_int64_t                msg_sent_rrefresh;
-       u_int64_t                prefix_rcvd_update;
-       u_int64_t                prefix_rcvd_withdraw;
-       u_int64_t                prefix_rcvd_eor;
-       u_int64_t                prefix_sent_update;
-       u_int64_t                prefix_sent_withdraw;
-       u_int64_t                prefix_sent_eor;
+       unsigned long long       msg_rcvd_open;
+       unsigned long long       msg_rcvd_update;
+       unsigned long long       msg_rcvd_notification;
+       unsigned long long       msg_rcvd_keepalive;
+       unsigned long long       msg_rcvd_rrefresh;
+       unsigned long long       msg_sent_open;
+       unsigned long long       msg_sent_update;
+       unsigned long long       msg_sent_notification;
+       unsigned long long       msg_sent_keepalive;
+       unsigned long long       msg_sent_rrefresh;
+       unsigned long long       prefix_rcvd_update;
+       unsigned long long       prefix_rcvd_withdraw;
+       unsigned long long       prefix_rcvd_eor;
+       unsigned long long       prefix_sent_update;
+       unsigned long long       prefix_sent_withdraw;
+       unsigned long long       prefix_sent_eor;
        time_t                   last_updown;
        time_t                   last_read;
        u_int32_t                prefix_cnt;

Reply via email to