コード例 #1
0
ファイル: system.py プロジェクト: svinota/open-kilda
 def _make_bridge_setup(self, name):
     try:
         self._make_group_fwd_mask_setup(name)
     except OSError as e:
         raise exc.SystemCompatibilityError(
             type(self), name,
             'filed to alter {} file: {}'.format(e.filename, e.strerror))
コード例 #2
0
ファイル: system.py プロジェクト: svinota/open-kilda
    def _make_group_fwd_mask_setup(self, name):
        p = pathlib.Path('/sys/class/net')
        p /= name
        p /= 'bridge/group_fwd_mask'
        with p.open('w+') as stream:
            raw = stream.readline()
            bitmask = raw.strip()
            try:
                bitmask = int(bitmask, 0)
            except ValueError as e:
                raise exc.SystemCompatibilityError(
                    type(self), name,
                    '{!r} read from group_fwd_mask is not a number'.format(
                        raw))

            bitmask |= 0x4000  # allow LLDP forwarding (ie 01:80:c2:00:00:0e)

            stream.seek(0, os.SEEK_SET)
            stream.write('0x{:x}\n'.format(bitmask))