Page MenuHomeFreeBSD

pouria (Pouria Mousavizadeh Tehrani)
Pouria

Projects

User Details

User Since
Aug 26 2022, 6:24 PM (196 w, 4 d)

Recent Activity

Yesterday

pouria added a comment to D55203: svc_vc.c: Add support for an xp_extpg boolean.

I personally think NFS (or anything else) should *NOT* do this, and that it should just use mb_use_ext_pgs like sendfile does.

Tue, Jun 2, 12:06 PM
pouria requested review of D57390: Status/2026Q2: Pouria reports.
Tue, Jun 2, 9:57 AM
pouria committed rGea4888e63f6a: nat64lsn: Fix type confusion panic when using wrong NAT64 instance type (authored by Teddy Engel <engel.teddy@gmail.com>).
nat64lsn: Fix type confusion panic when using wrong NAT64 instance type
Tue, Jun 2, 9:16 AM
pouria committed rGc515e6040614: linux: Implement PTRACE_GETREGSET NT_PRFPREG and NT_X86_XSTATE (authored by rbranco_suse.com).
linux: Implement PTRACE_GETREGSET NT_PRFPREG and NT_X86_XSTATE
Tue, Jun 2, 7:27 AM
pouria committed rGb84d31ee7453: linux: Add linux_pt_fpregset and bsd_to_linux_fpregset() for amd64 (authored by rbranco_suse.com).
linux: Add linux_pt_fpregset and bsd_to_linux_fpregset() for amd64
Tue, Jun 2, 7:27 AM

Mon, Jun 1

pouria updated the diff for D57389: routing: Replace unreachable nhops in nhgrp.

Resolve conflict with parent revision.

Mon, Jun 1, 8:24 PM
pouria updated the diff for D57375: routing: Subscribe nhops to ifnet link events.

Move one line on updating rib_head from D57389 to here.

Mon, Jun 1, 8:04 PM
pouria added inline comments to D57375: routing: Subscribe nhops to ifnet link events.
Mon, Jun 1, 7:58 PM
pouria updated the summary of D57375: routing: Subscribe nhops to ifnet link events.
Mon, Jun 1, 7:40 PM
pouria requested review of D57389: routing: Replace unreachable nhops in nhgrp.
Mon, Jun 1, 7:39 PM
pouria added a comment to D57375: routing: Subscribe nhops to ifnet link events.

I updated my servers with this patch and got good results.
Before the patch, when I pinged routed addresses and a nexthop became unreachable, my pings got stuck.
Now it immediately shows Network is down and reacts faster when my nexthop is reachable again.
Consider I have more than 2M routes.

% ping 3fff::10:15::1
PING(56=40+8+8 bytes) 3fff::2::fbf8:3f4 --> 3fff::10:15::1
16 bytes from 3fff::10:15::1, icmp_seq=0 hlim=64 time=4.100 ms
16 bytes from 3fff::10:15::1, icmp_seq=1 hlim=64 time=4.273 ms
16 bytes from 3fff::10:15::1, icmp_seq=2 hlim=64 time=1.290 ms
16 bytes from 3fff::10:15::1, icmp_seq=3 hlim=64 time=5.433 ms
16 bytes from 3fff::10:15::1, icmp_seq=4 hlim=64 time=2.654 ms
ping: sendmsg: Network is down
ping: wrote 3fff::10:15::1 16 chars, ret=-1
ping: sendmsg: Network is down
ping: wrote 3fff::10:15::1 16 chars, ret=-1
ping: sendmsg: Network is down
ping: wrote 3fff::10:15::1 16 chars, ret=-1
16 bytes from 3fff::10:15::1, icmp_seq=8 hlim=64 time=2.928 ms
16 bytes from 3fff::10:15::1, icmp_seq=9 hlim=64 time=5.729 ms
16 bytes from 3fff::10:15::1, icmp_seq=10 hlim=64 time=2.608 ms
Mon, Jun 1, 8:40 AM

Sun, May 31

pouria requested review of D57375: routing: Subscribe nhops to ifnet link events.
Sun, May 31, 9:19 PM

