Lennart Poettering [Thu, 11 Dec 2014 00:53:43 +0000 (01:53 +0100)]
update TODO
Tom Gundersen [Thu, 11 Dec 2014 13:43:09 +0000 (14:43 +0100)]
sd-dhcp-client: log if we fail to set up lease timers
Tom Gundersen [Thu, 11 Dec 2014 13:17:35 +0000 (14:17 +0100)]
tests: udev - assume /etc/machine-id rather than /etc/hosts
On todays machines /etc/hosts is not mandatory. /etc/machine-id is though, so let's rely on that instead.
This makes the udev tests pass again for me.
Tom Gundersen [Wed, 3 Dec 2014 16:32:40 +0000 (17:32 +0100)]
libudev: make libudev-hwdb a wrapper around sd-hwdb
Tom Gundersen [Wed, 3 Dec 2014 16:02:34 +0000 (17:02 +0100)]
libsystemd: add sd-hwdb library
This is libudev-hwdb, but decoupled from libudev and in the libsystemd style.
The core code is unchanged, apart from the following minor changes:
- hwdb.bin located in /**/systemd/hwdb/ take preference over the ones located
in /**/udev/
- properties are stored internally in an OrderedHashmap, rather than a
linked list.
- a new API call allows individual properties to be queried directly, rather
than iterating over them all
- the iteration over properties have been moved inside the library, rather than
exposing a list directly
- the unused 'flags' parameter was dropped
David Herrmann [Thu, 11 Dec 2014 12:19:41 +0000 (13:19 +0100)]
bus: sync with kdbus.git
Sync up with recent kdbus changed:
* several ioctls gained .size and .items members (but still unused)
* CMD_SEND gained its own ioctl structure
* several members of kdbus_msg were dropped as they were only used during
SEND, not during RECV etc.
* CMD_RECV and CMD_SEND now share a kdbus_reply member which contains the
offset and size of the returned message.
David Herrmann [Thu, 11 Dec 2014 09:45:58 +0000 (10:45 +0100)]
bus: zero cmd_free before passing to ioctl
Make sure the whole cmd_free object is zeroed before passing it into the
kernel. This makes valgrind happy and makes us future proof.
David Herrmann [Thu, 11 Dec 2014 09:44:41 +0000 (10:44 +0100)]
bus: fix memfd-cache regarding memfd offsets
We must restore part->mmap_begin when poping memfds from the memfd-cache.
We rely on the memfds to be unsealed, so we can be sure that we own the
whole FD. Therefore, simply set part->mmap_begin to the same as
part->data.
This fixes test-bus-kernel-benchmark.
David Herrmann [Thu, 11 Dec 2014 08:01:34 +0000 (09:01 +0100)]
TODO: update
Drop resolved kdbus issues.
Zbigniew Jędrzejewski-Szmek [Thu, 11 Dec 2014 05:02:54 +0000 (00:02 -0500)]
localectl,man: make it obvious that set-*-keymaps sets both keymaps
https://bugs.freedesktop.org/show_bug.cgi?id=85411
Zbigniew Jędrzejewski-Szmek [Wed, 10 Dec 2014 22:34:41 +0000 (17:34 -0500)]
zsh-completion: remove duplicate function
https://bugs.archlinux.org/task/43069
Lennart Poettering [Wed, 10 Dec 2014 22:19:55 +0000 (23:19 +0100)]
build-sys: update Lennart's private target
Lennart Poettering [Wed, 10 Dec 2014 22:17:54 +0000 (23:17 +0100)]
NEWS: minor wording improvement
Lennart Poettering [Wed, 10 Dec 2014 22:01:13 +0000 (23:01 +0100)]
build-sys: add missing file to CLEANFILES
Lennart Poettering [Wed, 10 Dec 2014 21:33:21 +0000 (22:33 +0100)]
NEWS: update contributors list
Lennart Poettering [Wed, 10 Dec 2014 21:31:27 +0000 (22:31 +0100)]
build-sys: bump package and library versions in preparation for 218 release
Lennart Poettering [Wed, 10 Dec 2014 21:10:46 +0000 (22:10 +0100)]
build-sys: turn off SMACK capabilities stuff for now, since it is incompatible with nspawn
Lennart Poettering [Wed, 10 Dec 2014 21:08:49 +0000 (22:08 +0100)]
update TODO
Lennart Poettering [Wed, 10 Dec 2014 21:06:44 +0000 (22:06 +0100)]
scope: make attachment of initial PIDs a bit more robust
Lennart Poettering [Wed, 10 Dec 2014 19:38:24 +0000 (20:38 +0100)]
core: don't migrate PIDs for units that may contain subcgroups, do this only for leaf units
Otherwise a slice or delegation unit might move PIDs around ignoring the
fact that it is attached to a subcgroup.
Lennart Poettering [Wed, 10 Dec 2014 18:57:52 +0000 (19:57 +0100)]
update TODO
Lennart Poettering [Wed, 10 Dec 2014 18:57:45 +0000 (19:57 +0100)]
core: properly pass unit file state to clients via the bus
Kay Sievers [Wed, 10 Dec 2014 18:46:00 +0000 (19:46 +0100)]
build-sys: fix link-order
Lennart Poettering [Wed, 10 Dec 2014 18:07:32 +0000 (19:07 +0100)]
update TODO
Lennart Poettering [Wed, 10 Dec 2014 18:06:43 +0000 (19:06 +0100)]
sd-bus: make BUS_ERROR_MAP_ELF_USE() use a const variable
Lennart Poettering [Wed, 10 Dec 2014 18:03:08 +0000 (19:03 +0100)]
networkd: rename section [BridgePort] → [Bridge]
Let's stick to generic sections that describe the general technology,
instead of specific per-object sections, unless we really have a reason
to do that otherwise.
Lennart Poettering [Wed, 10 Dec 2014 18:00:46 +0000 (19:00 +0100)]
sd-bus: move common errors src/shared/bus-errors.h → src/libsystemd/sd-bus/bus-common-errors.h
Stuff in src/shared/ should not use stuff from src/libsystemd/ really.
Patrik Flykt [Wed, 10 Dec 2014 14:17:35 +0000 (16:17 +0200)]
networkd-dhcp6: Support ICMPv6 Other information
When ICMPv6 Other information is received, enable Information request
in DHCPv6. If the DHCPv6 client already exists, only update the client
if there is a transition from Other to Managed state.
Patrik Flykt [Wed, 10 Dec 2014 14:17:34 +0000 (16:17 +0200)]
networkd-dhcp6: Move ICMPv6 and DHCPv6 configuration to new file
Handle all aspects of ICMPv6 and DHCPv6 in a file of its own as is done
with DHCPv4 and IPv4LL.
Patrik Flykt [Wed, 10 Dec 2014 14:17:33 +0000 (16:17 +0200)]
test-dhcp6-client: Add a simple Information Request test case
Start the DHCPv6 test case by sending an Information Request, verifying
the reply and continuing at once with the normal address acquisition
procedure. Reuse the DHCPv6 Solicit Reply so that the client code is
verified to ignore any erroneously added IPv6 address information.
Patrik Flykt [Wed, 10 Dec 2014 14:17:32 +0000 (16:17 +0200)]
sd-dhcp6-client: Implement Information Request message
Implement Information Request message according to RFC 3315, section
18.1.5. with the excepion that the first message is not delayed by a
random amount. Instead systemd-networkd is supposed to take care of
desynchronizing between other clients.
Initialize the DHCPv6 client structure in sd_dhcp6_client_start()
as this allows toggling between information request and normal
DHCPv6 address aquisition modes.
Patrik Flykt [Wed, 10 Dec 2014 14:17:31 +0000 (16:17 +0200)]
sd-dhcp6-lease: Return only -EINVAL when a NULL lease is supplied
Suppyling a NULL lease is not a condition that needs to be asserted,
returning -EINVAL is informative enough to the caller. This simplifies
calling code and doesn't falsely indicate that something erroneous was
attempted.
Patrik Flykt [Wed, 10 Dec 2014 14:17:30 +0000 (16:17 +0200)]
sd-dhcp6-client: Make end of successfull option parsing explicit
When all DHCPv6 options have been parsed, dhcp6_option_parse() returns
-ENOMSG. Explicitely set the return value to indicate success so that
later code does not need to take this special value into account.
Torstein Husebø [Wed, 10 Dec 2014 16:41:54 +0000 (17:41 +0100)]
hwdb: fix typo
Lennart Poettering [Wed, 10 Dec 2014 16:38:47 +0000 (17:38 +0100)]
hwdb: add two more mice to the DPI database
Lennart Poettering [Wed, 10 Dec 2014 14:59:38 +0000 (15:59 +0100)]
hwdb: add another Logitech mouse (M-BZ96C)
Lennart Poettering [Wed, 10 Dec 2014 14:46:28 +0000 (15:46 +0100)]
TODO
Lennart Poettering [Wed, 10 Dec 2014 14:46:22 +0000 (15:46 +0100)]
man: improve docs for systemd-modules-load.service
Lennart Poettering [Wed, 10 Dec 2014 14:46:08 +0000 (15:46 +0100)]
hwdb: add DPI data for M325 mouse
Jan Synacek [Wed, 10 Dec 2014 09:20:11 +0000 (10:20 +0100)]
test: fix some tests when running inside a container
Lennart Poettering [Wed, 10 Dec 2014 12:23:49 +0000 (13:23 +0100)]
virt: when detecting containers and /run/systemd/container cannot be read, check /proc/1/environ
This way, we should be in a slightly better situation if a container is
booted up with only a shell as PID 1. In that case
/run/systemd/container will not be populated, and a check for it hence
be ineffective.
Checking /proc/1/environ doesn't fully fix the problem though, as the
file is only accessible with privileges. This means if PID 1 is not
systemd, and if privileges have been dropped the container detection
will continue to fail.
Zbigniew Jędrzejewski-Szmek [Tue, 9 Dec 2014 19:41:24 +0000 (14:41 -0500)]
systemctl: fix invalid free when enabling sysv services fails
The error was introduced in v215-343-g60731f32f1 'systemctl: do not
bother to mutate state on error', by causing strv_free to attempt to
free a static string. Simplify the whole thing by always keeping the
array in valid state.
Zbigniew Jędrzejewski-Szmek [Tue, 2 Dec 2014 01:47:37 +0000 (20:47 -0500)]
ima-setup: simplify
Zbigniew Jędrzejewski-Szmek [Tue, 2 Dec 2014 01:43:19 +0000 (20:43 -0500)]
treewide: sanitize loop_write
loop_write() didn't follow the usual systemd rules and returned status
partially in errno and required extensive checks from callers. Some of
the callers dealt with this properly, but many did not, treating
partial writes as successful. Simplify things by conforming to usual rules.
Lennart Poettering [Wed, 10 Dec 2014 02:25:48 +0000 (03:25 +0100)]
kdbus: downgrade warning if we cannot patch kdbus attach mask to DEBUG if kdbus is not available
Lennart Poettering [Wed, 10 Dec 2014 02:16:14 +0000 (03:16 +0100)]
util: introduce our own gperf based capability list
This way, we can ensure we have a more complete, up-to-date list of
capabilities around, always.
Lennart Poettering [Wed, 10 Dec 2014 01:36:42 +0000 (02:36 +0100)]
update TODO
Lennart Poettering [Wed, 10 Dec 2014 01:36:35 +0000 (02:36 +0100)]
build-sys: fix CLEANFILES= for dns_type list
Lennart Poettering [Wed, 10 Dec 2014 00:47:59 +0000 (01:47 +0100)]
mount: clarify that we really need to replace the utab inotify code with the native API for this in libmount, as soon as that's stable
Lennart Poettering [Wed, 10 Dec 2014 00:45:43 +0000 (01:45 +0100)]
core: unify how we iterate over inotify events
Let's add some syntactic sugar for iterating through inotify events, and
use it everywhere.
Lennart Poettering [Tue, 9 Dec 2014 23:52:56 +0000 (00:52 +0100)]
mount: use bools where appropriate
Ronny Chevalier [Wed, 10 Dec 2014 00:33:08 +0000 (01:33 +0100)]
catalog: fix typos in the French translation
Ronny Chevalier [Wed, 10 Dec 2014 00:10:01 +0000 (01:10 +0100)]
shell-completion: systemctl edit
Ronny Chevalier [Tue, 9 Dec 2014 23:50:24 +0000 (00:50 +0100)]
NEWS: fix typos
Lennart Poettering [Tue, 9 Dec 2014 23:49:35 +0000 (00:49 +0100)]
gitignore: hide some more files
Lennart Poettering [Tue, 9 Dec 2014 23:46:33 +0000 (00:46 +0100)]
hwdb: update PCI, USB, OUI databases
Lennart Poettering [Tue, 9 Dec 2014 23:40:23 +0000 (00:40 +0100)]
build-sys: don't fail if CAP_SETFCAP is missing
Peter Hutterer [Sun, 7 Dec 2014 23:17:26 +0000 (09:17 +1000)]
hwdb: add more mouse DPI entries
Plus a note for Logitech devices using the unified receiver: these devices
include their wireless PID in the name, the usb PID/VID is the same for all.
In kernel 3.19 the actual model number will be the name, but the patches are
still a bit in flux at this point. In the future each device will need two
entries for pre+3.19 and 3.19.
https://bugs.freedesktop.org/show_bug.cgi?id=87037
https://bugs.freedesktop.org/show_bug.cgi?id=87072
https://bugs.freedesktop.org/show_bug.cgi?id=87162
Lennart Poettering [Tue, 9 Dec 2014 23:30:19 +0000 (00:30 +0100)]
NEWS: add contributors list
Lennart Poettering [Tue, 9 Dec 2014 23:27:26 +0000 (00:27 +0100)]
NEWS: prepare NEWS for new release
Lennart Poettering [Tue, 9 Dec 2014 23:26:16 +0000 (00:26 +0100)]
nspawn: create the macvlan MAC addresses in an arch independent stable way
Michal Schmidt [Tue, 9 Dec 2014 19:27:26 +0000 (20:27 +0100)]
journal: optimize iteration: skip files that cannot improve current candidate entry
Suppose that while iterating we have already looked into a journal file
and got a candidate for the next entry. And we are considering to look
into another journal file because it may contain an entry that is nearer
to the current location than the candidate.
We should skip the whole journal file if we can tell by looking at its
header that none of its entries can precede the candidate.
Before:
$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null
real 0m20.518s
user 0m19.989s
sys 0m0.328s
After:
$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null
real 0m9.445s
user 0m9.228s
sys 0m0.213s
Michal Schmidt [Tue, 9 Dec 2014 19:27:19 +0000 (20:27 +0100)]
journal: optimize iteration: skip whole files behind current location
Interleaving of entries from many journal files is expensive. But there
is room for optimization.
We can skip looking into journal files whose entries all lie before the
current iterating location. We can tell if that's the case from looking
at the journal file header. This saves a huge amount of work if one has
many of mostly not interleaved journal files.
On my workstation with 90 journal files in /var/log/journal/ID/
totalling 3.4 GB I get these results:
Before:
$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null
real 5m54.258s
user 2m4.263s
sys 3m48.965s
After:
$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null
real 0m20.518s
user 0m19.989s
sys 0m0.328s
The high "sys" time in the original was caused by putting more stress on
the mmap-cache than it could handle. With the patch the working set
now consists of fewer mmap windows and mmap-cache is not thrashing.
Thomas Hindoe Paaboel Andersen [Tue, 9 Dec 2014 19:50:37 +0000 (20:50 +0100)]
networkd: remove unused variable
It is no longer used after
45af44d47da6933b260c734ad9ff721f63f80a4d
WaLyong Cho [Tue, 9 Dec 2014 12:46:30 +0000 (21:46 +0900)]
unit: update unit dropin paths and time when dropin file is written.
If a unit is set property by "systemctl set-property", a new dropin
file is generated. But the unit's dropin_paths and dropin_mtime are
not updated. So the unit is shown as need daemon reload.
Update unit dropin_paths and dropin_mtime also when dropin file is
written.
Przemyslaw Kedzierski [Tue, 9 Dec 2014 11:17:24 +0000 (12:17 +0100)]
bus-proxy: cloning smack label
When dbus client connects to systemd-bus-proxyd through
Unix domain socket proxy takes client's smack label and sets for itself.
It is done before and independent of dropping privileges.
The reason of such soluton is fact that tests of access rights
performed by lsm may take place inside kernel, not only
in userspace of recipient of message.
The bus-proxyd needs CAP_MAC_ADMIN to manipulate its label.
In case of systemd running in system mode, CAP_MAC_ADMIN
should be added to CapabilityBoundingSet in service file of bus-proxyd.
In case of systemd running in user mode ('systemd --user')
it can be achieved by addition
Capabilities=cap_mac_admin=i and SecureBits=keep-caps
to user@.service file
and setting cap_mac_admin+ei on bus-proxyd binary.
WaLyong Cho [Tue, 9 Dec 2014 07:07:16 +0000 (16:07 +0900)]
run: introduce timer support option
Support timer options --on-active=, --on-boot=, --on-startup=,
--on-unit-active=, --on-unit-inactive=, --on-calendar=. Each options
corresponding with OnActiveSec=, OnBootSec=, OnStartupSec=,
OnUnitActiveSec=, OnUnitInactiveSec=, OnCalendar= of timer
respectively. And OnCalendar= and WakeSystem= supported by
--timer-property= option like --property= of systemd-run.
And if --unit= option and timer options are specified the command can
be omitted. In this case, systemd-run assumes the target service is
already loaded. And just try to generate transient timer unit only.
Lennart Poettering [Tue, 9 Dec 2014 17:17:35 +0000 (18:17 +0100)]
update TODO
Lennart Poettering [Tue, 9 Dec 2014 17:16:54 +0000 (18:16 +0100)]
sd-bus: get rid of PID starttime concept
As kdbus no longer exports this, remove all traces from sd-bus too
Lennart Poettering [Tue, 9 Dec 2014 17:07:46 +0000 (18:07 +0100)]
sd-bus: properly support passing memfds around with offset/size parameters
David Herrmann [Tue, 9 Dec 2014 10:12:41 +0000 (11:12 +0100)]
bus: sync with kdbus-git (ABI break)
kdbus-git gained two new features:
* memfd offsets: This allows to specify a 'start' offset in kdbus_memfd
so you can send partial memfd hunks instead of always
the full memfd
* KDBUS_HELLO_UNPRIVILEGED: If passed during HELLO, the client will be
treated as unprivileged.
Dan Winship [Tue, 18 Nov 2014 13:59:42 +0000 (08:59 -0500)]
libsystemd-network: fix writing of routes in dhcp lease file
inet_ntoa() uses a static buffer, so you can't call it twice in the
same fprintf() call.
Lennart Poettering [Tue, 9 Dec 2014 02:58:20 +0000 (03:58 +0100)]
sleep: drop redundant MESSAGE= prefix
Lennart Poettering [Tue, 9 Dec 2014 02:58:10 +0000 (03:58 +0100)]
update TODO
Wesley Dawson [Mon, 1 Dec 2014 07:27:00 +0000 (23:27 -0800)]
journalctl: respect --after-cursor semantics with --follow in all cases
In the case where no entries have been added to the journal after the specified
cursor, set need_seek before the main loop to prevent display of the entry at
said cursor.
Lennart Poettering [Tue, 9 Dec 2014 01:31:42 +0000 (02:31 +0100)]
core: rename unit_destroy_cgroup() to unit_destroy_cgroup_if_empty() since it's not quite as destructive as it sounds nowadays
Ross Lagerwall [Sat, 29 Nov 2014 15:27:14 +0000 (15:27 +0000)]
cgroup: Handle error when destroying cgroup
If a cgroup fails to be destroyed (most likely because there are still
processes running as part of a service after the main pid exits), don't
free and remove the cgroup unit from the manager. This fixes a
regression introduced by the cgroup rework in v205 where systemd would
forget about processes still running after the unit becomes inactive.
(This can happen when the main pid exits and KillMode=process or none).
Michael Marineau [Mon, 8 Dec 2014 19:05:31 +0000 (11:05 -0800)]
fstab-generator: Allow mount.usr without mount.usrflags, honor rw/ro
There is no need to require mount.usrflags. The original implementation
assumed that a btrfs subvolume would always be needed but that is not
applicable to systems that do not use btrfs for /usr.
Similar to using rootflags= for the default of mount.usrflags=, append
the classic 'ro' and 'rw' flags to the mount options.
Lennart Poettering [Tue, 9 Dec 2014 01:22:44 +0000 (02:22 +0100)]
fstab-generator: free all allocated strings
Lennart Poettering [Tue, 9 Dec 2014 01:12:11 +0000 (02:12 +0100)]
units: make sure container-getty@.service stops restarting when the pts device it is bound to is gone
We only want to restart the getty as long as the pts device is still
around. As soon as it is gone, the service should be removed to.
http://lists.freedesktop.org/archives/systemd-devel/2014-December/026048.html
Lennart Poettering [Tue, 9 Dec 2014 01:05:19 +0000 (02:05 +0100)]
update TODO
Lennart Poettering [Tue, 9 Dec 2014 00:20:09 +0000 (01:20 +0100)]
nspawn: make sure macvlan MAC addresses are stable
https://bugs.freedesktop.org/show_bug.cgi?id=85527
Lennart Poettering [Tue, 9 Dec 2014 00:09:21 +0000 (01:09 +0100)]
sd-rtnl: fix size check in sd_rtnl_message_append_string()
Lennart Poettering [Mon, 8 Dec 2014 23:08:31 +0000 (00:08 +0100)]
update TODO
Lennart Poettering [Mon, 8 Dec 2014 23:01:36 +0000 (00:01 +0100)]
sd-bus: catch up with current kdbus, don't do matches on kdbus monitor connections
Lennart Poettering [Mon, 8 Dec 2014 22:52:08 +0000 (23:52 +0100)]
update TODO
Lennart Poettering [Mon, 8 Dec 2014 22:47:19 +0000 (23:47 +0100)]
bus-proxy: fix compat with autostarted services
Zbigniew Jędrzejewski-Szmek [Mon, 8 Dec 2014 22:24:34 +0000 (17:24 -0500)]
load-fragment: remove wrong ifdef guard
config_parse_warn_compat is now always used for removed options.
https://bugs.freedesktop.org/show_bug.cgi?id=87125
Tom Gundersen [Mon, 8 Dec 2014 18:54:06 +0000 (19:54 +0100)]
networkd: manager - enumerate addresses globally, rather than per-link
The kernel always returns all addresses, rather than only for the given link, so let's only enumerate once.
Olivier Brunel [Fri, 5 Dec 2014 15:06:45 +0000 (16:06 +0100)]
journal: Fix navigating backwards missing entries
With DIRECTION_UP (i.e. navigating backwards) in generic_array_bisect() when the
needle was found as the last item in the array, it wasn't actually processed as
match, resulting in entries being missed.
https://bugs.freedesktop.org/show_bug.cgi?id=86855
Tom Gundersen [Mon, 8 Dec 2014 17:36:49 +0000 (18:36 +0100)]
networkd: link - typo
Tom Gundersen [Mon, 8 Dec 2014 17:36:16 +0000 (18:36 +0100)]
sd-rtnl: fix bogus warning about dropping 20 bytes from multi-part messages
Nothing was being dropped, we just failed to account for the NLMSG_DONE.
Tom Gundersen [Mon, 8 Dec 2014 12:58:48 +0000 (13:58 +0100)]
networkd: route - ignore unknown address family
Tom Gundersen [Sun, 7 Dec 2014 12:00:01 +0000 (13:00 +0100)]
udev: link-config - simplify net-match
Dave Reisner [Sat, 6 Dec 2014 18:34:27 +0000 (13:34 -0500)]
Check return value from reading name_assign_type attr
This file won't exist on kernels earlier than 3.17.
Mantas Mikulėnas [Mon, 8 Dec 2014 11:53:30 +0000 (13:53 +0200)]
networkd: update manpage for optional Gateway=
Following commit
59580681f5f.
WaLyong Cho [Mon, 8 Dec 2014 15:03:53 +0000 (00:03 +0900)]
timer: timer can be a transient unit
WaLyong Cho [Mon, 8 Dec 2014 15:03:52 +0000 (00:03 +0900)]
bus: StartTransientUnit can have aux unit
Lennart Poettering [Sat, 6 Dec 2014 01:41:03 +0000 (02:41 +0100)]
update TODO
Lennart Poettering [Sat, 6 Dec 2014 01:39:15 +0000 (02:39 +0100)]
sd-bus: rework ELF error mapping table magic
The ELF magic cannot work for consumers of our shard library, since they
are in a different module. Hence make all the ELF magic private, and
instead introduce a public function to register additional static
mapping table.