]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Optimize memory usage for bgp_nlri struct
authorDonatas Abraitis <donatas@opensourcerouting.org>
Mon, 29 Jan 2024 13:37:23 +0000 (15:37 +0200)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Mon, 29 Jan 2024 13:37:23 +0000 (15:37 +0200)
```
struct bgp_nlri {
uint16_t                   afi;                  /*     0     2 */
uint8_t                    safi;                 /*     2     1 */

/* XXX 1 byte hole, try to pack */

bgp_size_t                 length;               /*     4     2 */

/* XXX 2 bytes hole, try to pack */

uint8_t *                  nlri;                 /*     8     8 */

/* size: 16, cachelines: 1, members: 4 */
/* sum members: 13, holes: 2, sum holes: 3 */
/* last cacheline: 16 bytes */
};   /* saved 8 bytes! */
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgpd.h

index 8bde9999f9bf4c530d8b4d3abafcb0ede5b2b848..385a2f01e8890fac81afab3956de60a6e08e8f54 100644 (file)
@@ -1890,11 +1890,11 @@ struct bgp_nlri {
        /* SAFI.  */
        uint8_t safi; /* iana_safi_t */
 
-       /* Pointer to NLRI byte stream.  */
-       uint8_t *nlri;
-
        /* Length of whole NLRI.  */
        bgp_size_t length;
+
+       /* Pointer to NLRI byte stream.  */
+       uint8_t *nlri;
 };
 
 /* BGP versions.  */