Page MenuHomeVyOS Platform
Feed All Stories

Aug 30 2020

jestabro added a comment to T2636: get_config_dict() shall always return a list on <multi/> nodes.

Resolved in PR536.

Aug 30 2020, 7:08 PM · VyOS 1.3 Equuleus (1.3.0)
jestabro committed rVYOSONEX1e632d7d01f6: https: add simple smoketest to check nginx config integrity.
Aug 30 2020, 6:36 PM
c-po added a comment to T1014: Mellanox cards, problem with interrupts.

Multiple fixes have been placed into the 4.19 series Kernel. Could you please try upgrading to VyOS 1.2.5 or 1.2.6-epa1?

Aug 30 2020, 6:17 PM
c-po committed rVYOSONEXbe49f336550f: nat: T2814: nftables module for NAT has been renamed.
Aug 30 2020, 6:09 PM
c-po closed T2814: kernel 5.1+ : NAT : module `nft_chain_nat_ipv4` renamed, a subtask of T2843: Upgrade Linux Kernel to 5.8 series, as Resolved.
Aug 30 2020, 6:09 PM · VyOS 1.3 Equuleus (1.3.0)
c-po closed T2814: kernel 5.1+ : NAT : module `nft_chain_nat_ipv4` renamed as Resolved.
Aug 30 2020, 6:09 PM · VyOS 1.3 Equuleus (1.3.0)
c-po updated the task description for T2843: Upgrade Linux Kernel to 5.8 series.
Aug 30 2020, 6:02 PM · VyOS 1.3 Equuleus (1.3.0)
c-po changed the status of T2843: Upgrade Linux Kernel to 5.8 series from Open to In progress.
Aug 30 2020, 6:02 PM · VyOS 1.3 Equuleus (1.3.0)
GitHub <noreply@github.com> committed rVYOSONEX9f3f7812eeec: Merge pull request #536 from jestabro/T2636 (authored by jestabro).
Aug 30 2020, 5:33 PM
c-po changed the status of T2814: kernel 5.1+ : NAT : module `nft_chain_nat_ipv4` renamed, a subtask of T2843: Upgrade Linux Kernel to 5.8 series, from Open to In progress.
Aug 30 2020, 5:28 PM · VyOS 1.3 Equuleus (1.3.0)
c-po changed the status of T2814: kernel 5.1+ : NAT : module `nft_chain_nat_ipv4` renamed from Open to In progress.
Aug 30 2020, 5:28 PM · VyOS 1.3 Equuleus (1.3.0)
c-po added a subtask for T2843: Upgrade Linux Kernel to 5.8 series: T2814: kernel 5.1+ : NAT : module `nft_chain_nat_ipv4` renamed.
Aug 30 2020, 5:13 PM · VyOS 1.3 Equuleus (1.3.0)
c-po added a parent task for T2814: kernel 5.1+ : NAT : module `nft_chain_nat_ipv4` renamed: T2843: Upgrade Linux Kernel to 5.8 series.
Aug 30 2020, 5:13 PM · VyOS 1.3 Equuleus (1.3.0)
c-po edited a custom field on T2843: Upgrade Linux Kernel to 5.8 series.
Aug 30 2020, 4:40 PM · VyOS 1.3 Equuleus (1.3.0)
c-po created T2843: Upgrade Linux Kernel to 5.8 series.
Aug 30 2020, 4:40 PM · VyOS 1.3 Equuleus (1.3.0)
hagbard added a comment to T563: webproxy: migrate 'service webproxy' to get_config_dict().
In T563#74302, @c-po wrote:

Please use the new get_config_dict() API calls.

Aug 30 2020, 4:35 PM · VyOS 1.3 Equuleus (1.3.0-epa1)
c-po added a comment to T563: webproxy: migrate 'service webproxy' to get_config_dict().

Please use the new get_config_dict() API calls.

Aug 30 2020, 4:07 PM · VyOS 1.3 Equuleus (1.3.0-epa1)
hagbard added a comment to T563: webproxy: migrate 'service webproxy' to get_config_dict().

