コード例 #1
0
ファイル: test_platform.py プロジェクト: annp1987/pyroute2
    def monitor(self):
        # The monitoring code to collect RTNL messages
        # asynchronously.
        # Do **NOT** run manually.

        # use a separate socket for monitoring
        ip = RawIPRoute()
        ip.bind(RTNLGRP_LINK)
        poll = select.poll()
        poll.register(ip, select.POLLIN | select.POLLPRI)
        poll.register(self.cmd, select.POLLIN | select.POLLPRI)
        self.event.set()
        while True:
            events = poll.poll()
            for (fd, evt) in events:
                if fd == ip.fileno():
                    msgs = ip.get()
                    for msg in msgs:
                        name = msg.get_attr('IFLA_IFNAME')
                        event = msg.get('event')
                        if name not in self.rtm_events:
                            continue
                        if event == 'RTM_NEWLINK':
                            self.rtm_events[name].set()
                            self.rtm_newlink[name].append(msg)
                        elif event == 'RTM_DELLINK':
                            self.rtm_dellink[name].append(msg)
                else:
                    ip.close()
                    return
コード例 #2
0
ファイル: __init__.py プロジェクト: walkerlee/pyroute2
 def monitor(event, ifname, cmd):
     with RawIPRoute() as ipr:
         poll = select.poll()
         poll.register(ipr, select.POLLIN | select.POLLPRI)
         poll.register(cmd, select.POLLIN | select.POLLPRI)
         ipr.bind()
         while True:
             events = poll.poll()
             for (fd, event) in events:
                 if fd == ipr.fileno():
                     msgs = ipr.get()
                     for msg in msgs:
                         if msg.get('event') == event and \
                                 msg.get_attr('IFLA_IFNAME') == ifname:
                             return
                 else:
                     return
コード例 #3
0
ファイル: utils.py プロジェクト: will3b/audit-radius
def set_interface_operstate(iface_index, linkmode, operstate):
    """
    Set interface operational state.
    https://www.kernel.org/doc/Documentation/networking/operstates.txt
    """

    done = True

    try:
        with RawIPRoute() as rawip:
            rawip.link('set',
                       index=iface_index,
                       IFLA_LINKMODE=linkmode,
                       IFLA_OPERSTATE=operstate)
    except NetlinkError as netlink_err:
        g_exception_logger.exception(netlink_err)
        done = False

    return done
コード例 #4
0
ファイル: test_platform.py プロジェクト: annp1987/pyroute2
    def setup(self):
        # The setup procedure for a test.
        # Do **NOT** run manually.

        # create the raw socket
        self.ip = RawIPRoute()