1
2from pr2modules.bsd.pf_route import (if_msg,
3                                     rt_msg,
4                                     if_announcemsg,
5                                     ifma_msg,
6                                     ifa_msg)
7
8RTM_ADD = 0x1          # Add Route
9RTM_DELETE = 0x2       # Delete Route
10RTM_CHANGE = 0x3       # Change Metrics or flags
11RTM_GET = 0x4          # Report Metrics
12RTM_LOSING = 0x5       # Kernel Suspects Partitioning
13RTM_REDIRECT = 0x6     # Told to use different route
14RTM_MISS = 0x7         # Lookup failed on this address
15RTM_LOCK = 0x8         # Fix specified metrics
16RTM_RESOLVE = 0xb      # Req to resolve dst to LL addr
17RTM_NEWADDR = 0xc      # Address being added to iface
18RTM_DELADDR = 0xd      # Address being removed from iface
19RTM_IFINFO = 0xe       # Iface going up/down etc
20RTM_NEWMADDR = 0xf     # Mcast group membership being added to if
21RTM_DELMADDR = 0x10    # Mcast group membership being deleted
22RTM_IFANNOUNCE = 0x11  # Iface arrival/departure
23RTM_IEEE80211 = 0x12   # IEEE80211 wireless event
24
25
26class RTMSocketBase(object):
27
28    msg_map = {RTM_ADD: rt_msg,
29               RTM_DELETE: rt_msg,
30               RTM_CHANGE: rt_msg,
31               RTM_GET: rt_msg,
32               RTM_LOSING: rt_msg,
33               RTM_REDIRECT: rt_msg,
34               RTM_MISS: rt_msg,
35               RTM_LOCK: rt_msg,
36               RTM_RESOLVE: rt_msg,
37               RTM_NEWADDR: ifa_msg,
38               RTM_DELADDR: ifa_msg,
39               RTM_IFINFO: if_msg,
40               RTM_NEWMADDR: ifma_msg,
41               RTM_DELMADDR: ifma_msg,
42               RTM_IFANNOUNCE: if_announcemsg,
43               RTM_IEEE80211: if_announcemsg}
44