Fri, May 29

pouria accepted D57342: ip6: Drop dead code in ip6_input_hbh().
Fri, May 29, 9:47 PM
pouria accepted D57349: netlink: Use early exit pattern in _nl_modify_ifp_generic.
Fri, May 29, 9:45 PM
pouria accepted D56942: lagg: Handle a port count of zero.
Fri, May 29, 9:40 PM
pouria accepted D57341: udp: Fix resource leaks in an error path in udp6_send().
Fri, May 29, 9:38 PM
pouria added a comment to D56750: netlink: store osreldate of the process in the netlink pcb.

Do you have an example of the kind of backwards compat we'd provide?

Fri, May 29, 9:36 PM
pouria accepted D57336: route: Fix `flush` w/o specified address family.
Fri, May 29, 9:24 PM
pouria accepted D57334: netlink: Indicate that ifinfomsg uses IFT_* types.

netlink specs clearly want to use arp types (ARPHRD_*). (See include/uapi/linux/rtnetlink.h of linux)
However, IMO, using arp types are not appropriate here, because we actually want to get the actual interface type ifp->if_type.
therefore our current implementation (IFT_*) is correct.

Fri, May 29, 9:21 PM
pouria accepted D57332: netlink: Check permission for interface flag changes.
Fri, May 29, 9:00 PM

Thu, May 28

pouria accepted D57291: inpcb: make net.inet.ip.portrange port number limiting sysctls unsigned.
Thu, May 28, 8:21 PM
pouria closed D57266: rtnetlink: Fix weight overflow in RTA_MULTIPATH.
Thu, May 28, 8:02 PM
pouria committed rG97f7b21dd525: rtnetlink: Fix weight overflow in RTA_MULTIPATH (authored by pouria).
rtnetlink: Fix weight overflow in RTA_MULTIPATH
Thu, May 28, 8:02 PM
pouria committed rG30c85b7cb9fc: linuxulator: return EBADF for O_PATH mmap() (authored by mr.yaoxin_outlook.com).
linuxulator: return EBADF for O_PATH mmap()
Thu, May 28, 7:51 PM

Wed, May 27

pouria added inline comments to D57266: rtnetlink: Fix weight overflow in RTA_MULTIPATH.
Wed, May 27, 8:51 PM
pouria updated the diff for D57266: rtnetlink: Fix weight overflow in RTA_MULTIPATH.

Address @emaste comment.

Wed, May 27, 2:16 PM
pouria requested review of D57268: rtnetlink: Don't send RTA_PRIORITY if has default value.
Wed, May 27, 10:58 AM
pouria requested review of D57266: rtnetlink: Fix weight overflow in RTA_MULTIPATH.
Wed, May 27, 10:03 AM

Mon, May 25

pouria accepted D57234: netlink: Fix RTM_GETROUTE loop for RT_TABLE_UNSPEC.
Mon, May 25, 3:20 PM

Fri, May 22

pouria accepted D57171: netlink: Check for NULL return from npt_alloc().
Fri, May 22, 6:35 PM
pouria accepted D57167: netlink: Fix interface type match.
Fri, May 22, 6:29 PM
pouria accepted D57158: netlink: Avoid undefined behaviour.
Fri, May 22, 12:06 PM
pouria added inline comments to D57158: netlink: Avoid undefined behaviour.
Fri, May 22, 9:46 AM

Thu, May 21

pouria accepted D57156: netlink: Fix lock leak in nl_find_nhop.
Thu, May 21, 10:47 PM
pouria accepted D57155: tcp: remove ddb(4) support.
Thu, May 21, 8:50 PM

Wed, May 20