Squid will be used for authentication and controlling name resolution (pointing to a spacial DNS or so?) , no squidguard or caching will be used anymore. It also ran in transparent mode per default, which requires an iptables rules set. I think that feature can be removed, since a transparent proxy has no authentication options anyway.

Aug 30 2020, 4:01 PM · VyOS 1.3 Equuleus (1.3.0-epa1)
hagbard triaged T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1 as Normal priority.
Aug 30 2020, 3:12 PM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux
hagbard added a project to T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1: VyOS 1.3 Equuleus.
Aug 30 2020, 3:10 PM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux
c-po committed rVYOSONEXbab1534e0fc1: WireGuard: T2842: switch to binary package from buster-backports.
Aug 30 2020, 2:10 PM
c-po closed T2842: Replace custom "wireguard, wireguard-tools" package with debian-backports version as Resolved.
Aug 30 2020, 2:09 PM · VyOS 1.3 Equuleus (1.3.0)
c-po created T2842: Replace custom "wireguard, wireguard-tools" package with debian-backports version.
Aug 30 2020, 2:08 PM · VyOS 1.3 Equuleus (1.3.0)
marekm added a comment to T2820: BGP crash in if_destroy_via_zapi.

I've just had two different routers (one bare metal and one VM) crash roughly at the same time, triggered by many PPPoE sessions disconnecting at the same time due to a short power failure (routers itself had power all the time, but power was interrupted for about a minute to a switch on the network between the routers and PPPoE clients). Stack traces are very similar (absolute addresses differ, but the same functions and offsets in them). And again, each time watchfrr restarted bgpd but it was not working until reboot. No problems so far with two other BGP routers running a similar configu but without any dynamic interfaces (only OSPF and BGP, no PPPoE servers).

Aug 30 2020, 1:44 PM · VyOS 1.2 Crux
c-po added a subtask for T1205: module pcspkr missing: T2840: "startup-beep" beeps too early.
Aug 30 2020, 1:06 PM · VyOS 1.2 Crux (VyOS 1.2.6)
c-po added a parent task for T2840: "startup-beep" beeps too early: T1205: module pcspkr missing.
Aug 30 2020, 1:06 PM · VyOS Rolling
c-po assigned T2841: "monitor bandwidth-test initiate" does not accept IPv6 address as option to Viacheslav.
Aug 30 2020, 10:48 AM · VyOS 1.2 Crux (VyOS 1.2.7)
c-po created T2841: "monitor bandwidth-test initiate" does not accept IPv6 address as option.
Aug 30 2020, 10:16 AM · VyOS 1.2 Crux (VyOS 1.2.7)
c-po moved T2564: Extend VyOS to support appliance LCDs from Need Triage to In Progress on the VyOS 1.3 Equuleus board.
Aug 30 2020, 9:43 AM · VyOS 1.2 Crux (VyOS 1.2.7)
c-po created T2840: "startup-beep" beeps too early.
Aug 30 2020, 9:09 AM · VyOS Rolling
c-po moved T1205: module pcspkr missing from Needs Triage to Finished on the VyOS 1.2 Crux (VyOS 1.2.6) board.
Aug 30 2020, 8:57 AM · VyOS 1.2 Crux (VyOS 1.2.6)
c-po closed T1205: module pcspkr missing as Resolved.
Aug 30 2020, 8:57 AM · VyOS 1.2 Crux (VyOS 1.2.6)
c-po closed T2839: Upgrade WireGuard user-space tools and Kernel module as Resolved.
Aug 30 2020, 8:51 AM · VyOS 1.3 Equuleus (1.3.0)
GitHub <noreply@github.com> committed rVYOSONEX7c1dfa6f21d1: Merge pull request #534 from sever-sever/T2833 (authored by c-po).
Aug 30 2020, 8:00 AM
c-po changed the status of T2839: Upgrade WireGuard user-space tools and Kernel module from Open to In progress.
Aug 30 2020, 7:11 AM · VyOS 1.3 Equuleus (1.3.0)
c-po created T2839: Upgrade WireGuard user-space tools and Kernel module.
Aug 30 2020, 7:11 AM · VyOS 1.3 Equuleus (1.3.0)
c-po changed the status of T1463: Missing command `show ip bgp scan` appears in command completion from Wontfix to Resolved.
Aug 30 2020, 7:03 AM · VyOS 1.3 Equuleus (1.3.0), VyOS 1.2 Crux (VyOS 1.2.6)
Unknown Object (User) added a comment to T291: support for Predictable Network Interface Names.

