[Bug 240685] netgraph/ng_vlan_rotate: IEEE 802.1ad VLAN manipulation netgraph node type (new type)

2019-09-19 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240685

Bug ID: 240685
   Summary: netgraph/ng_vlan_rotate: IEEE 802.1ad VLAN
manipulation netgraph node type (new type)
   Product: Base System
   Version: 12.0-STABLE
  Hardware: Any
OS: Any
Status: New
  Severity: Affects Only Me
  Priority: ---
 Component: kern
  Assignee: b...@freebsd.org
  Reporter: l...@donnerhacke.de

Created attachment 207625
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=207625&action=edit
Patch for netgraph/ng_vlan_rotate module

I need to deal with carrier ethernet solutions which stack a couple of VLANs in
transport. In order to deal with the packets, the VLAN stack needs to be
manipulated.

This new netgragh node will handle such issues.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"


[Bug 240685] netgraph/ng_vlan_rotate: IEEE 802.1ad VLAN manipulation netgraph node type (new type)

2019-09-19 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240685

--- Comment #1 from l...@donnerhacke.de ---
For the sake of reasoning I'll provide the formatted man page as a comment:

NG_VLAN_ROTATE(4)  FreeBSD Kernel Interfaces Manual  NG_VLAN_ROTATE(4)

NAME
 ng_vlan_rotate - IEEE 802.1ad VLAN manipulation netgraph node type

SYNOPSIS
 #include 
 #include 
 #include 

DESCRIPTION
 The vlan_rotate node type manipulates the order of VLAN tags of frames
 tagged according to the IEEE 802.1ad (an extension of IEEE 802.1Q)
 standard between different hooks.

 Each node has four special hooks, original, ordered, excessive, and
 incomplete.

 A frame tagged with an arbitrary number of ETHERTYPE_VLAN,
 ETHERTYPE_QINQ, and 0x9100 tags received on the original hook will be
 rearranged to a new order of those tags and is sent out the "ordered"
 hook.  After successful processing the histogram counter for the observed
 stack size increments.

 If it contains fewer VLANs in the stack, than the configured min limit,
 the frame is send out to the incomplete hook and the incomplete counter
 increments.

 If it contains more VLANs in the stack, than the configured max limit,
 the frame is send out to the excessive hook and the excessive counter
 increments.

 If any destination hook is not connected, the frame is dropped and the
 drops counter increments.

 For Ethernet frames received on the ordered hook, the transformation is
 reversed and is passed to the original hook. Please note, that this
 process is identical to the one described above, besides the
 ordered/original hooks and the transformation are swapped.

 An Ethernet frame received on incomplede or excessive hook is forwarded
 to the original hook without any modification.

 This node supports only one operation at the moment: Rotation of the
 VLANs in the stack. Setting the configuration parameter rot to a positive
 value, the stack will roll up by this amount. Negative values will roll
 down. A typical scenario is setting the value to 1 in order to bring the
 innermost VLAN tag to the outmost level.  Rotation includes the VLAN id
 and the ethertype, but the QOS paramenters pcp and cfi stay in place.
 Typical QOS handling refers to the outmost setting, so this scheme keeps
 QOS intact.

HOOKS
 This node type supports the following hooks:

 originalTypically this hook would be connected to a ng_ether(4) node,
 using the lower hook connected to a carrier network.

 ordered Typically this hook would be connected to a ng_vlan(4) type
 node using the downstream hook in order to seperate services.

 excessive   see below.

 incomplete  Typically those hooks would be attached to an ng_eiface(4)
 type node using the ether hook for anomaly monitoring
 purposes.

CONTROL MESSAGES
 This node type supports the generic control messages, plus the following:

 NGM_VLANROTATE_GET_CONF (getconf)
  Read the current configuration.

 NGM_VLANROTATE_SET_CONF (setconf)
  Set the current configuration.

 NGM_VLANROTATE_GET_STAT (getstat)
  Read the current statistics.

 NGM_VLANROTATE_CLR_STAT (clrstat)
  Zeroize the statistics.

 NGM_VLANROTATE_GETCLR_STAT (getclrstat)
  Read the current statistics and zeroize it in one step.

