Another guess: this macro could allow renaming an entry of the enum without breaking other code. Change
enum {
RTM_BASE = 16,
#define RTM_BASE RTM_BASE
to
enum {
RTM_BASE_NEW_NEW_NEW = 16,
#define RTM_BASE RTM_BASE_NEW_NEW_NEW
A user could still use RTM_BASE
.