pouria committed rGbc301fee4cb2: routing: Add tests for metric (authored by pouria).
routing: Add tests for metric
Wed, May 20, 8:59 PM
pouria committed rG1f03c62e43a0: netstat(1): Show metric value for routes (authored by pouria).
netstat(1): Show metric value for routes
Wed, May 20, 8:59 PM
pouria committed rG2e2d402d061d: route(8): Add metric argument (authored by pouria).
route(8): Add metric argument
Wed, May 20, 8:59 PM
pouria committed rGd87e5b28b763: route.8: Describe metric modifier (authored by pouria).
route.8: Describe metric modifier
Wed, May 20, 8:59 PM
pouria closed D56326: route(8): Show metric value in monitor route.
Wed, May 20, 8:59 PM
pouria closed D57016: routing: Add tests for metric.
Wed, May 20, 8:59 PM
pouria closed D57011: netstat(1): Show metric value for routes.
Wed, May 20, 8:59 PM
pouria committed rGf15b8a8f1de1: route(8): Show metric value in monitor route (authored by pouria).
route(8): Show metric value in monitor route
Wed, May 20, 8:59 PM
pouria committed rG6dd429aeabec: route(8): Show metric value in get route (authored by pouria).
route(8): Show metric value in get route
Wed, May 20, 8:59 PM
pouria committed rGb9a246a91797: rtnetlink.4: Add RTA_PRIORITY (authored by pouria).
rtnetlink.4: Add RTA_PRIORITY
Wed, May 20, 8:59 PM
pouria closed D57025: route.8: Describe metric modifier.
Wed, May 20, 8:59 PM
pouria closed D56335: route(8): Add metric argument.
Wed, May 20, 8:59 PM
pouria closed D56324: rtnetlink.4: Add RTA_PRIORITY.
Wed, May 20, 8:59 PM
pouria committed rG73acfc586348: netlink: Add RTA_PRIORITY support (metric) (authored by pouria).
netlink: Add RTA_PRIORITY support (metric)
Wed, May 20, 8:59 PM
pouria committed rGc0256b31efcc: routing: Add support for metric (authored by pouria).
routing: Add support for metric
Wed, May 20, 8:59 PM
pouria closed D56325: route(8): Show metric value in get route.
Wed, May 20, 8:59 PM
pouria closed D56323: netlink: Add RTA_PRIORITY support (metric).
Wed, May 20, 8:59 PM
pouria closed D56322: routing: Add support for route metric.
Wed, May 20, 8:59 PM
pouria updated the diff for D56322: routing: Add support for route metric.

IPv6 default route will be added using rib_default_route from route_helpers.
Ensure it sets the RT_DEFAULT_METRIC.

Wed, May 20, 5:59 PM
pouria updated the diff for D56322: routing: Add support for route metric.

Fix FIB_NH_LOG format specifier.

Wed, May 20, 5:20 PM
pouria accepted D57094: tests/net: Run all tests with execenv=jail and enable parallelism.

After @zlei work on VNET. I think it's better to remove is_exclusive=true.
Tested, LGTM

Wed, May 20, 9:57 AM
pouria abandoned D57007: routing: Allow nhop reuse in nhgrp with different metric.

Merge into D56322.

Wed, May 20, 8:39 AM
pouria updated the diff for D56322: routing: Add support for route metric.

Merge D57007.
Address @markj comment.
markj asked: How do you decide whether to add a field to nhop_object vs. the other (nhop_priv)?
I reevaluate my decisions and decided to test whether if worth it to reuse spare member of nhop_object which is used for dataplane or should place it under nhop_priv?
I had two options, my initial thought was to place it inside the lookup section (NH_PRIV_END_CMP) of nhop_priv.
But since it was cache aligned, I initially decided to place metric inside the nhop_object.
But I didn't think of having to touch the cmp_priv at that time. So its cost of metric comparison by double dereferencing was not visible to me.
Now with D57007, I decided to test moving metric under nhop_priv without placing it inside the lookup section.
I decided to test that in production at NL-IX.
Here was the results:

% # When nh_metric was placed in nhop_object.
% mdo vmstat -m | grep nh
nhops   38 21248 324367067 64,128,256,512,1024,2048,4096,8192
% mdo netstat -rn4 | wc -l
1053225
% mdo netstat -rn6 | wc -l
288723
% mdo netstat -On6 | wc -l
37
% mdo netstat -on6 | wc -l
432
% # After moving it into nhop_priv (FreeBSD 16.0-CURRENT (GENERIC-NODEBUG) #3 mpath-n285993-1a086c816b5a):
% mdo vmstat -m | grep nh
nhops   38 21248 202332 64,128,256,512,1024,2048,4096,8192
% mdo netstat -rn4 | wc -l
1053251
% mdo netstat -rn6 | wc -l
288986
% mdo netstat -On6 | wc -l
40
% mdo netstat -on6 | wc -l
431

Superising to me, memory allocation is not changed.
Well, after seeing the results, I checked the size of nhop_priv again and found out the overall structure of it is not aligned to allocation boundaries.
So it is completely safe to move it under nhop_priv and it's better to do so because metric is a control-plane variable and
not belongs to nhop_object.

Wed, May 20, 8:38 AM
pouria closed D57068: netstat.1: Add metric in wide flag of routing display.

Merge this revision into D57011 as @markj suggested.

Wed, May 20, 7:25 AM
pouria updated the diff for D57011: netstat(1): Show metric value for routes.

Merge with D57068.

Wed, May 20, 7:23 AM
pouria updated the diff for D56323: netlink: Add RTA_PRIORITY support (metric).

Use nhop_get_metric instead of directly accessing the nh_metric.

Wed, May 20, 7:08 AM

Tue, May 19

pouria added inline comments to D57007: routing: Allow nhop reuse in nhgrp with different metric.
Tue, May 19, 7:47 PM
pouria updated the diff for D57007: routing: Allow nhop reuse in nhgrp with different metric.

Address @markj comment.
Remove extra macros and move metric cmp logic inside cmp_priv.
Rename cmp args.

Tue, May 19, 7:32 PM
pouria added inline comments to D57007: routing: Allow nhop reuse in nhgrp with different metric.
Tue, May 19, 7:17 PM
pouria added inline comments to D56323: netlink: Add RTA_PRIORITY support (metric).
Tue, May 19, 7:12 PM
pouria updated the diff for D56322: routing: Add support for route metric.

Address @markj comments.
Initial xmin for future.
Add MPASS in nhgrp_alloc.

Tue, May 19, 7:04 PM
pouria updated the diff for D57007: routing: Allow nhop reuse in nhgrp with different metric.

Address @markj comment.
Saved me, thank you.

Tue, May 19, 6:57 PM
pouria added inline comments to D57011: netstat(1): Show metric value for routes.
Tue, May 19, 5:14 PM
pouria updated the diff for D57011: netstat(1): Show metric value for routes.

fix format specifier to 32 bit.
@markj: Done.
Thank you

Tue, May 19, 5:14 PM
pouria updated the diff for D57007: routing: Allow nhop reuse in nhgrp with different metric.

Document metric != 0 condition by replacing it with macro name.
No functional change.

Tue, May 19, 1:36 PM
pouria updated the diff for D56323: netlink: Add RTA_PRIORITY support (metric).

Follow parent update and remove extra checking for default and wildcard metric which is now done in nhop_set_metric.
Technically no functional change.

Tue, May 19, 1:34 PM
pouria updated the diff for D56322: routing: Add support for route metric.

Simplify set_metric logic by specifying 0 as RT_WILDCARD_METRIC macro and overwrite wildcard (0) metric to default metric (1).
This simple change allow users to delete all the routes without specifying metric in both rtsock and metric and also preserve POLA by not allowing users to add/change route metric to wildcard metric (0) by overwriting it to default metric.

Tue, May 19, 1:20 PM

Mon, May 18

pouria accepted D49194: ipfw: Add ICMPv6 type(s) to ipfw syntax summary usage.
Mon, May 18, 5:19 PM
pouria updated the diff for D57011: netstat(1): Show metric value for routes.

Fix

Mon, May 18, 5:10 PM
pouria updated the diff for D57016: routing: Add tests for metric.

Remove mkjail for each test and add execenv=jail to Makefile.
Address @markj comments.

