Merge pull request #1735 from sumpfralle/olsr-jsoninfo-parser-handle-empty-result
[oweals/luci.git] / protocols / luci-proto-ipv6 / luasrc / model / network / proto_4x6.lua
1 -- Copyright 2011 Jo-Philipp Wich <jow@openwrt.org>
2 -- Copyright 2013 Steven Barth <steven@midlink.org>
3 -- Licensed to the public under the Apache License 2.0.
4
5 local netmod = luci.model.network
6
7 local _, p
8 for _, p in ipairs({"dslite", "map", "464xlat"}) do
9
10         local proto = netmod:register_protocol(p)
11
12         function proto.get_i18n(self)
13                 if p == "dslite" then
14                         return luci.i18n.translate("Dual-Stack Lite (RFC6333)")
15                 elseif p == "map" then
16                         return luci.i18n.translate("MAP / LW4over6")
17                 elseif p == "464xlat" then
18                         return luci.i18n.translate("464XLAT (CLAT)")
19                 end
20         end
21
22         function proto.ifname(self)
23                 return p .. "-" .. self.sid
24         end
25
26         function proto.opkg_package(self)
27                 if p == "dslite" then
28                         return "ds-lite"
29                 elseif p == "map" then
30                         return "map-t"
31                 elseif p == "464xlat" then
32                         return "464xlat"
33                 end
34         end
35
36         function proto.is_installed(self)
37                 return nixio.fs.access("/lib/netifd/proto/" .. p .. ".sh")
38         end
39
40         function proto.is_floating(self)
41                 return true
42         end
43
44         function proto.is_virtual(self)
45                 return true
46         end
47
48         function proto.get_interfaces(self)
49                 return nil
50         end
51
52         function proto.contains_interface(self, ifc)
53                 return (netmod:ifnameof(ifc) == self:ifname())
54         end
55 end
56
57 netmod:register_pattern_virtual("^464%-%w")
58 netmod:register_pattern_virtual("^ds%-%w")
59 netmod:register_pattern_virtual("^map%-%w")
60
61 netmod:register_error_code("AFTR_DNS_FAIL",             luci.i18n.translate("Unable to resolve AFTR host name"))
62 netmod:register_error_code("INVALID_MAP_RULE",  luci.i18n.translate("MAP rule is invalid"))
63 netmod:register_error_code("NO_MATCHING_PD",    luci.i18n.translate("No matching prefix delegation"))
64 netmod:register_error_code("UNSUPPORTED_TYPE",  luci.i18n.translate("Unsupported MAP type"))