EXAMPLES
 The first example demonstrates how to rotate double or triple tagged
 frames so, that the innermost C-VLAN can be used as service
 discriminator. The single or double tagged frames (C-VLAN removed) are
 send out the an interface pointing to different infrastucture.

 #!/bin/sh

 BNG_IF=ixl3
 VOIP_IF=bge2

 ngctl -f- < 00:01:02:03:04:05,
  ethertype 802.1Q-9100 (0x9100), length 110: vlan 2, p 1,
  ethertype 802.1Q-QinQ, vlan 101, p 0,
  ethertype 802.1Q, vlan 123, p 7,
  ethertype IPv4, (tos 0x0, ttl 64, id 15994, offset 0, flags [none],
   proto ICMP (1), length 84) 192.168.140.101 > 192.168.140.1:
   ICMP echo request, id 40234, seq 0, length 64

 The frame ejected on the ordered hook will look like this:

 00:00:00:00:01:01 > 00:01:02:03:04:05,
  ethertype 802.1Q (0x8100), length 110: vlan 123, p 1,
  ethertype 802.1Q-9100, vlan 2, p 0,
  ethertype 802.1Q-QinQ, vlan 101, p 7,
  ethertype IPv4, (tos 0x0, ttl 64, id 15994, offset 0, flags [none],
   proto ICMP (1), length 84) 192.168.140.101 > 192.168.140.1:
   ICMP echo request, id 40234, seq 0, length 64

 Hence the frame pushed out to the VOIP_IF will have this form:

 00:00:00:00:01:01 > 00:01:02:03:04:05,
  ethertype 802.1Q-9100, vlan 2, p 0,
  ethertype 802.1Q-QinQ, vlan 101, p 7,
  ethertype IPv4, (tos 0x0, ttl 64, id 15994, offset 0, flags [none],
   proto ICMP (1), length 84) 192.16

[Bug 240687] jail cpuset masks cannot be expanded

2019-09-19 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240687

Bug ID: 240687
   Summary: jail cpuset masks cannot be expanded
   Product: Base System
   Version: CURRENT
  Hardware: Any
OS: Any
Status: New
  Severity: Affects Some People
  Priority: ---
 Component: kern
  Assignee: b...@freebsd.org
  Reporter: j...@freebsd.org

Suppose one creates a simple jail:

jail -c name=foo command=/bin/sh

It will inherit the default cpuset from the parent jail.  You can use cpuset -j
to shrink this set:

% cpuset -g -j 1
jail 1 mask: 0, 1, 2, 3, 4, 5, 6, 7

% cpuset -g -j 1 -r
jail 1 mask: 0, 1, 2, 3, 4, 5, 6, 7

% cpuset -j 1 -l 0-3

% cpuset -g -j 1
jail 1 mask: 0, 1, 2, 3

However, once you've shrunk the set, you can never expand it.  The reason is
that the jail set is its own root, so the check against the 'root' mask in
cpuset_modify() fails with EINVAL.  I think this is perhaps not the intended
behavior.  I think that when setting the cpuset of a jail you want to apply the
check against the parent jail's mask, not the jail's own mask.

In particular, this prevents using cpuset -j to dynamically manage the CPUs
available to jails.  The alternative is to leave the jails unrestricted and
manage the processes in the jail (or create dedicated, named cpusets for each
jail and manage those) which is not as convenient for tools operating at the
abstraction level of a jail.

One possibility might be to have cpuset_getroot() always skip over the passed
in set to its parent at least once before checking for the ROOT flag (or fix
callers to pass set->cs_parent instead of set), but I haven't looked at what
other implications that might have.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"


[Bug 240689] usr.sbin/ngctl: Generate more compact GraphWiz output

2019-09-19 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240689

Bug ID: 240689
   Summary: usr.sbin/ngctl: Generate more compact GraphWiz output
   Product: Base System
   Version: 12.0-STABLE
  Hardware: Any
OS: Any
Status: New
  Severity: Affects Only Me
  Priority: ---
 Component: bin
  Assignee: b...@freebsd.org
  Reporter: l...@donnerhacke.de

Created attachment 207627
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=207627&action=edit
Patch for usr.sbin/ngctl/dot.c

