{-# LINE 1 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE CPP #-}
module System.Socket.Protocol.RTNetlink
( RTNetlink
, RTNetlinkGroup(..)
) where
import Data.Bits (shift)
import System.Socket (Protocol(..))
import System.Socket.Family.Netlink (NetlinkGroup(..))
data RTNetlink
instance Protocol RTNetlink where
protocolNumber _ = 0
data RTNetlinkGroup
= RTNetlinkGroupNone
| RTNetlinkGroupLink
| RTNetlinkGroupNotify
| RTNetlinkGroupNeighbor
| RTNetlinkGroupTC
| RTNetlinkGroupIPv4IfAddr
| RTNetlinkGroupIPv4MRoute
| RTNetlinkGroupIPv4Route
| RTNetlinkGroupIPv4Rule
| RTNetlinkGroupIPv6IfAddr
| RTNetlinkGroupIPv6MRoute
| RTNetlinkGroupIPv6Route
| RTNetlinkGroupIPv6IfInfo
| RTNetlinkGroupDECnetIfAddr
| RTNetlinkGroupDECnetRoute
| RTNetlinkGroupDECnetRule
| RTNetlinkGroupIPv6Prefix
| RTNetlinkGroupIPv6Rule
| RTNetlinkGroupNDUserOpt
| RTNetlinkGroupPhonetIfAddr
| RTNetlinkGroupPhonetRoute
| RTNetlinkGroupDCB
| RTNetlinkGroupIPv4Netconf
| RTNetlinkGroupIPv6Netconf
| RTNetlinkGroupMDB
deriving (Read, Show, Eq)
instance NetlinkGroup RTNetlinkGroup where
netlinkGroupNumber g = shift 1 $ bit g - 1
bit :: RTNetlinkGroup -> Int
bit RTNetlinkGroupNone = 0
{-# LINE 62 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupLink = 1
{-# LINE 63 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupNotify = 2
{-# LINE 64 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupNeighbor = 3
{-# LINE 65 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupTC = 4
{-# LINE 66 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv4IfAddr = 5
{-# LINE 67 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv4MRoute = 6
{-# LINE 68 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv4Route = 7
{-# LINE 69 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv4Rule = 8
{-# LINE 70 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv6IfAddr = 9
{-# LINE 71 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv6MRoute = 10
{-# LINE 72 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv6Route = 11
{-# LINE 73 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv6IfInfo = 12
{-# LINE 74 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupDECnetIfAddr = 13
{-# LINE 75 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupDECnetRoute = 15
{-# LINE 76 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupDECnetRule = 16
{-# LINE 77 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv6Prefix = 18
{-# LINE 78 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv6Rule = 19
{-# LINE 79 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupNDUserOpt = 20
{-# LINE 80 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupPhonetIfAddr = 21
{-# LINE 81 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupPhonetRoute = 22
{-# LINE 82 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupDCB = 23
{-# LINE 83 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv4Netconf = 24
{-# LINE 84 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupIPv6Netconf = 25
{-# LINE 85 "src/System/Socket/Protocol/RTNetlink.hsc" #-}
bit RTNetlinkGroupMDB = 26
{-# LINE 86 "src/System/Socket/Protocol/RTNetlink.hsc" #-}