Mon, May 18, 5:04 PM
pouria added inline comments to D56325: route(8): Show metric value in get route.
Mon, May 18, 4:35 PM
pouria requested review of D57068: netstat.1: Add metric in wide flag of routing display.
Mon, May 18, 4:28 PM
pouria updated the diff for D57011: netstat(1): Show metric value for routes.

Address @markj comment.
Place metric column before expire column because expire column can be hidden.

Mon, May 18, 4:21 PM
pouria added inline comments to D57011: netstat(1): Show metric value for routes.
Mon, May 18, 4:13 PM
pouria added inline comments to D57007: routing: Allow nhop reuse in nhgrp with different metric.
Mon, May 18, 4:09 PM
pouria added inline comments to D57011: netstat(1): Show metric value for routes.
Mon, May 18, 3:50 PM
pouria updated the diff for D56323: netlink: Add RTA_PRIORITY support (metric).

Address @markj comment.
You're right, it should, but not guaranteed.

Mon, May 18, 3:45 PM
pouria added a comment to D56322: routing: Add support for route metric.

Thank you for your review!

Mon, May 18, 3:32 PM
pouria updated the diff for D56322: routing: Add support for route metric.

Address @markj comments.

Mon, May 18, 3:31 PM

Sun, May 17

pouria accepted D57045: tcp: Make RFC 6191 support configurable.

LGTM

Sun, May 17, 2:26 PM

Sat, May 16

pouria resigned from D57034: nlist: Handle multiple symbol tables.

Thank you!
I'm not expert on libc, but C-wise LGTM.

Sat, May 16, 11:10 PM
pouria committed rGc9b5ce2422cc: rtnetlink: Check for allocation failure in nlattr_get_multipath() (authored by pouria).
rtnetlink: Check for allocation failure in nlattr_get_multipath()
Sat, May 16, 9:33 PM
pouria committed rG44be923a2b6b: rtnetlink: Align RTA_MULTIPATH length validation in nlattr_get (authored by pouria).
rtnetlink: Align RTA_MULTIPATH length validation in nlattr_get
Sat, May 16, 9:33 PM
pouria committed rG3e2308d57080: rtnetlink: Check for allocation failure in nlattr_get_multipath() (authored by pouria).
rtnetlink: Check for allocation failure in nlattr_get_multipath()
Sat, May 16, 9:26 PM
pouria committed rG2c6617658f0c: rtnetlink: Align RTA_MULTIPATH length validation in nlattr_get (authored by pouria).
rtnetlink: Align RTA_MULTIPATH length validation in nlattr_get
Sat, May 16, 9:22 PM

Fri, May 15

pouria added inline comments to D57025: route.8: Describe metric modifier.
Fri, May 15, 11:40 PM
pouria added inline comments to D57025: route.8: Describe metric modifier.
Fri, May 15, 11:18 PM
pouria requested review of D57025: route.8: Describe metric modifier.
Fri, May 15, 10:04 PM
pouria closed D56246: route.8: Describe weight modifier.
Fri, May 15, 9:31 PM
pouria committed rG355989b21712: route.8: Describe weight modifier (authored by pouria).
route.8: Describe weight modifier
Fri, May 15, 9:31 PM
pouria requested review of D57016: routing: Add tests for metric.
Fri, May 15, 2:09 PM
pouria requested review of D57011: netstat(1): Show metric value for routes.
Fri, May 15, 10:11 AM

Thu, May 14

pouria updated the diff for D56324: rtnetlink.4: Add RTA_PRIORITY.

Follow update in parent revision and remove metric per RTA_MULTIPATH

Thu, May 14, 9:50 PM
pouria updated the diff for D56323: netlink: Add RTA_PRIORITY support (metric).

Enforce default metric
Update path_match_func to differenciate between nhops using metric.
Remove support for per nhop RTA_PRIORITY in RTA_MULTIPATH.

Thu, May 14, 9:49 PM
pouria updated the diff for D56322: routing: Add support for route metric.

Implement support for metric via rtsock.
Add RT_DEFAULT_METRIC.

Thu, May 14, 9:46 PM