The output of "ngctl dot" is suitable for small netgraph networks. Even
moderate complex netgraph setups (about a dozen nodes) are hard to understand
from the .dot output, because each node and each hook are shown as a full blown
structure.

This patch allows to generate much more compact output and graphs by omitting
the extra structures for the individual hooks. Instead the names of the hooks
are labels to the edges.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"


[Bug 240572] libefi: FreeBSD cannot boot with U-Boot patch efi_loader: parameter checks BLOCK_IO_PROTOCOL

2019-09-19 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240572

--- Comment #2 from Heinrich Schuchardt  ---
Commit 16ef880ce6ee ("loader.efi: efipart needs to use ioalign") was merged
into FreeBSD on Sep 17th, 2019.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"


Re: [BUG] FreeBSD cannot boot with U-Boot patch efi_loader: parameter checks BLOCK_IO_PROTOCOL

2019-09-19 Thread Heinrich Schuchardt

On 9/13/19 11:48 PM, Heinrich Schuchardt wrote:

Hello Emmanuel,

booting current FreeBSD fails since patch
f59f0825e8b9fdeb8abe43ffd10c5119ca1a032f
efi_loader: parameter checks BLOCK_IO_PROTOCOL

The reason is that the buffer used by FreeBSD to read is not block aligned.

The UEFI spec requires that EFI_BLOCK_IO_PROTOCOL.ReadBlocks() returns
EFI_INVALID_PARAMETER if the buffer is not properly aligned (i.e. is not
a multiple of EFI_BLOCK_IO_MEDIA.IoAlign)

FreeBSD does not guarantee this alignment, e.g. efi_disk_read_blocks()
is called with buffer 995b08d0 which is not aligned to a
multiple of 512.

FreeBSD function efipart_readwrite writes this error message:
efipart_readwrite: rw=1, blk=62333952 size=1 status=2

The problem can be traced back to the FreeBSD line:

stand/efi/libefi/efipart.c(1043) efipart_realstrategy():
blkbuf = malloc(blkio->Media->BlockSize);

U-Boot does not yet implement the EFI_DISK_IO_PROTOCOL which is a
wrapper for the EFI_BLOCK_IO_PROTOCOL allowing unaligned access.

malloc() could be replaced in FreeBSD by AllocatePages() which returns a
4096 byte aligned memory block.

Best regards

Heinrich



Commit 16ef880ce6ee ("loader.efi: efipart needs to use ioalign") was
merged into FreeBSD on Sep 17th, 2019.
___
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"


[Bug 240700] [META] FreeBSD 12.1-RELEASE blockers

2019-09-19 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240700

Bug ID: 240700
   Summary: [META] FreeBSD 12.1-RELEASE blockers
   Product: Base System
   Version: CURRENT
  Hardware: Any
   URL: https://www.freebsd.org/releases/12.1R/schedule.html
OS: Any
Status: New
  Severity: Affects Only Me
  Priority: ---
 Component: misc
  Assignee: r...@freebsd.org
  Reporter: ko...@freebsd.org
CC: b...@freebsd.org

The 12.1-RELEASE process has begun [1]. This is a tracking bug for coodinating
resolution of 12.1-RELEASE blockers.

Bugzilla issues that are (or should be) potential release blockers, should:

- Add their issue ID's to their "Blocks:" field 
- Set patches (attachments) maintainer-approval flags to request (?) approval
from re@f.o

re@ can then accept (+), or not-accept (-) approval according to their
policies/guidelines, and leave/remove the issue from this bugs "Depends on"
field, respectively.

[1] https://www.freebsd.org/releases/12.1R/schedule.html

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"


[Bug 240700] [META] FreeBSD 12.1-RELEASE blockers

2019-09-19 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240700

Kubilay Kocak  changed:

   What|Removed |Added

 Status|New |Open

-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"


[Bug 240700] [META] FreeBSD 12.1-RELEASE blockers

2019-09-19 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240700

Andriy Gapon  changed:

   What|Removed |Added

 Depends on||240640


Referenced Bugs:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240640
[Bug 240640] zfs send -n -P -i is broken after r344601
-- 
You are receiving this mail because:
You are on the CC list for the bug.
___
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"