OsmoSGSN XID code uses hard-coded N201-I / N201-U instead of per-SAPI defaults as per spec
3GPP TS 04.64 Section 8.9.9 contains a table of LLC layer parameter default values. Those values shall be used whenever no XID negotiation was used to change them. The values are significantly different from one SAPI to another.
We even have a copy of that table as
static const struct gprs_llc_params llc_default_params in gprs_llc.c, and we copy those default parameters into each LLE when it is created.
However, we're not using those default values when we start a XID negotiation, but we always try to negotiate some hard-coded values for N201-I and N201-U (see
gprs_llc_generate_xid()). This is legal, but it might be safer in terms of compatibility to start with the per-SAPI default values from the table.