I tested this in LAB and it seems works properly. Changing interface name for eth1 and eth2

vyos@vyos# delete interfaces ethernet eth1 hw-id 
[edit]
vyos@vyos# delete interfaces ethernet eth2 hw-id 
[edit]
vyos@vyos# set interfaces ethernet eth1 hw-id 50:01:00:02:00:02
[edit]
vyos@vyos# set interfaces ethernet eth2 hw-id 50:01:00:02:00:01
[edit]
vyos@vyos# commit
[edit]
vyos@vyos# save 
Saving configuration to '/config/config.boot'...
Done
[edit]
vyos@vyos# run reboot now

After reboot

vyos@vyos:~$ sudo ethtool -P eth1
Permanent address: 50:01:00:02:00:02
vyos@vyos:~$ sudo ethtool -P eth2
Permanent address: 50:01:00:02:00:01

@maznu , can you provide next:

show configuration commands | match hw-id
sudo cat /run/udev/log/vyatta-net-name.coldplug
Aug 30 2020, 4:15 AM
hagbard added a comment to T1205: module pcspkr missing.

@c-po https://github.com/vyos/vyos-build/pull/121 will fix it, but I used .142 while the conifg file was from 136, so please review first. I tested it and the system speaker is fully functional again.
You can test it quickly via `echo -ne "\a"', which should make noise. Beep seems to be broken, looks like it can't be used via sudo, something I may can have a look later into.
cheers

Aug 30 2020, 2:52 AM · VyOS 1.2 Crux (VyOS 1.2.6)

Aug 29 2020

hagbard added a comment to T1205: module pcspkr missing.

echo -ne "\a" should give you a beep sound on the the system speaker too, if you just want to quickly test it. I tested it with deb10 minimal install, works via qemu too.
e.g: qemu-system-x86_64 -smp cpus=3 -soundhw pcspk -m 1024 -enable-kvm -drive file=os.img,media=disk (os disk is a deb10 netinstall).
With capabilities I meant the listed capabilities listed under the input link via sys:

Aug 29 2020, 5:28 PM · VyOS 1.2 Crux (VyOS 1.2.6)
hagbard closed T2836: show system integrity broken in 1.3 as Resolved.
Aug 29 2020, 3:59 PM · VyOS 1.3 Equuleus (1.3.0)
maznu added a comment to T1499: Move nic to mac mapping out of the configuration file.

Any news on this one? Have posted some of the pain I've been having in T291 where VyOS is neither behaving as per documentation (match on hw-id) nor consistently across reboots.

Aug 29 2020, 1:55 PM
erkin added a comment to T1463: Missing command `show ip bgp scan` appears in command completion.

Yup, the same situation: It's there on LTS but not on nightly. Also nonexistent functionality on frr, so it can go from the completions too. (Although the CLI files are still in the vyatta-op-quagga repo.)
However it still seems to be stuck in reset on nightly:

$ reset ip bgp foo rsclient
% Unknown command:  clear ip bgp foo rsclient
Aug 29 2020, 8:16 AM · VyOS 1.3 Equuleus (1.3.0), VyOS 1.2 Crux (VyOS 1.2.6)
jack9603301 added a comment to T291: support for Predictable Network Interface Names.

We look forward to the solution of this problem

Aug 29 2020, 8:10 AM
maznu added a comment to T291: support for Predictable Network Interface Names.

Neither does VyOS have predicable interface names, nor does it behave as per VyOS' documentation.

Aug 29 2020, 8:05 AM
jack9603301 added a comment to T291: support for Predictable Network Interface Names.

Is this problem solved at present?

Aug 29 2020, 7:59 AM
maznu added a comment to T291: support for Predictable Network Interface Names.

According to documentation — https://wiki.vyos.net/wiki/Troubleshooting — specifying the hw-id of an interface should be tell udev (or similar) to ensure that the interface with the MAC-address specified gets the name of e.g. eth0.

Aug 29 2020, 7:39 AM
c-po changed the status of T1205: module pcspkr missing from Open to In progress.
Aug 29 2020, 7:22 AM · VyOS 1.2 Crux (VyOS 1.2.6)
c-po moved T1463: Missing command `show ip bgp scan` appears in command completion from Needs Triage to Finished on the VyOS 1.2 Crux (VyOS 1.2.6) board.
Aug 29 2020, 7:17 AM · VyOS 1.3 Equuleus (1.3.0), VyOS 1.2 Crux (VyOS 1.2.6)
c-po added a comment to T1463: Missing command `show ip bgp scan` appears in command completion.

I have removed show ip bgp scan for the upcoming 1.2.6 release.

Aug 29 2020, 7:17 AM · VyOS 1.3 Equuleus (1.3.0), VyOS 1.2 Crux (VyOS 1.2.6)
c-po added a project to T1463: Missing command `show ip bgp scan` appears in command completion: VyOS 1.2 Crux (VyOS 1.2.6).
Aug 29 2020, 7:06 AM · VyOS 1.3 Equuleus (1.3.0), VyOS 1.2 Crux (VyOS 1.2.6)
erkin added a comment to T1463: Missing command `show ip bgp scan` appears in command completion.

Viacheslav seems to have migrated a good portion of Quagga show commands to the XML template format a while ago and the remaining completion file for ip bgp scan also got deleted then. I can see that the useless command completion for it is still there on 1.2.5 LTS but it's gone from the nightly builds.

Aug 29 2020, 3:46 AM · VyOS 1.3 Equuleus (1.3.0), VyOS 1.2 Crux (VyOS 1.2.6)
hagbard added a comment to T1205: module pcspkr missing.

As far as I recall it doesn't initializes is correctly anymore, you can test with beep. The system beep you can set via cli is broken since then.

Aug 29 2020, 12:25 AM · VyOS 1.2 Crux (VyOS 1.2.6)

Aug 28 2020

kroy renamed T2838: Ethernet device names changing, multiple hw-id being added from Ethernet device names changing, multiple hw-id to Ethernet device names changing, multiple hw-id being added.
Aug 28 2020, 10:03 PM · VyOS 1.3 Equuleus (1.3.3), VyOS 1.4 Sagitta
kroy renamed T2838: Ethernet device names changing, multiple hw-id being added from Ethernet device names changing to Ethernet device names changing, multiple hw-id.
Aug 28 2020, 10:02 PM · VyOS 1.3 Equuleus (1.3.3), VyOS 1.4 Sagitta
kroy created T2838: Ethernet device names changing, multiple hw-id being added.
Aug 28 2020, 10:02 PM · VyOS 1.3 Equuleus (1.3.3), VyOS 1.4 Sagitta
c-po closed T1342: Cannot add ipv6 /70 route as Invalid.
Aug 28 2020, 8:44 PM · VyOS 1.3 Equuleus (1.3.0)
c-po added a comment to T1342: Cannot add ipv6 /70 route.

@Viacheslav --verbose is not the issue, it's only used to output the actual "error".

Aug 28 2020, 8:43 PM · VyOS 1.3 Equuleus (1.3.0)
c-po added a comment to T1205: module pcspkr missing.

This is no longer compiled as a module but rather statically into the kernel (https://github.com/vyos/vyos-build/blob/current/packages/linux-kernel/x86_64_vyos_defconfig#L188)

Aug 28 2020, 8:24 PM · VyOS 1.2 Crux (VyOS 1.2.6)
c-po added a comment to T2287: LLDP not working on X710 adapter, i40e driver.

I do not have that hardware available, but a possible solution could be the following snippet which could be run on system boot:

Aug 28 2020, 8:20 PM · VyOS 1.4 Sagitta (1.4.0), VyOS Rolling, VyOS 1.5 Circinus
c-po closed T473: missing source packages, git submodule init as Wontfix.
Aug 28 2020, 8:10 PM
c-po added a comment to T473: missing source packages, git submodule init.

We no longer make use of git submodules. Closing as wontfix. Build from source is possible using e.g. our Jenkins CI/CD pipeline library (https://github.com/vyos/vyos-build/tree/current/vars)

Aug 28 2020, 8:10 PM
c-po updated subscribers of T1463: Missing command `show ip bgp scan` appears in command completion.

@Viacheslav what you think?

Aug 28 2020, 7:30 PM · VyOS 1.3 Equuleus (1.3.0), VyOS 1.2 Crux (VyOS 1.2.6)
c-po added a comment to T1463: Missing command `show ip bgp scan` appears in command completion.

This is not a "bug" - we pass any argument to show ip bgp down to FRR.

Aug 28 2020, 7:30 PM · VyOS 1.3 Equuleus (1.3.0), VyOS 1.2 Crux (VyOS 1.2.6)
c-po closed T2813: NAT: possible to commit illegal source nat without translation as Resolved.
Aug 28 2020, 7:17 PM · VyOS 1.3 Equuleus (1.3.0)
hagbard changed the status of T2836: show system integrity broken in 1.3 from In progress to Needs testing.
Aug 28 2020, 7:16 PM · VyOS 1.3 Equuleus (1.3.0)
c-po committed rVYOSONEX0831c6668915: nat: T2813: translation address is mandatory if rule is not excluded.
Aug 28 2020, 7:15 PM
hagbard committed rVYOSONEXc29ed43a720f: T2836: show system integrity broken.
Aug 28 2020, 7:12 PM
erkin closed T2126: show vpn ipsec sa IPSec - Process NOT Running as Resolved.

Could not reproduce this on a clean install. That error is printed iff the IPsec process is not running, obviously enough. When I set up IPsec and ran the command, it simply printed out the table. Maybe there was a hiccup with the nightly build you used if that error happened with a running IPsec process.

Aug 28 2020, 7:04 PM · VyOS 1.3 Equuleus (1.3.0)
hagbard created T2837: make-version-file executed too early during build process.
Aug 28 2020, 6:08 PM · VyOS 1.3 Equuleus (1.3.6)
hagbard added a comment to T2836: show system integrity broken in 1.3.

Fixing up the code, but it will suffer the same issue as in T2835. That build file should be the last thing in the build process, otherwise there is no other way to find out what pkg were installed during the build.

Aug 28 2020, 6:04 PM · VyOS 1.3 Equuleus (1.3.0)
hagbard changed the status of T2836: show system integrity broken in 1.3 from Open to In progress.
Aug 28 2020, 5:53 PM · VyOS 1.3 Equuleus (1.3.0)
erkin closed T1463: Missing command `show ip bgp scan` appears in command completion as Wontfix.

This command was removed from Quagga five years ago and never made it to FRR.

Aug 28 2020, 5:24 PM · VyOS 1.3 Equuleus (1.3.0), VyOS 1.2 Crux (VyOS 1.2.6)
hagbard created T2836: show system integrity broken in 1.3.
Aug 28 2020, 5:21 PM · VyOS 1.3 Equuleus (1.3.0)
hagbard added a comment to T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1.

It looks like that the build process messed it up, it did create the version file at the beginning of the build, not at the end. After the file usr/share/vyos/version.json was create, pkg installations took place a few minutes alter, that's why everything in the image is newer than the version file, therefore the command output is absolutely correct. I'll check if I can find out what went wrong during the build, since it appears that only 1.2.6 is affected.

Aug 28 2020, 4:54 PM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux
hagbard added a comment to T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1.
Aug 28 2020, 4:48 PM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux
marekm added a comment to T2820: BGP crash in if_destroy_via_zapi.
Aug 28 2020, 10:10 AM · VyOS 1.2 Crux
Viacheslav added a comment to T2820: BGP crash in if_destroy_via_zapi.

@marekm
Can you check your BGP configuration if "router-id" is declared?
Also, what is with interface names?

ppp-lot29
ppp-jmg22
ppp-rol81
ppp-rod8

Do you use scripts with renaming? How to reproduce it?

Aug 28 2020, 9:28 AM · VyOS 1.2 Crux
hagbard added a comment to T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1.

/usr/libexec/vyos/op_mode/version.py:
Built on: Thu 13 Aug 2020 11:57 UTC

Aug 28 2020, 2:44 AM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux
hagbard changed the status of T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1 from Confirmed to In progress.
Aug 28 2020, 2:29 AM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux
hagbard added a comment to T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1.

Happens also when just using the booted image without install. Investigating.

Aug 28 2020, 2:26 AM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux
hagbard changed the status of T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1 from Open to Confirmed.
Aug 28 2020, 2:26 AM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux
hagbard claimed T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1.
Aug 28 2020, 2:18 AM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux
tjh updated the task description for T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1.
Aug 28 2020, 1:10 AM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux
tjh created T2835: "show system-integrity" reports lots of wrong timestamp packages with v1.2.6-epa1.
Aug 28 2020, 1:09 AM · VyOS 1.3 Equuleus (1.3.6), VyOS 1.2 Crux

Aug 27 2020

c-po closed T2832: Migrate vyos-smoketest content into vyos-1x as Resolved.
Aug 27 2020, 7:18 PM · VyOS 1.3 Equuleus (1.3.0)
srgabrieltelecon added a comment to T2763: New SNMP resource request - SNMP over TCP.

Dear friend,
any syntax can be suggested, the problem to be solved is the administrator's willingness to open a port, be it tcp, udp, both, only ipv4, or only ipv6.
If this problem can be solved at the administrator's discretion, it would be a great solution.

Aug 27 2020, 7:18 PM · VyOS 1.3 Equuleus (1.3.2), VyOS 1.4 Sagitta
c-po committed rVYOSONEX0f8123268da0: Merge branch 'master' of github.com:vyos/vyos-smoketest into vyos-smoketest….
Aug 27 2020, 7:15 PM
c-po committed rVYOSONEXa4b064ea73f0: lcd: adjust to cli changes.
Aug 27 2020, 7:15 PM
c-po committed rVYOSONEX756c9153e683: pppoe-server: test some more values.
Aug 27 2020, 7:15 PM
c-po committed rVYOSONEXda9ec80f80b1: Debian: set proper changelog version.
Aug 27 2020, 7:15 PM
c-po committed rVYOSONEX71a2e3fad3bd: lcd: adapt test to new CLI design.
Aug 27 2020, 7:15 PM
c-po committed rVYOSONEXda9de43f048f: Merge branch 'system-display' of https://github.com/fmertz/vyos-smoketest.
Aug 27 2020, 7:15 PM
fmertz committed rVYOSONEX7bc4167d9520: system display: T2564: conf file in /run.
Aug 27 2020, 7:15 PM
c-po committed rVYOSONEXbd7f30dcd558: wireless: validate hostapd/wpa_supplicant is running.
Aug 27 2020, 7:15 PM
fmertz committed rVYOSONEX8e165496cf32: system display: T2464: initial smoke test.
Aug 27 2020, 7:15 PM
c-po committed rVYOSONEX87693ce61819: pppoe: sync to new dhcpv6-pd cli.
Aug 27 2020, 7:15 PM
c-po committed rVYOSONEX11da3f091a98: pppoe: validate dhcpv6 client will be started.
Aug 27 2020, 7:15 PM
c-po committed rVYOSONEX049a87ed9940: pppoe-server: initial smoketest with local and radius auth.
Aug 27 2020, 7:15 PM
c-po committed rVYOSONEX743627b9df6f: router-advert: check 'infinity' option in script logic.
Aug 27 2020, 7:15 PM